Как это скомпилируется, если std :: pow не разрешено быть constexpr для совместимости с такими настройками, как errno? - PullRequest
0 голосов
/ 11 января 2019

Следующий фрагмент кода C ++ работает и прекрасно компилируется, например, на следующей платформе (не уверен, какой компилятор используется под капотом). Но разве размеры массивов не должны быть известны во время компиляции?

https://onlinegdb.com/H1qovLHGV

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int foo[(int) std::pow(3, 5)];
    foo[2] = 0;
    cout<<"Hello World " << foo[2] << endl;

    return 0;
}
...