Как стать автором
Поиск
Написать публикацию
Обновить
94
0
Григорий Борисович @naething

Пользователь

Отправить сообщение

Move semantics в C++11 и STL-контейнеры

Время на прочтение2 мин
Количество просмотров78K
Эта небольшая заметка о том, как с приходом нового стандарта C++11 изменились требования стандартных контейнеров к своим элементам. В C++98 от элемента контейнера требовалось, по сути, наличие «разумных» конструктора копирования и оператора присваивания. Если, например, объект вашего класса владеет каким-либо ресурсом, копирование обычно становится невозможным (по крайней мере, без «глубокого» копирования ресурса). В качестве примера давайте рассмотрим следующий класс-обертку вокруг FILE*, написанную на C++98:

class File
{
    FILE* handle;
public:
    File(const char* filename) {
        if ( !(handle = fopen(filename, "r")) )
            throw std::runtime_error("blah blah blah");
    }
    ~File() { if (handle) fclose(handle); }
    // ...
private:
    File(const File&); //запретить копирование
    void operator=(const File&); //запретить присваивание
};

Читать дальше →

Сетевой морской бой на bash

Время на прочтение2 мин
Количество просмотров9K
Недавно с целью изучения bash написал на нем игру в «морской бой» для игры по сети. Игра получила название «Sink 'em all».

image

Из внешних программ используются только nc (для организации взаимодействия по TCP), stty (для выключения эха при нажатии клавиши) и clear (для очистки терминала).
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Palo Alto, California, США
Дата рождения
Зарегистрирован
Активность