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