【发布时间】:2013-04-14 10:06:03
【问题描述】:
我想在我的程序中使用一些 C++11 功能。将来我可能不得不与其他人分享我的源代码。 如何在代码中断言应该使用 C++11 来编译我的程序? 较旧的编译器可能会抛出错误,但我希望清楚地告知用户 C++ 11 是必需的。
如果重要的话,我正在使用以下 C++11 功能:
- 指定存储大小的枚举
- std 共享指针
谢谢
【问题讨论】:
-
static_assert(true);。 (我在开玩笑。不要这样做。) -
请注意,在撰写本文时,没有完全支持 C++11 的编译器。因此,如果您测试完整的 C++11 支持,您将有很多误报 - 具有您需要的功能但未实现 C++11 的编译器因此被您的测试拒绝。跨度>
-
@SteveJessop 我的印象是,根据this table,GCC 已经支持所有 C++11 功能。如果我错了,请纠正我。
-
@Malcolm 大部分都支持,但有些细节可以完善,libstdc++ 不完全兼容C++11。
-
@Malcolm:gcc.gnu.org/onlinedocs/libstdc++/manual/…。进步很大,但仍有一些重大遗漏。