Contoh tidak masuk akal berikut ini tidak mengkompilasi, tetapi apakah ada cara lain untuk meneruskan templat variabel sebagai argumen templat templat?
template<typename T>
constexpr auto zero = T{0};
template<typename T, template<typename> auto VariableTemplate>
constexpr auto add_one()
{
return VariableTemplate<T> + T{1};
}
int main()
{
return add_one<int, zero>();
}
value<T>
artinya? Referensi ke variabel global? Selain itu, Anda tidak dapat ODR menggunakan parameter template non-tipe, tetapi Anda bisa dengan template global.