草庐IT

0x00000001

全部标签

c++0x : resolving ambiguity between function-definition followed by empty-declaration and simple-declaration

我在思考c++0x规范中明显的歧义时遇到了问题,另请参阅:http://www.nongnu.org/hcb/假设我们有代码voidfoo(){};我个人将代码解释为function-definition后跟empty-declaration。但是,看看语法规范,我想说这可以很容易地解释为simple-declaration,它是block-declaration的一部分,因此被提及declaration列表中的较早...这是我对如何将其解析为简单声明的解释:voidfoo(){};"->简单声明void->decl-specifier-seq->decl-specifier->typ

c++ - 关于 C++0x,我需要了解什么?

这个问题在这里已经有了答案:关闭12年前.PossibleDuplicate:WherecanIlearnmoreaboutC++0x?我对C++03相当熟悉,但我仍然需要熟悉C++0x,所以我想阅读一些关于C++0x的相当易懂的信息。我看过Wikipedia但我正在寻找更具可读性的东西。那么有没有一本书或一系列博客文章很好地介绍了Material? 最佳答案 这个网站上有很多东西-有些帖子包含非常丰富的讨论。我会把你指向谷歌,但在C++0xtaggedposts中搜索会更有效率。在这里海事组织。这里是agoodone开始,其中包括

c++ - 如何在 GCC 4.5 中使用 C++0x 原始字符串?

这个页面说GCC4.5有C++原始字符串文字:http://gcc.gnu.org/projects/cxx0x.html但是当我尝试使用此页面中的语法时:http://www2.research.att.com/~bs/C++0xFAQ.html#raw-strings#include#includeusingnamespacestd;intmain(){strings=R"[\w\\\w]";}我收到此错误:/opt/local/bin/g++-mp-4.5-std=gnu++0x-O3rawstr.cc-orawstrrawstr.cc:9:19:error:invalidcha

c++ - 参数包中的参数计数?是否有 C++0x 标准库函数呢?

我只是想知道C++0x标准库中是否有任何东西可用于计算参数包中的参数数量?我想去掉下面代码中的field_count。我知道我可以构建自己的计数器,但似乎将其包含在C++0x标准库中是一件显而易见的事情,我想确保它不存在:)本土计数器实现也很受欢迎。templatestructEntity{consttupledata;constarraysource_names;Entity():data(){}}; 最佳答案 是的,您可以使用sizeof...。来自C++0xFCD(§5.3.3/5):Theidentifierinasizeof

c++ - C++11 (C++0x) 是完整的 C++03 超集吗?

C++被认为是(几乎)C的超集;但仍有某些东西在C中有效,而在C++中无效。是否有任何功能/设施是有效的C++03但在C++11中不起作用? 最佳答案 Isthereanyfeature/facilitywhichisavalidC++03butnotworkinginC++11?有一些不兼容的地方:exporttemplate被移除(不被弃用,真正被移除)您不能再使用auto作为存储说明符新增保留字:alignof、char16_t、char32_t、constexpr、decltype、noexcept、nullptr、stat

c++ - C++0x 仍然可以使用全局运算符 new 显式分配吗?

Wikipedia状态:Atypecanbemadeimpossibletoallocatewithoperatornew:structNonNewable{void*operatornew(std::size_t)=delete;};Anobjectofthistypecanonlyeverbeallocatedasastackobjectorasamemberofanothertype.Itcannotbedirectlyheap-allocatedwithoutnon-portabletrickery.(Sinceplacementnewistheonlywaytocallaco

C++0x lambda,如何作为参数传递?

请看以下C++0xlambda相关代码:typedefuint64_t(*WEIGHT_FUNC)(void*param);typedefstd::mapCallbackTable;CallbackTabletable;table["rand_weight"]=[](void*param)->uint64_t{return(rand()%100+1);};我收到一个错误(在VisualStudio2010中),无法将lambda转换为WEIGHT_FUNC的类型。我也知道答案:使用std::functionobject:typedefstd::functionWEIGHT_FUNC;不

C++0X 概念消失了。还应该使用哪些其他功能?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭4年前。Improvethisquestion您可能听说过,C++标准委员会的最后一次session投票决定从下一个C++标准中删除概念。当然,这会影响其他功能,并且似乎会再次打开标准。如果是这样,您认为应该删除(或添加)哪些其他功能,为什么?链接:RemovalofConcepts--DannyKalev(关于删除概念的决定)SimplifyingtheuseofConcepts--BjarneStroustrup(关于现在看来的概

c++ - C++0x 概念和 Boost 概念检查库 (BCCL) 有什么区别?

Concepts没有使C++0x成为标准,但Boost仍然提供TheBoostConceptCheckLibrary(BCCL).我猜BCCL并没有涵盖C++0x标准中的所有内容。BCCL和提议的C++0x解决方案有什么区别? 最佳答案 检查模板定义这些手动解决方案的概念的一个很大区别是概念允许对模板的定义进行类型检查,而无需做任何特殊的事情。概念检查库只允许对它的*use*进行类型检查(除非您手动编写测试实例化类型或为标准情况使用提供的类型,见下文)。例子:templateintdistance(InputIteratora,In

c++ - Boost.Spirit 可以在理论上/实践上用于解析 C++(0x)(或任何其他语言)吗?

理论上可以胜任吗?是否可以实际完成?生成的解析器是否能以足够的性能和输出(例如,LLVMIR或GCC的gimple)集成到竞争编译器中? 最佳答案 对不起。我和它的作者谈过,他说他不会让它完全解析C++,但承认他接受它来解析某些结构是模棱两可的。所以这不再是答案了!!我建议你看看scalpel.从它的主页Scalpelstandsforsourcecodeanalysis,libreandportablelibrary.ThisisaC++librarywhichaimstoperformfullsyntaxand