The following nonsensical example does not compile, but is there some other way to pass a variable template as a template template argument?
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