【发布时间】:2018-04-08 08:12:41
【问题描述】:
让我们考虑以下形式的类型特征:
template <class T>
struct is_instantiable
{
static constexpr bool value = /* something */;
};
template <class T>
inline constexpr bool is_instantiable_v = is_instantiable<T>::value;
它将检测T 类型的实体是否可以被实例化。
目前标准库已经具有is_constructible 之类的特征(但它需要构造对象的参数)。我想知道:
-
is_instantiable类型特征是否有用? - 它是否允许
is_constructible目前存在问题的事情? - 如何定义/实现它(如果它需要一些编译器魔法也没关系)?
目前我不知道这样的东西是否有用? (如果您有任何有趣的用例,is_constructible 受到限制,那就太好了)。
【问题讨论】:
-
很有趣,但最终这个问题太宽泛了。询问某事如何有用通常具有这种特征。
-
这是在询问问题本身如何有用和定义,这是一种循环
标签: c++ instance language-lawyer template-meta-programming typetraits