[(E)483]There are five situations in which an object is copied or moved:
[(ZH)P414]一个对象在6种情况下会被拷贝或移动：

[(E)P488]This implies that we can prevent destruction of an X by declaring its destructor =delete (§17.6.4) or private.
[(ZH)P419]这意味着我们通过声明X的构造函数为=delete(见17.6.4节)或private，就可以阻止其析构。

[(E)490]so the value of alpha is {"","",0}.
[(ZH)420]因此alpha的值是{""|,"",0}。

[(E)605]

[(ZH)518]

TCPL(20.3.6 Return Type Relaxation P596)covariant return是这么写的:
That is, if the original return type was B, then the return type of the overriding function may be D, provided B is a public base of D. Similarly, a return type of B& may be relaxed to D&. This is sometimes called the covariant return rule.

The return type of an overriding function shall be either identical to the return type of the overridden function or covariant with the classes of the functions. If a function D::f overrides a function B::f, the return types of the functions are covariant if they satisfy the following criteria:

• both are pointers to classes, both are lvalue references to classes, or both are rvalue references to classes
• the class in the return type of B::f is the same class as the class in the return type of D::f, or is an unambiguous and accessible direct or indirect base class of the class in the return type of D::f
• both pointers or references have the same cv-qualification and the class type in the return type of D::f has the same cv-qualification as or less cv-qualification than the class type in the return type of B::f.

If the class type in the covariant return type of D::f differs from that of B::f, the class type in the return type of D::f shall be complete at the point of declaration of D::f or shall be the class type D. When the overriding function is called as the final overrider of the overridden function, its result is converted to the type returned by the (statically chosen) overridden function (5.2.2).

[(E)P649]It is not possible to cast to a private base class using static_cast or reinterpret_cast, and ‘‘casting away const’’ (or volatile) requires a const_cast (§11.5.2).
[(ZH)P553]我们不可能用dynamic_cast和static转换到私有基类，而“强制去除const”(或volatile)则需要使用const_cast。(见§11.5.2).

[(E)P663] And [(ZH)P565]

[(E)P676]However, a virtual member function cannot also be a member function template (§23.4.6.2).
[(ZH)P575]但是，一个虚成员函数名不能再用作一个成员函数模板名。

A member function template shall not be virtual.

[(E)P754]It would be a good guess that the author of User meant for User::alg()User::algo() to call User::copy().