我有
template <typename ConcContainer>
class WebBrowsingPolicyData
{
public:
typedef ConcContainer<std::shared_ptr<WBRuleDetails>>::iterator iterator;
...
private:
ConcContainer<std::shared_ptr<WBRuleDetails>> usersData_;
CRITICAL_SECTION critSection
我收到了一行编译错误(错误6错误C2238:前面的意外令牌&#39;;&#39;)
typedef ConcContainer<std::shared_ptr<WBRuleDetails>>::iterator iterator
如何在模板中创建typedef?我一定错过了什么..
答案 0 :(得分:3)
ConContainer本身就是一个模板,因此它需要是一个模板模板参数:
template <template <typename T> class ConcContainer>
class WebBrowsingPolicyData
{
public:
typedef typename ConcContainer<std::shared_ptr<WBRuleDetails>>::iterator iterator;
};
答案 1 :(得分:0)
两种可能性:
>>
问题。插入一个空格。请注意,如果您使用的是符合C ++ 11标准的编译器,那么这应该不是问题。示例:
typedef ConcContainer<std::shared_ptr<WBRuleDetails> >::iterator iterator;
ConcContainer
没有成员或typedef iterator
。检查以确保它确实存在。