gpt4 book ai didi

templates - "expected initializer before ` < ' token"在全局命名空间中具有内联模板函数

转载 作者:行者123 更新时间:2023-12-04 20:17:09 24 4
gpt4 key购买 nike

我正在尝试编译一些代码,在我的一个头文件中,我在全局命名空间中有以下函数:

template <class T>
inline
T
to_type<T> (const std::string& string)
{
std::stringstream ss(string);
T value;
ss >> value;
return value;
}

然而不知何故,这会引发 g++ 错误 expected initializer before '<' token (我更改了其中一个引号以解决与 SO 格式的冲突)

我不明白这个错误。为什么是 to_type不是有效的初始化程序?这是第一次使用这个符号。我如何修复这个片段?

最佳答案

正确的语法是

template <class T>
inline
T
to_type(const std::string& string)
{
std::stringstream ss(string);
T value;
ss >> value;
return value;
}

(注意在 <T> 之后没有 to_type )。
<>仅在声明特化时被声明的函数(或类)的名称之后,而不是在声明基模板时。

关于templates - "expected initializer before ` < ' token"在全局命名空间中具有内联模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10911345/

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