Предложения
Сортировать
-3
-4
Ввод типов: машинное слово - mword_t (знаковое) и беззнаковое машинное слово umword_t, имеющее максимальную производительность и максимально возможной разрядности для данный архитектуры. Например пишем цикл, и впоследствии не задумываемся о производительности и корректности при переносе кода x32 -> x64 или вообще на другую архитектуру.
-1
-1
1. добавить std::cpu_info_t содержащий информацию о доступных инструкциях (avx sse и т.п.)
2. дать возможность без накалдных расходов на virtaul-call писать что-то вида
using func_ptr_t = float(float*, float*);
static const func_ptr_t fastest_host_dot_product_impl = get_fastest_host_dot_product_impl(std::get_host_cpu_info());

func_ptr_t constexpr get_host_cpu_info(std::cpu_info_t cpu_info) {
if (cpu_info.have_avx()) {
return &avx_dot_product_impl;
}
if (cpu_info.have_sse4()) {
return &sse4_dot_product_impl;
}
return &trivial_dot_product_impl;
}

5
-0
Коллеги, предлагаю для чистых-constexpr функций, вместо constexpr! просто пометить аргументы функции спецификатором constexpr. Кроме этого, если пометить лишь несколько аргументов, то это будет означать, что компилятору стоит ожидать вызова этой функции с уже готовой constexpr-переменной.
8
-2
собственно сабж, хочется добавить операторы присвоения , совмещенные с логическими операциями