首页 > 解决方案 > c ++:如何将模板类型限制为可复制分配的类型?

问题描述

template<typename T>
class A {}

如何将类型 T 限制为仅可复制分配的类型?我知道,std::is_copy_assignable<T>::value但我怎么能用它来限制 A 类的类型 T?

标签: c++

解决方案


您也可以使用static_assert它,它可以让您生成更好的错误消息:

template<typename T>
class A
{
    static_assert (std::is_copy_assignable_v<T>, "T must be copy-assignable");
};

现场演示


推荐阅读