memcpy拷贝字符串数组时,不会自动拷贝null-terminator,除非指定的size包含它。

完美转发:http://c.biancheng.net/view/7868.html

C++11 标准中规定,通常情况下右值引用形式的参数只能接收右值,不能接收左值。但对于函数模板中使用右值引用语法定义的参数来说,它不再遵守这一规定,既可以接收右值,也可以接收左值(此时的右值引用又被称为“万能引用”)。

template <typename T>
class A {
    // 注意这里并非完美转发,因为T是类模板参数,而非函数模板参数
    void foo(T&&);  // 只能接收右值引用
 
    template <typename U>
    void bar(U&&);  // 这里就是完美转发,可以接受左值/右值引用
};