C++ 返回类模板中定义的类型的值 > 类中返回一个值;返回类型必须为X::size\u类型 模板类X{ 公众: typedef size_t size_type; 大小\类型大小()常量; // ... } 模板X::size\u类型X::size()常量{ // ... }
上述代码会导致错误。我在C++ 返回类模板中定义的类型的值 > 类中返回一个值;返回类型必须为X::size\u类型 模板类X{ 公众: typedef size_t size_type; 大小\类型大小()常量; // ... } 模板X::size\u类型X::size()常量{ // ... },c++,class,templates,visual-c++,return-type,C++,Class,Templates,Visual C++,Return Type,上述代码会导致错误。我在X::size\u type之前添加了typename,这个问题似乎已经解决了,但我不明白为什么 这是正确的方式吗?< /P> < P>由于C++复杂且有时不明确的语法,有时需要对解析器/编译器进行提示。 通常,在引用类中定义的类型时,需要使用typename来提示编译器您所说的是类型而不是值(因为X::size\u type可以是其中之一)。是的,这里的typename是正确的。
X::size\u type
之前添加了typename
,这个问题似乎已经解决了,但我不明白为什么
这是正确的方式吗?< /P> < P>由于C++复杂且有时不明确的语法,有时需要对解析器/编译器进行提示。
通常,在引用类中定义的类型时,需要使用
typename
来提示编译器您所说的是类型而不是值(因为X::size\u type
可以是其中之一)。是的,这里的typename是正确的。