草庐IT

0x00000001

全部标签

c++ - 如何在 C++0x 中缓存 lambda?

在C#中大量使用lambda之后,我尝试在C++中使用它们。我目前有一个boost元组(这是真正简化的版本)。typedefshared_ptr(*StringFooCreator)(std::string,int,bool)typedeftupleFooTuple然后我将全局命名空间中的一个函数加载到我的FooTuple中。理想情况下,我想用lambda替换它。tuplearray[i]=FooTuple([](stringbar,intrc,booleom)->{returnshared_ptr(newFoo(bar,rc,eom));});我不知道lambda元组的函数签名应该是

c++ - 在 C++0x 中忽略收缩转换的后果是什么

自从在g++中启用C++0x标准后,我开始看到“缩小转换”错误,尤其是在从“int”转换为“short”时,尽管我知道该错误涵盖范围更广conversions.谁能阐明引入这种额外安全级别的合理性?禁用此错误的可能后果是什么?(除了潜在的精度损失)。谢谢。 最佳答案 来自赋值和复合赋值运算符[expr.ass]Themeaningofx={v},whereTisthescalartypeoftheexpressionx,isthatofx=T(v)exceptthatnonarrowingconversion(8.5.4)isall

c++ - 由于右值引用,C++0x 中的 std::swap 是原子的吗?

因为我们在C++0x中有右值引用,所以在我看来,应该可以将std::swap实现为CAS的原子操作。新标准是否属于这种情况?如果不是,原因是什么? 最佳答案 它不是原子的。原子操作并不便宜,99%的时间你不需要原子性。有(IIRC)一些其他方法来获得原子操作,但std::swap()不是其中之一。 关于c++-由于右值引用,C++0x中的std::swap是原子的吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverf

c++ - 有没有一种简单的方法可以在 C++0x 中实现 AutoResetEvent?

我知道我之前问过这个问题:WhatistheC++equivalentforAutoResetEventunderLinux?但是,我了解到在C++0x中,线程库变得更加简单,所以我想再次提出这个问题,有没有一种简单的方法可以在C++0x中实现AutoResetEvent? 最佳答案 这是对acceptedanswertoyourfirstquestion的翻译使用C++11工具:#include#include#include#includeclassAutoResetEvent{public:explicitAutoResetE

c++ - 哪些编译器对 C++0x 的当前状态有最先进的支持?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:CompilersupportforupcomingC++0x希望将其用于纯粹的实验目的。有没有完全支持的?似乎VC++和GCC有很好的支持,但仍然不完整(可以理解)。

c++ - 传递重物 C++0x

我有一个函数可以生成一种昂贵的对象(包含vector和非固定大小的map),所以我真的想避免调用复制c'tors。到目前为止,我只是从方法中返回了一个std::shared_ptr并使用了它,但我认为它很丑陋并且需要类型定义才能真正使用。我知道有两件事可能对我有帮助。一是复制省略,二是move语义。我的问题是我不知道如何正确使用它们。我的研究告诉我,复制省略完全由编译器完成,而不是st'd的一部分。我真的不想完全依赖这个。那么我如何确保调用move赋值并将其放置到位以防止编译器执行复制省略。ResultSet&&generateResults(){//ResultSeta();:SRe

c++0x std::function 作为方法参数

我正在尝试传递std::function通过这样的方法:classdispatch{public:deliver(std::functiontask);};这按预期工作。但是我希望将参数传递给作为任务提供的一些方法,但不想为所有不同的function创建重载。表格。例如是否有可能只创建如下的方法deliver(std::function&task);然后调用dispatch->deliver(bind(&Object::method,X));或dispatch->deliver(bind(&Object::method,X,arg1,arg2));等...感谢大家的意见。看来我真正的错

c++ - 他们是否将 copy_if 添加到 c++0x?

很烦人的是copy_if不在C++中。有谁知道它是否会在C++0x中? 最佳答案 由于C++0x还没有定型,只能看看最近的draft. 关于c++-他们是否将copy_if添加到c++0x?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/794320/

c++ - c++0x 的正式名称是什么?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。据我所知,今年应该会接受标准。那么,它会是c++11吗?

c++ - 了解 C++ 0x 特性

锁定。这个问题及其答案是locked因为这个问题离题但具有历史意义。它目前不接受新的答案或互动。了解新的C++0x功能的好地方是什么?我知道它们可能还没有完全定稿,但如果能抢先一步就好了。另外,目前有哪些编译器支持它们?