c++11相关内容
可能重复: make_unique和完美转发 为什么C ++ 11有 make_shared 模板,但不是 make_unique 模板? 这使代码非常不一致。 auto x = make_shared(“abc”); auto y = unique_ptr(new string(“abc”)); 解决方案 根据He
..
好的,这是我问过的第一个问题,我不知道你不能回答自己的问题。 回答: 2011年3月25日:-)我不是开玩笑,它是官方的。 $ b 更新 八月12,2011。 C ++ FDIS已经得到ISO的一致同意。 解决方案 正如霍华德在问题中所说,最终草案已于3月25日完成,2011。 现在将有几个月的编辑更改,投票和ISO的红色磁带,然后才正式成为标准,但在25日,标
..
在C ++ 0x中转发所有父构造函数的正确方法是什么? 我一直在做这个: class X:public Super { template X(Args& ... args):Super(args ...){} }; 解决方案 class X:public Super { using Super :: Su
..
有时候我必须使用 std :: thread 来加快我的应用程序。我也知道 join()等待,直到线程完成。这很容易理解,但是调用 detach()和不调用它有什么区别? 没有 detach(),线程的方法将独立使用线程。 不分离: void Someclass :: Somefunction() { // ... std :: thread t([] { p
..
我一直在使用pimpl成语做一些对象,但我不确定是否使用 std :: shared_ptr 或 std :: unique_ptr 。 我明白 std :: unique_ptr 更高效,但这不是一个问题我,因为这些对象是相对重量无论如何,因此 std :: shared_ptr over std :: unique_ptr 的成本是相对 我目前使用 std :: shared_pt
..
我想使用constexpr填充一个枚举数组。 数组的内容遵循某种模式。 我有一个枚举将ASCII字符集分为四个类别。 枚举类型{ 字母, 数字, 符号, 其他, } constexpr类型表[128] = / * blah blah * /; 我想有一个数组128 Type 。他们可以在一个结构。 数组的索引将对应于ASCII字符,并且值将是每个字符的
..
是否有任何一般偏好或规则解释应该使用容器特定版本的begin和end而不是自由函数 std :: begin 和 std :: end ? 这是我的理解,如果函数是一个模板,容器类型是一个模板参数,应使用c $ c> std :: begin 和 std :: end ,即: 模板 void do_stuff(const T& t) { std :: for_e
..
我最近尝试使用 Qt Creator 1.3.2,Qt 4.6.2和GCC 4.4.0(32)位版本)在Windows 7(64位)上使用一些实验C ++ 0x扩展编译应用程序,并遇到以下(致命)错误: 此文件需要编译器和库支持即将到来的 ISO C ++标准C ++ 0x。此支持目前是实验性的,必须使用-std = c ++ 0x或-std = gnu ++ 0x编译器选项启用 。
..
此问题的灵感来自以下解决方案到多重继承重载伪模糊度,这是一个很好的方式来实现lambda的访问者boost :: variant提出在这个回答: 我想做类似下面的事情: 模板 struct lambda_visitor:public boost :: static_visitor
..
我有一个有unique_ptr成员的类。 class Foo { private: std :: unique_ptr酒吧; ... }; Bar是具有create()函数和destroy()函数的第三方类。 如果我想在一个独立的函数中使用 std :: unique_ptr / p> void foo(){ std ::
..
用户可以向 std 命名空间添加显式专门化。 有什么模板可以和我不能专业化吗? 解决方案 从标准中松散: numeric_limits 不适用于非算术标准类型(例如 complex ) “ shared_ptr 的属性应为CopyConstructible,CopyAssignable和LessThanComparable [and]可转换为 bool 。
..
代码: std :: vector y {{1,2,3,4}}; 为什么需要std :: array的双花括号? 解决方案 std :: array 是一个聚合: -declared构造函数,甚至没有一个采取 std :: initializer_list 。使用大
..
我一直在使用Howard Hinnant的堆栈分配器,它的工作方式类似于charm,但实现的一些细节 为什么全局运算符 new 和 delete used? allocate()和 deallocate()成员函数使用 :: operator new 和 :: operator delete 。类似地,成员函数 construct()使用全局布局new。为什么不允许任何用户定义的全局或类特定
..
我有一些麻烦理解C $ 0x需要 std :: result_of 。如果我理解正确, result_of 用于获得调用具有某些类型的参数的函数对象的结果类型。例如: template typename std :: result_of :: type invoke(F f,Arg a) { return f
..
相关问题: 关于C ++ 11: C ++ 11:std :: thread pooled? 将异步(启动:: 关于Boost: / p> C ++提升线程重用线程 boost :: thread并创建它们的池! 如何获得线程池以向发送任务,而无需一遍又一遍地创建和删除它们? 我的代码如下所示: namespace { std :: vector
..
寻找一种方法来实现一个通用的通用memoization函数,它将采用一个函数并返回相同的记忆版本? 寻找类似@memo来自Norving的网站)在python中的装饰器。 def memo(f): table = {} def fmemo(* args): 如果参数不在表中: table [args] = f(* args) return table [args] fm
..
如何检查std ::线程是否仍在运行(以平台无关的方式)? 它缺少一个timed_join()方法和joinable()不是为了。 我想在一个std :: lock_guard锁定一个mutex线程和使用互斥体的try_lock()方法来确定它是否仍然被锁定(线程正在运行),但对我来说似乎不必要的复杂。 知道更优雅的方法吗? 更新:要清楚:我想检查线程是否干净地退出。 解
..
UPDATE 在底部 q1:如何实现
..
我在尝试使用C ++ 0x可变参数模板时遇到这个问题: template struct identities { typedef Args type; // compile error:“parameter packs not expanded with'...' }; //下面的代码只是显示了一个潜在的使用示例,但没有关系 //
..
我不知道为什么在C ++ 11中引入了 cbegin 和 cend ? 调用这些方法的情况与 begin 和 解决方案 这很简单。说我有一个向量: std :: vector
..