当不引用标头中的c ++ 17内联变量时,它们会被优化

在c ++ 17之前的版本中,如果我想在执行达到main()之前进行初始化,则在编译单元(.cpp文件)中使用了static global,并从需要此初始化的类中使用它,因此如果这些类不是链接器不会优化静态初始化,因为它看不到它们的引用。

现在,在c ++ 17附带内联变量之后,我可以将许多小的init和全局变量移至标头,并且一切正常,直到我创建了一个小的线程池来处理从异步io函数引用的异步io操作。

因此,如果库的用户不使用任何异步io,线程池将被优化,还是仍将运行并启动其线程?

kshsc 回答:当不引用标头中的c ++ 17内联变量时,它们会被优化

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3045450.html

大家都在问