enumerate fast enough

v1
Brett 2023-12-09 15:32:02 -05:00
parent eb9cd030e3
commit 8c862f5a8f
2 changed files with 9 additions and 16 deletions

View File

@ -21,7 +21,6 @@
#include <optional>
#include <blt/std/string.h>
#include <regex>
#if defined(__GNUC__)
@ -61,16 +60,6 @@ namespace blt
return demangle(typeid(T).name());
}
template<typename T>
static BLT_CPP20_CONSTEXPR inline std::string extract_types()
{
auto name = demangle(typeid(T).name());
std::regex replace("(__cxx[0-9]*)::");
return std::regex_replace(name, replace, "");
}
template<typename TYPE_ITR>
class enumerator
{

View File

@ -49,6 +49,11 @@ int testFunc(int a, int b)
return a;
}
//#undef BLT_START_INTERVAL
//#undef BLT_END_INTERVAL
//#define BLT_START_INTERVAL(profile, iteration)
//#define BLT_END_INTERVAL(profile, iteration)
template<typename T>
void e1(const T& test)
{
@ -67,7 +72,7 @@ void e2(const T& test)
for (size_t i = 0; i < test.size(); i++)
{
const auto& v = test[i];
blt::black_box(std::pair{i, v});
blt::black_box(std::pair<size_t, const std::string&>{i, v});
}
BLT_END_INTERVAL("Enumeration (" + blt::type_string<T>().substr(0, 30) + ":" + std::to_string(test.size()) + ")", "for index");
}
@ -79,7 +84,7 @@ void e3(const T& test)
size_t counter = 0;
for (const auto& s : test)
{
blt::black_box(std::pair{counter, s});
blt::black_box(std::pair<size_t, const std::string&>{counter, s});
++counter;
}
BLT_END_INTERVAL("Enumeration (" + blt::type_string<T>().substr(0, 30) + ":" + std::to_string(test.size()) + ")", "for range");
@ -92,8 +97,6 @@ void testEnumerate(const T& test)
e2(test);
e3(test);
BLT_PRINT_PROFILE("Enumeration (" + blt::type_string<T>().substr(0, 30) + ":" + std::to_string(test.size()) + ")");
BLT_TRACE(blt::type_string<T>());
BLT_TRACE(blt::extract_types<T>());
}
void getfucked()
@ -263,7 +266,8 @@ void blt::test::utility::run()
printLines(tableQ4i2.createTable(true, true));
for (int gensize = 1; gensize < 8; gensize++){
for (int gensize = 1; gensize < 8; gensize++)
{
size_t size = static_cast<size_t>(std::pow(10, gensize));
std::vector<std::string> str;