Tag Archives: g++

Не создавайте пространство имён с именем linux

При разработке на С++ кроссплатформенного приложения разумно выделить платформо-зависимые части в отдельные пространства имён. Например, части, относящиеся только к операционным системам семейства Windows, в пространство имён windows. Это хорошая идея. Однако здесь есть крайне не очевидный подводный камень. Дело в том, что в компиляторе gcc нельзя создать пространство имён с именем linux. Читать полностью →

GCC требует открытого конструктора копирования для C++98

В одной из своих прошлых статей я рассказывал, что при возврате объектов GCC не использует конструктор копирования, сразу размещая объекты там, где они должны располагаться. Однако, в некоторых случаях GCC требует наличия открытого конструктора копирования. Читать полностью →

Не используйте std::move при возврате объектов

Конструкторы и операторы перемещения являются важным нововведением С++11. Про них много написано, и я не стану повторять основы. Вместо этого я хотел бы сосредоточиться на таком вопросе, как возвращение объектов. Нужно ли для этого использовать функцию std::move или нет? Читать полностью →

Неоднозначность при использовании reverse_iterator и const_reverse_iterator

Итераторы reverse_iterator и const_reverse_iterator предназначены для перечисления элементов контейнера в обратном порядке (от конца к началу). Об этом написано в любой более или менее приличной книге по С++. Но есть ряд моментов, о которых там умалчивают. Один из них связан с неоднозначностью, возникающей при работе с обратными итераторами. Читать полностью →

О размере типов int и long

Типы int и long (он же long int) хорошо знакомы каждому программисту C/C++. Их размер и диапазон возможных значений описываются в каждой книге по С/С++. Но оказывается то, что написано в книгах не всегда соответствует действительности. Читать полностью →