函数

时间:2017-06-23 10:11:44

标签: c++ g++ c++14

我有这个测试程序,似乎忽略了函数(gcd())中的一些语句。 std::cout语句似乎被忽略,因为没有任何内容使用该语句打印到屏幕上。 if语句似乎被忽略,因为ab小于零而且b是否为if语句是否存在({{ 1}}和a保持不变。

我无法弄清楚原因。为什么标记(带注释)的两个语句被忽略?

b

1 个答案:

答案 0 :(得分:4)

您实际上并未致电gcdboost::multiprecision提供了its own gcd function,这是一个比您的模板更好的匹配,并由gcd(a, b)中的ADL选中。

使用::gcd(a, b)(gcd)(a, b)取消ADL,您将看到您的函数模板被调用。