Однако, что это действительно означает?
Это означает, что, если тип элемента является подвижным, то и тип массива.
std::array<movable, 42> move_from = {...};
std::array<movable, 42> move_to = std::move(move_from); // moves all the elements
Я склонен представлять этот тип как более безопасную версию массива с интерфейсом, совместимым с STL
Не совсем. Это оболочка для массива, обеспечивающая семантику, аналогичную агрегатному классу, включая возможность его копирования и перемещения.
Как
std::array
может двигать-конструировать свои элементы?
Точно так же, как и любой другой агрегат. Его неявный move-constructor будет перемещать-конструировать все его элементы, включая элементы любых массивов элементов.
Можно ли сделать то же самое с обычным массивом?
Только если вы оберните его в тип класса, как это делает std::array
.
добавьте это в свой .emacs:
(setq-default indent-tabs-mode nil)
или вы можете определить ловушку before-save, которая удаляет жесткие вкладки
Также используется Mx untabify
, которая преобразует все табуляции в пробелы в текущей области. Вы можете использовать это, чтобы избавиться от существующих вкладок в файлах, которые вы редактировали до того, как вы правильно установили indent-tabs-mode
.
C-x h (M-x mark-whole-buffer)
M-x untabify