#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")