В соответствии с принятым ответом на this question about raw arrays vs std::vector, преимущество исходного массива (еще в 2010 году) было:Имеет ли исходный массив какие-либо преимущества перед массивом std ::?
- массивы немного более компактные: размер неявное
- массивов не являются изменяемыми; иногда это желательно
- массивов не требуют разбора дополнительных заголовков STL (во время компиляции)
- может быть легче взаимодействовать с кодом прямыми C с массивом (например, если C выделяет и C++ используется)
- массивы фиксированного размера могут быть встроены непосредственно в структуры или объект, который может улучшить расположение памяти и сокращение числа распределений кучи, необходимого
Насколько мне известно, станд :: массива адреса все, кроме третий пункт.
Так что, если мне отчаянно нужно улучшить время компиляции, есть ли причина использовать необработанный массив над std :: array в C++ 11?
Не можете увидеть какие-либо преимущества для сырых массивов, это как раз наоборот (Я имею в виду 'std :: array' BTW not' std :: vector'). –
необработанные массивы могут автоматически определять размер файла. – Yakk
@Yakk Что значит «авто размер»? – Barry