C++:如何将模板类型限制为可复制分配的类型?

use*_*931 0 c++

template<typename T>
class A {}
Run Code Online (Sandbox Code Playgroud)

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

Pau*_*ers 5

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

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

现场演示