左值与右值
左值我们直接可以控制的值 可以直接或者间接访问(合法)其的内存地址
右值我们无法直接或者间接访问其的内存地址
s t d : : m o v e ( ) std::move() std::move()
为什么需要引入 s t d : : m o v e ( ) std::move() std::move()
请参考下面一个例子
#include <cstdio>
#include <cstring>
using namespace std;
class string
{
private:
char * data;
int data_size;
public:
string(const char* s)
{
printf("construct\n");
data_size = strlen(s);
data = new char[data_size];
memcpy(data, s, data_size);
}
~string()
{
delete data;
}
string(const string& a)
{
printf