#include #include #include #include #include #include #include #include #include #include HEADER #define TYPES(o) \ o(data1, 2, std::vector) \ o(data2, 3, std::deque) \ o(data3, 4, std::list) \ o(data4, 5, std::set) \ o(data5, 6, std::unordered_set) \ o(data6, 7, std::forward_list) \ o(data7, 8, std::multiset) \ o(data8, 9, std::unordered_multiset) \ o(data11, 10, std::vector) \ o(data12, 11, std::deque) \ o(data13, 12, std::list) \ o(data14, 13, std::set) \ o(data15, 14, std::unordered_set) \ o(data16, 15, std::forward_list) \ o(data17, 16, std::multiset) \ o(data18, 17, std::unordered_multiset) \ o(data21, 18, std::vector) \ o(data22, 19, std::deque) \ o(data23, 20, std::list) \ o(data24, 21, std::set) \ o(data25, 22, std::unordered_set) \ o(data26, 23, std::forward_list) \ o(data27, 24, std::multiset) \ o(data28, 25, std::unordered_multiset) std::string data0 = "This \1 \0010 is a $test `string'\nWith a \"linefeed\""; #define makedef(name,index,type) type name{data0.begin(), data0.end()}; TYPES(makedef) int main() { std::string everything; constexpr unsigned numrounds = 500000; for(unsigned round=0; round