C++ 模板函数错误:未找到接受类型为的右操作数的运算符

C++ 模板函数错误:未找到接受类型为的右操作数的运算符,c++,C++,嘿!请查看以下示例。。这几乎是某本cpp书的复制粘贴。 我不明白为什么它不能编译(在windows下)。 它说: ”div是一个标准的库函数,返回div\t类型的值。当您包含时,您显然也间接地包含了标准div的声明。这是编译器试图使用的,而不是您的模板版本 这可能是实现的错误,而不是您的错误(假设您发布的代码正是您试图编译的代码)。如果他们将标准库的这一部分包含在中,那么他们可能应该这样做:标准div将变成std::div。如果他们那样做,你就不会有这个问题了 你能行 std::cout <

嘿!请查看以下示例。。这几乎是某本cpp书的复制粘贴。 我不明白为什么它不能编译(在windows下)。 它说:


div
是一个标准的库函数,返回
div\t
类型的值。当您包含
时,您显然也间接地包含了标准
div
的声明。这是编译器试图使用的,而不是您的模板版本

这可能是实现的错误,而不是您的错误(假设您发布的代码正是您试图编译的代码)。如果他们将标准库的这一部分包含在
中,那么他们可能应该这样做:标准
div
将变成
std::div
。如果他们那样做,你就不会有这个问题了

你能行

std::cout << "INT " << div<>(a,b) << std::endl;

std::cout
div
是一个标准的库函数,返回
div\t
类型的值。当您包含
时,您显然也间接地包含了标准
div
的声明。这是编译器试图使用的,而不是您的模板版本

这可能是实现的错误,而不是您的错误(假设您发布的代码正是您试图编译的代码)。如果他们将标准库的这一部分包含在
中,那么他们可能应该这样做:标准
div
将变成
std::div
。如果他们那样做,你就不会有这个问题了

你能行

std::cout << "INT " << div<>(a,b) << std::endl;

std::cout@Dave:或者如果您有一个
使用名称空间std
在代码中,您自己导入了名称。然后,解决方法是使用
行删除该
。@sth:Comeau-Online为该代码报告相同的错误。@Dave:或者如果您有一个
使用名称空间std
在代码中,您自己导入了名称。然后,解决方案是使用
行删除该
。@sth:Comeau Online报告此代码的相同错误。作为快速修复,这可能会起作用:
std::cout@Evan Teran:您实际上可以将参数推断作为快速修复留给编译器
std::cout,这可能会起作用:
std::cout@Evan Teran:您实际上可以将参数推导留给编译器
std::cout
std::cout << "INT " << div<>(a,b) << std::endl;