计算类模板类型,非类型和模板模板参数

时间:2019-11-30 16:27:01

标签: c++ templates

我正在尝试创建一个名称空间变量,其值是给定类的模板参数(类型,非类型和模板模板)的数量。考虑以下代码:

template<class C>
inline constexpr size_t template_parameters_count = 666;

template<template<typename...> class C, typename... Ts>
inline constexpr size_t template_parameters_count<C<Ts...>> = sizeof...(Ts);

template<typename, typename, typename>
struct A {};

template<typename, typename, typename, bool>
struct B {};

template<typename, typename, typename, bool, template<typename...> typename>
struct C {};

template_parameters_count<A<int, int, int>>是3。 template_parameters_count<B<int, int, int, true>>是666,但我希望是4。 template_parameters_count<B<int, int, int, true, A>>是666,但我希望是5。 我该怎么办?

0 个答案:

没有答案