C++ 模板 : template argument error

标签 c++ templates

我有

    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 行遇到编译错误(错误 6 错误 C2238:';' 之前的意外标记)

typedef ConcContainer<std::shared_ptr<WBRuleDetails>>::iterator iterator

如何在模板中创建 typedef?我一定是错过了什么..

最佳答案

ConContainer 本身是一个模板所以它需要是一个模板模板参数:

template <template <typename T> class ConcContainer>
class WebBrowsingPolicyData
{
public:
    typedef typename ConcContainer<std::shared_ptr<WBRuleDetails>>::iterator iterator;
};

关于C++ 模板 : template argument error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8153484/

相关文章:

c++ - 在 windows 中创建窗口时出错 "undefined reference to ' WinMain@1 6'"

c++ - 如何在 C++ 中的专用模板类中访问模板类成员字段?

C++ 模板整数类型足够的无符号类型

c++ - 具有类型和模板模板参数的模板类中类型参数的部分特化

c++ - 如何反转 `std::integer_sequence<int, 4, -5, 7, -3>` 中整数的顺序?

c++ - 让两个窗口毫不拖延地粘在一起

c++ - 无符号整数 C++ 可移植性

java - 48 位 TIFF 格式

c++ - 如何正确地将比较器传递给另一个模板函数

c++ - 如何使模板函数的所有实例成为类的 friend ?