ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
16 ноября
1554287 Топик полностью
VladislavS. (Вчера, 10:11, просмотров: 63) ответил framer на Посмотрел на пример что подал . Кривой немного. Ктото хотел максимальной оптимизации а вышло как всегда :) если не сработет CTFE выскакивают
Глянул краем глаза. 

1. inline constexpr не имеет смысла, constexpr по стандарту подразумевает inline. Это мелочь, но глаз режет.

2. Для константных данных современные компиляторы хорошо просчитывают на этапе компиляции, только оптимизацию надо не забывать включать.

3. Вместо перегрузки лучше написать шаблон. Переделал ваш reverse_bits. https://godbolt.org/z/h1EEr1sYs

4. Ну и так, поменьше всякой ненужной писанины, типа заведения копии шаблонного параметра внутри класса. Это только осложняет чтение кода. См. там же.

5. Всякого рода таблицы перекодировки лучше сформировать как constexpr объекты constexpr конструктором класса. См пример https://godbolt.org/z/j5q5ax175 Итератор можно выкинуть, но с ним удобнее.

6. constexpr сущности, порождённые из одного типа/класса в разных единицах трансляции компилятор умеет объединять. Не стоит бояться что таблица попадёт в каждый объектный файл. При линковки всё схлопнется.