#pragma once #include #include #include #include #include #include #ifndef NO_BENCH #define NO_BENCH 1 #endif constexpr bool do_bench = 1 - NO_BENCH; template std::chrono::microseconds time_operation(fn op) { auto start = std::chrono::high_resolution_clock::now(); op(); auto time = std::chrono::high_resolution_clock::now() - start; return std::chrono::duration_cast(time); } struct test_scaffold{ std::string name; virtual int run() = 0; virtual ~test_scaffold() = default; }; std::vector tests; struct append_test { append_test(test_scaffold* ptr) { assert(ptr != nullptr); std::cout << "ptr = " << intptr_t(ptr) << std::endl; tests.emplace_back(ptr); } };