FBVector 2.0 - now standard compliant
authorNicholas Ormrod <njormrod@fb.com>
Fri, 7 Dec 2012 21:31:55 +0000 (13:31 -0800)
committerJordan DeLong <jdelong@fb.com>
Sun, 16 Dec 2012 22:49:05 +0000 (14:49 -0800)
commit8dd82d48dd46f43f2ea9b4ed49634a2d3f7ecb43
tree7d0fad19f2cdbff945f076e39a7a078864c35662
parent93b0f543f20b8ef3a4c1e34591370011e2dc7168
FBVector 2.0 - now standard compliant

Summary:
This is FBVector 2.0. It supports all of the original FBVector
optimizations and is standard compliant.
Accompanying this diff are two suites, StlVectorTest and Benchmark.
StlVectorTest runs an extensive battery of tests against a vector
implementation per the N3337 standard. In addition to checking normal
correctness, StlVectorTest checks the use of allocators, exception
safety, memory leaks, and type requirements.
Benchmark run a wide range of speed tests between std::vector, the
original fbvector, and the new fbvector.

Test Plan:
First test: run StlVectorTest.
Second test: run Benchmark.
Third test: compile and run some fbcode (e.g. multifeed/).

Reviewed By: andrei.alexandrescu@fb.com

FB internal diff: D566719
folly/FBVector.h
folly/test/stl_tests/Benchmark.cpp [new file with mode: 0644]
folly/test/stl_tests/OFBVector.h [new file with mode: 0644]
folly/test/stl_tests/StlVectorTest.cpp [new file with mode: 0644]