gpt4 book ai didi

c++ - 在编译时检测是否存在默认构造函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:27:30 24 4
gpt4 key购买 nike

<分区>

我正在尝试检查模板参数是否存在默认构造函数。我想做这样的事情:

template <typename A>
class Blah
{
Blah() { A* = new A(); }
}

但我想在编译时通过 SFINAE 或其他技巧检测该构造函数是否存在,并引发 static_assert如果没有,我自己的。

当我的类(如 std::vector)没有“默认构造函数”但具有默认参数的构造函数时,问题就出现了。

所以使用 std::has_trivial_default_constructor不会返回 true。虽然我可以使用 new vector<T>() .

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com