我如何静态断言表达式是 std::unique_ptr
即 std::unique_ptr<T>
对于任何 T
.
static_assert (std::is_pointer<decltype(exp)>()), "not a smart pointer")
以上无效。如果没有什么直截了当的,我只对 bool()
感兴趣运算符是为类型定义的。
最佳答案
通过适当的部分特化创建您自己的特征:
template <class T>
struct is_unique_ptr : std::false_type
{};
template <class T, class D>
struct is_unique_ptr<std::unique_ptr<T, D>> : std::true_type
{};
关于c++ - 任何类型的 unique_ptr 的 static_assert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37972394/