我有这个测试程序,似乎忽略了函数(gcd()
)中的一些语句。 std::cout
语句似乎被忽略,因为没有任何内容使用该语句打印到屏幕上。 if
语句似乎被忽略,因为a
和b
小于零而且b
是否为if
语句是否存在({{ 1}}和a
保持不变。
我无法弄清楚原因。为什么标记(带注释)的两个语句被忽略?
b
答案 0 :(得分:4)
您实际上并未致电gcd
。 boost::multiprecision
提供了its own gcd
function,这是一个比您的模板更好的匹配,并由gcd(a, b)
中的ADL选中。
使用::gcd(a, b)
或(gcd)(a, b)
取消ADL,您将看到您的函数模板被调用。