// param выйдет из области видимости и я не смогу пользоваться его типом
if constexpr (std::is_same_v<T, real_t>)
auto param = new_shared<Param_pge_real>();
else
auto param = new_shared<Param_pge_int>();
param->description = desc;
param->title = title;
param->value = val;
param->speed_step = speedstep;
g_pge_params.push_back(std::move(param));
Есть подозрение
что критическая секция здесь не нужна. Она - дорогая и ее лучше вынести из цикла. А для каждого
OMP потока накапливать свой маленький список.
А какой speedup между 1 процессом и 2 или 4 или 8 ?
void Qtree::find(CN(Rect) area, Vector<Entity*>& list) const {
if (intersect(this->bound, area)) {
list.insert(list.end(), entitys.begin(), entitys.end());
if (lu) {
lu->find(area, list);
ru->find(area, list);
ld->find(area, list);
rd->find(area, list);
}
}
} // find