Вопрос

Что означают эти две странные строки кода?

thread_guard(thread_guard const&) = delete;

thread_guard& operator=(thread_guard const&) = delete;
Это было полезно?

Решение

А =delete — это новая функция C++0x.Это означает, что компилятор должен немедленно прекратить компиляцию и сообщить, что «эта функция удалена», как только пользователь использует такую ​​функцию (см. также: функции по умолчанию и удаленные функции - контроль значений по умолчанию часто задаваемых вопросов по C++0x Бьярна Страуструпа).

А thread_guard(thread_guard const&) является конструктором копирования, и thread_guard& operator=(thread_guard const&) является конструктором присваивания.Таким образом, эти две строки вместе отключают копирование thread_guard экземпляры.

Другие советы

Это новый синтаксис C ++ 0x для отключения определенных функций класса. Видеть Википедия Например. Здесь вы говорите этот класс thread_guard не является ни копией, ни назначенным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top