данном примере - https://godbolt.org/z/GvznWvxc5?
добрый вечер. раскажите нам о массивах
А, понял. Не сразу признал
Вообще ничего хорошего там не происходит и так делать нельзя.
В плюсах нет VLA.
ты const в упор не видишь?
Там же по идее там же констэкспр, то есть массив вполне фиксированного размера и всё норм
И const в плюсах этого не делает. Вот constexpr — да.
Компилятор если может оптимизирует конст до констэкспр, не?
нет, это не влияет
На оптимизацию полагаться как-то не очень.
проверил на 19-й вижле. все собирается с констом. без конста -нет
Ну ты же понимаешь, что это не аргумент.
Хотя чести ради, gcc без конста тоже собирает
отключи экстеншены принудительно
https://eel.is/c++draft/expr.const#3 A variable is potentially-constant if it is constexpr or it has reference or const-qualified integral or enumeration type.
Т.е. в данном контексте const и constexpr отличаются только проверками на этапе компиляции?
В контексте void f() { const int n = 5; } n считается constant expression, да. Но если заменить на const int n = input();, то перестанет быть таковым, но компилятор молча скомпилирует в отличие от constexpr.
Даже если input() сам возвращает констэкспр?
Давай не будем докапываться, я всё-таки подразумевал рантайм в имени функции
Обсуждают сегодня