Can a variable template be passed as a template template argument?

后端 未结 1 1492
一向
一向 2021-01-01 22:40

The following nonsensical example does not compile, but is there some other way to pass a variable template as a template template argument?



        
1条回答
  •  滥情空心
    2021-01-01 23:24

    Short answer: No.

    Long answer: Yes you can using some indirection through a class template:

    template
    constexpr auto zero = T{0};
    
    template
    struct zero_global {
        static constexpr auto value = zero;
    };
    
    template class VariableTemplate>
    constexpr auto add_one()
    {
        return VariableTemplate::value + T{1};
    }
    
    int main()
    {
        return add_one();
    }
    

    Live example

    0 讨论(0)
提交回复
热议问题