Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误:";依赖名称不是类型";。在类中使用typedef type作为返回值时,使用模板 模板 书包 { 公众: //类型定义 typedef size_t size_type; 类型定义项目值\u类型; ... }_C++ - Fatal编程技术网

C++ 错误:";依赖名称不是类型";。在类中使用typedef type作为返回值时,使用模板 模板 书包 { 公众: //类型定义 typedef size_t size_type; 类型定义项目值\u类型; ... }

C++ 错误:";依赖名称不是类型";。在类中使用typedef type作为返回值时,使用模板 模板 书包 { 公众: //类型定义 typedef size_t size_type; 类型定义项目值\u类型; ... },c++,C++,当我使用 template <class Item> class bag { public: //TYPEDEF typedef size_t size_type; typedef Item value_type; ... } 模板 行李::尺寸\类型行李::计数(常量项目和目标)常量 VC++将错误报告为 Source.cpp(207):警告C4346:“bag::size_类型”:依赖名称不是类型 有人能告诉我为什么吗?谢谢 应该是 template&

当我使用

template <class Item>
class bag
{
public:
    //TYPEDEF
    typedef size_t size_type;
    typedef Item value_type;
...
}
模板
行李::尺寸\类型行李::计数(常量项目和目标)常量
VC++将错误报告为 Source.cpp(207):警告C4346:“bag::size_类型”:依赖名称不是类型

有人能告诉我为什么吗?谢谢

应该是

template<class Item>
bag<Item>::size_type bag<Item>::count(const Item& target) const
模板
类型名称行李::大小\类型行李::计数(常量项目和目标)常量

您需要在
bag::size\u type
之前添加
typename
,因为它是一种依赖类型

typename包::大小\类型包::计数(常量项目和目标)常量
根据C++11标准:

14.6名称解析

模板声明或定义中使用的、依赖于模板参数的名称被假定为不命名类型,除非适用的名称查找找到类型名称或名称由关键字
typename
限定


相关:

可能重复谢谢!我听从了你的建议,解决了我的问题。
template<class Item>
typename bag<Item>::size_type bag<Item>::count(const Item& target) const
typename bag<Item>::size_type bag<Item>::count(const Item& target) const