`constexpr`是C++11引入的关键字,用于指示编译器在编译时进行计算和优化,以便在运行时获得更好的性能。在这个特定的上下文中,`constexpr`用于在编译时检查一个条件,并根据该条件的结果在编译时执行不同的代码。如果条件为`true`,则编译器将执行`if`语句中的代码块。如果条件为`false`,则编译器将忽略`if`语句中的代码块。
这在泛型编程(运用模版)中很有作用,由于模板的typename类型可以改变,但是如果我们某段代码需要执行只有Type类型的变量才有的方法/属性。我们可以这么做:
if constexpr (std::is_same_v<Type1, Type>)
{
...
一些只有Type类型变量才有的方法/属性
}