代码之家  ›  专栏  ›  技术社区  ›  cantordust

强制所有枚举类类型使用元类具有公共元素

  •  0
  • cantordust  · 技术社区  · 6 年前

    在我的一个图书馆里,我有一堆 enum class 我用来做一些 struct / class

    enum class Param
    {
        Undef,
        P1,
        P2,
        P3,
        P4
    };
    
    enum class Type
    {
        Undef,
        T1,
        T2,
        T3,
        T4
    };
    

    你明白了。我确保手动插入 Undef 元素 enum ,我将其用作某些模板的默认值:

    template<Type t>
    struct Container
    {
        template <Param p = Param::Undef>
        void func() {};
    }
    

    全部的 枚举 未设防 元素,能够从编译器请求它将是非常好的。基本上,我希望能够遍历所有 然后注入 未设防

    我的问题是,在 c++20 ? 如果是,那么代码是什么样子的(例如,使用 Herb Sutter's 建议)?

    0 回复  |  直到 6 年前