【发布时间】:2014-08-16 23:26:21
【问题描述】:
如何检查特定类型 typename T 是否可以以 T{Args...} 的方式从参数 typename ...Args 构造?我知道来自<type_traits> 的std::is_constructible< T, Args... > 类型特征,但它适用于括号,而不是花括号。我在编写类型特征方面没有太多经验,所以我无法提供最初的例子。为简化起见,我们可以接受任何合理的断言,即使这不会导致太严重的一般性损失。
【问题讨论】:
-
@chris 但是
struct A { std::set< int > a; int b; }; using variant_type = boost::variant< int, double, A >;变体类型呢?std::initializer_list{std::decltype< std::set< int > >(), int()}没有意义。 -
std::is_constructable
> 如果所有参数都是同一类型....
标签: c++ boost typetraits boost-variant