我想知道通过使用移动赋值运算符来编写reset某个类的方法是否安全。Athis
所以而不是
A a{};
... // Do something with a
a = A();
Run Code Online (Sandbox Code Playgroud)
如果我能写
A a{};
... // Do something with a
a.reset();
Run Code Online (Sandbox Code Playgroud)
在哪里
void A::reset()
{
*this = A();
}
Run Code Online (Sandbox Code Playgroud)
我在 godbolt ( https://godbolt.org/z/Edc3TT1aT )上玩了一下,生成的调试程序集与本示例中的 gdb 几乎相同。
有没有一种方法可以使用 C++ 概念来要求类派生自模板化类,而模板化类的模板参数又是另一个模板化类的派生类。
例子:
template <class T>
class A{};
template <class T>
class B{};
class X{};
class Y : public A<X> {};
class Z : public B<Y> {};
Run Code Online (Sandbox Code Playgroud)
我如何办理登机手续B,这是某些人的T表格而不指定是什么?我不想添加到 的模板参数列表中,因为我不想在派生自的每个实例上更改代码(例如最后一行)。std::is_base_of<A<X>,T>XXXBBclass Z