C++, правильное написание метода, реализующего release() семантику

102
25 января 2022, 01:20

Рассмотрим следующий код:

class Object
{
    public:
    // ...
    private:
    Something something;
}

Я хочу, чтобы Object предоставлял метод release(), название которого исчерпывающе описывает его семантику.

Например, мы могли бы написать нужный метод так:

Something&& release()
{
    return std::move(something);
}

Или вот так:

Something release()
{
    return std::move(something);
}

Есть ли какие-то отличия между двумя этими вариантами?

Я тысячи раз писал подобный код, но только сейчас задумался над тем, что же в действительности происходит.

READ ALSO
Как выделить область изображения по цвету?

Как выделить область изображения по цвету?

В ходе работы встала задача выделить соседствующие пиксели по цвету, однако я никак не додумаюсь, как это сделатьЕсли как в одной строке вполне...

108
Upper_bound для pair

Upper_bound для pair

Язык: С++

115
Как вызвать название переменной в #define?

Как вызвать название переменной в #define?

Я хочу чтобы при вызове

172
Как установить кодировку для консоли в Qt?

Как установить кодировку для консоли в Qt?

В WinAPI есть функция SetConsoleOutputCP(1251) которая меняет кодировку консолиЕсть ли аналог данной функции в Qt ?

98