В отличие от массива C, std::array может иметь нулевую длину. Но текущие реализации отличаются тем, как реализован std::array, в частности, различаются размеры объекта.
Эта программа
Код: Выделить всё
#include
int main() {
return sizeof(std::array);
}
предполагает, что
- в libc++ от Clang и STL от Microsoft, а также
- в libstdc++ GCC.
Все ли реализации здесь корректны, а libstdc++ просто лучше оптимизирует std::array? Или меньший размер здесь приводит к каким-то другим недостаткам, которые являются причиной того, что другие реализации не идут по этому пути?
Подробнее здесь:
https://stackoverflow.com/questions/797 ... tdarrayt-0