General Purpose library for Freestanding C++ and POSIX systems
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 

38 lignes
794 B

#pragma once
#include <chrono>
#include <memory>
#include <string>
#include <vector>
#include <iostream>
#include <cassert>
#ifndef NO_BENCH
#define NO_BENCH 1
#endif
constexpr bool do_bench = 1 - NO_BENCH;
template<typename fn>
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<std::chrono::microseconds>(time);
}
struct test_scaffold{
std::string name;
virtual int run() = 0;
virtual ~test_scaffold() = default;
};
std::vector<test_scaffold*> tests;
struct append_test {
append_test(test_scaffold* ptr) {
assert(ptr != nullptr);
std::cout << "ptr = " << intptr_t(ptr) << std::endl;
tests.emplace_back(ptr);
}
};