#include <iostream>// 利用if constexpr实现了条件编译
template<typename T1, typename T2>
void test_func() {if constexpr (std::is_same_v<T1, T2>) {std::cout << "hit stage\n";} else {std::cout << "miss\n";}
}int main() {test_func<int32_t, int64_t>();return 0;
}
执行g++ -S t.cc -o ts_tmp -std=c++17后
输出的汇编文件截图如下(可以看到,只有"miss\n",没有"hit stage\n")