Блог пользователя RBurgundy

Автор RBurgundy, история, 2 года назад, По-английски

Compiling the following code under both 64-bit C++ versions gives a compiler error, but no useful error message, just "Invocation failed [COMPILATION_ERROR] Can't compile file:".

This compiles and runs fine on my machine (I use a large stack size). Is it possible to get a more useful error message from Codeforces here? Also, where are the compilation flags documented? I found https://mirror.codeforces.com/blog/entry/79 from the FAQ but it seems quite out of date.

#include <bits/stdc++.h>

constexpr int32_t MAXN = 2e5 + 5;

int main() {

    std::array<std::vector<int32_t>, MAXN> a{};

    return 0;
}
  • Проголосовать: нравится
  • +37
  • Проголосовать: не нравится

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by RBurgundy (previous revision, new revision, compare).

»
2 года назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Without the bracket pair after the array declaration, it compiles fine. But I do not know why. Could anyone point out why?

»
2 года назад, # |
  Проголосовать: нравится +16 Проголосовать: не нравится

Maybe it is compilation time limit exceeded? Some versions of GCC compile some constant arrays in quadratic time, it is a quite old bug. It seems like it could have happened in your case.