作者:WO | 来源:互联网 | 2022-11-29 13:09
我有多个类共享相同的公共typedef,如
struct A { using COntainer= std::array; };
struct B { using COntainer= std::vector; };
struct C { using COntainer= std::array; };
现在我有一个类,它获取一个只包含有效类的参数包,但它必须存储容器的元组.伪代码:
template
struct Collector
{
std::tuple mContainers;
};
::Container
在打开包装时是否有一种优雅的方式来应用?
1> WorldSEnder..:
您可以使用辅助特征
template
using COntainerOf= typename T::Container;
template
struct Collector
{
std::tuple...> mContainers;
};
或者,您也可以在没有辅助特征的情况下内联此特征:
template
struct Collector
{
std::tuple mContainers;
};