草庐IT

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功能的好地方是什么?我知道它们可能还没有完全定稿,但如果能抢先一步就好了。另外,目前有哪些编译器支持它们?

c++ - 这段代码是做什么的 : static union MSVC_EVIL_FLOAT_HACK INFINITY_HACK = {{0x00, 0x00, 0x80, 0x7F}};

#ifndefINFINITY#ifdef_MSC_VERunionMSVC_EVIL_FLOAT_HACK{unsigned__int8Bytes[4];floatValue;};staticunionMSVC_EVIL_FLOAT_HACKINFINITY_HACK={{0x00,0x00,0x80,0x7F}};#defineINFINITY(INFINITY_HACK.Value)#endif我目前正在开始使用Chipmunk物理引擎并在头文件中找到它INFINITY用于为物体设置无限动量,但是我不明白上面这段代码的作用! 最佳答案

c++ - 在什么情况下 vtable 指针可以为空(或 0x1)?

我目前正在调试崩溃日志。发生崩溃是因为(c++-)对象的vtable指针是0x1,而据我从崩溃日志中可以看出,对象的其余部分似乎没问题。程序在尝试调用虚拟方法时崩溃。我的问题:在什么情况下vtable指针可以变为null?operatordelete是否将vtable指针设置为空?这发生在使用gcc4.0.1(AppleInc.build5493)的OSX上。 最佳答案 可能是内存践踏-错误地覆盖了vtable。在C++中有几乎无限多的方法可以“实现”这一点。例如,缓冲区溢出。 关于c+

c++ - 构建 PBRT v2 错误 - 错误 1 ​​错误 U1077 : 'if' : return code '0x1'

我有visualstudio2013社区版,我有pbrt-v2代码库,一直在尝试构建解决方案,但这是我遇到的错误之一(它似乎与nmake相关):NMAKE-Error1errorU1077:'if':returncode'0x1'我不确定该怎么做,因为其他说明似乎不是很清楚。任何帮助将不胜感激!谢谢你,祝你有美好的一天!------------更新--------------------我让它在visualstudio2013上编译和构建。问题是我认为我有过时的PBRT文件。基本上我所做的是通过github查看项目,我认为这应该可行,但后来我注意到你可以在网站上下载最新的pbrt-v2

C++0x 初始化列表示例

我想看看这个现有代码示例如何能够利用C++0x初始化列表功能。例子0:#include#includestructAsk{std::stringprompt;Ask(std::stringa_prompt):prompt(a_prompt){}};structAskString:publicAsk{intmin;intmax;AskString(std::stringa_prompt,inta_min,inta_max):Ask(a_prompt),min(a_min),max(a_max){}};intmain(){std::vectorui;ui.push_back(newAskS

c++ - g++ C++0x 枚举类编译器警告

我一直在将C++类型安全伪枚举的可怕困惑重构为新的C++0x类型安全枚举,因为它们方式更具可读性。无论如何,我在导出类中使用它们,所以我明确标记它们要导出:enumclass__attribute__((visibility("default")))MyEnum:unsignedint{One=1,Two=2};用g++编译它会产生以下警告:typeattributesignoredaftertypeisalreadydefined这看起来很奇怪,因为据我所知,该警告旨在防止实际错误,例如:class__attribute__((visibility("default")))MyCla

c++ - 是否有像 auto_ptr 和 shared_ptr 这样不需要 C++0x 的通用智能指针?

我想要一个非引用计数的智能指针,它可以结合auto_ptr和shared_ptr的一些有用方面。我认为C++0x的unique_ptr最终是我需要的,但我需要一些可以在VisualStudio2008和Xcode(gcc4.2)上编译的东西。我需要的功能是:可在工厂方法中使用,以便在复制时转移所有权(如auto_ptr)支持release()(比如auto_ptr)可与前向声明一起使用(如shared_ptr)所以,我认为它确实是一个更好的auto_ptr。在boost或其他地方有什么可以做到这一点的吗(注意:我没有时间把我的头缠在Loki周围)?还是我应该自己动手?编辑:我刚刚阅读了