Создание не копируемых, а перемещаемых, объекты в c ++

Просто вопрос. Библиотеки C ++ Boost (в частности, boost :: thread class) В конце концов я подумал: «Как можно создать класс, определяющий объекты, которые нельзя скопировать, но которые можно вернуть из функции?»

Рассмотрим этот пример. класс boost :: thread имеет характеристики, о которых я упоминал ранее, поэтому это возможно:

boost::thread make_thread();

void f()
{
    boost::thread some_thread=make_thread();
    some_thread.join();
}

Это означает, что объект boost :: thread не может быть скопирован, но возвращен из функции, это возможно. как можно создать класс, определяющий объекты, которые нельзя скопировать, но которые могут быть ...

Просто вопрос. Глядя на библиотеки C ++ Boost (в частности, на класс boost :: thread), я подумал: «Как можно создать класс, определяющий объекты, которые нельзя скопировать, но которые могут быть возвращены из функции?»

Хорошо подумайте об этом. Например, класс boost :: thread имеет характеристики, о которых я упоминал ранее, поэтому это возможно:

boost::thread make_thread();

void f()
{
    boost::thread some_thread=make_thread();
    some_thread.join();
}

Это означает, что объект boost :: thread не может быть скопирован, но возвращен из функции, это возможно. как можно создать класс, определяющий объекты, которые нельзя скопировать, но которые могут быть ...

Просто вопрос. Глядя на библиотеки C ++ Boost (в частности, на класс boost :: thread), я в конечном итоге подумал: «Как можно создать класс, определяющий объекты, которые нельзя скопировать, но которые могут быть возвращены из функции?»

Хорошо подумайте об этом. Например, класс boost :: thread имеет характеристики, о которых я упоминал ранее, поэтому это возможно:

boost::thread make_thread();

void f()
{
    boost::thread some_thread=make_thread();
    some_thread.join();
}

Это означает, что объект boost :: thread не может быть скопирован, но возвращен из функции, это возможно. Как это возможно ????

Я полагаю, что конструктор копирования не должен предоставляться, но как быть с возвратом из функции? разве не нужно использовать конструктор копирования ???

Спасибо

10
задан Andry 23 November 2010 в 19:50
поделиться