编译时间较长的示例程序

Sample program that takes a long time to compile

提问人:user1408865 提问时间:11/9/2023 更新时间:11/9/2023 访问量:103

问:

我正在模拟编译过程中的一些超时场景,并希望有一些在 C++17 上编译需要 30 秒以上的示例。你能举一些例子来做到这一点吗?我正在尝试使用,但我没有得到我需要的超时。我正在使用的样品constexpr

constexpr auto delay()
{
    unsigned long long x = 0UL;
    for (unsigned long long i = 1; i < 1000000000UL; i++)
    {
        x++;
    }
    return x;
}
...
...
delay();
C++ C++17 常量

评论

0赞 Brian61354270 11/9/2023
这是否严格需要是需要很长时间才能编译的 C++ 代码,或者编译过程中的其他延迟会起作用吗?例如,在构建步骤中的某个地方偷偷摸摸,或者尝试编译“文件”sleep 30<(sleep 30)
0赞 user1408865 11/9/2023
它必须在编译步骤中。只是编译应该需要很长时间。
0赞 Brian61354270 11/9/2023
这里的“在编译步骤中”是什么意思?代码是如何编译的/您使用的是什么构建系统?
5赞 BoP 11/9/2023
你必须更加努力!任何人,包括编译器,都知道,如果将某些东西递增 N 次,结果就是 N。它不必指望它的手指,它只是知道。
1赞 prapin 11/9/2023
首先尝试用类似 的东西替换,而不是 ,而不仅仅是 。我尝试了 MSVC,它因错误 C2131 而放弃,因为循环太长,它建议使用 .海湾合作委员会似乎也有类似的标志delay();constexpr auto a = delay();/constexpr:depth<NUMBER>-fconstexpr-loop-limit=

答:

0赞 Valentin H 11/9/2023 #1

任何或多或少的大项目,如OpenCV、Qt、TensorFlow

另一种可能性是自动生成代码。

评论

0赞 Peter - Reinstate Monica 11/9/2023
代码生成是个好主意,您可以拥有任意代码大小。实际上,通过 stdin 即时传输 C 代码。