#include <iostream>
#include <type_traits>
int main(){
//creating an integral constant with constexpr
constexpr unsigned int speed_of_light{299792458};
//creating an integral constant with std::integral_constant
typedef std::integral_constant<unsigned int, 299792458> speed_of_light_2;
//using them
std::cout << speed_of_light/2 << '\n';
std::cout << speed_of_light_2::value/2 << '\n';
}
Что особенного в std:: integral_constant, который я бы выбрал для использования над constexpr?
Их поведение и варианты использования выглядят идентично мне. Я пытаюсь придумать какой-то шаблонный сценарий, где constexpr может не хватить.