gpt4 book ai didi

c++ - 为什么编译器会产生错误?

转载 作者:太空狗 更新时间:2023-10-29 23:48:16 25 4
gpt4 key购买 nike

编译器为什么会报错?

template<class T>
void ignore (const T &) {}

void f() {
ignore(std::endl);
}

编译器 VS2008 给出以下错误:cannot deduce template argument as function argument is ambiguous

最佳答案

我认为问题在于 std::endl 是一个模板函数,编译器无法为 ignore 函数推导出模板参数。

template <class charT, class traits>
basic_ostream<charT,traits>& endl ( basic_ostream<charT,traits>& os );

要解决问题,您可以编写如下内容:

void f() {
ignore(std::endl<char, std::char_traits<char>>);
}

但是您应该知道,您会将指针作为参数传递给函数,而不是函数执行的结果。

关于c++ - 为什么编译器会产生错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1839224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com