c++11相关内容

为什么C ++ 11有`make_shared`而不是`make_unique`

可能重复: make_unique和完美转发 为什么C ++ 11有 make_shared 模板,但不是 make_unique 模板? 这使代码非常不一致。 auto x = make_shared(“abc”); auto y = unique_ptr(new string(“abc”)); 解决方案 根据He ..
发布时间:2016-10-13 09:49:55 C/C++开发

什么时候C ++ 0x完成?

好的,这是我问过的第一个问题,我不知道你不能回答自己的问题。 回答: 2011年3月25日:-)我不是开玩笑,它是官方的。 $ b 更新 八月12,2011。 C ++ FDIS已经得到ISO的一致同意。 解决方案 正如霍华德在问题中所说,最终草案已于3月25日完成,2011。 现在将有几个月的编辑更改,投票和ISO的红色磁带,然后才正式成为标准,但在25日,标 ..
发布时间:2016-10-13 09:49:35 C/C++开发

什么时候应该使用std :: thread :: detach?

有时候我必须使用 std :: thread 来加快我的应用程序。我也知道 join()等待,直到线程完成。这很容易理解,但是调用 detach()和不调用它有什么区别? 没有 detach(),线程的方法将独立使用线程。 不分离: void Someclass :: Somefunction() { // ... std :: thread t([] { p ..
发布时间:2016-10-13 09:48:02 C/C++开发

我应该使用shared_ptr或unique_ptr

我一直在使用pimpl成语做一些对象,但我不确定是否使用 std :: shared_ptr 或 std :: unique_ptr 。 我明白 std :: unique_ptr 更高效,但这不是一个问题我,因为这些对象是相对重量无论如何,因此 std :: shared_ptr over std :: unique_ptr 的成本是相对 我目前使用 std :: shared_pt ..
发布时间:2016-10-13 09:47:58 C/C++开发

在编译时使用Constexpr填充数组

我想使用constexpr填充一个枚举数组。 数组的内容遵循某种模式。 我有一个枚举将ASCII字符集分为四个类别。 枚举类型{ 字母, 数字, 符号, 其他, } constexpr类型表[128] = / * blah blah * /; 我想有一个数组128 Type 。他们可以在一个结构。 数组的索引将对应于ASCII字符,并且值将是每个字符的 ..
发布时间:2016-10-13 09:47:29 C/C++开发

何时使用std :: begin和std :: end而不是容器特定的版本

是否有任何一般偏好或规则解释应该使用容器特定版本的begin和end而不是自由函数 std :: begin 和 std :: end ? 这是我的理解,如果函数是一个模板,容器类型是一个模板参数,应使用c $ c> std :: begin 和 std :: end ,即: 模板 void do_stuff(const T& t) { std :: for_e ..
发布时间:2016-10-13 09:46:27 C/C++开发

在Qt,QtCreator和QMake中配置GCC编译器切换

我最近尝试使用 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编译器选项启用 。 ..
发布时间:2016-10-11 23:35:38 C/C++开发

关于Hinnant的堆栈分配器的问题

我一直在使用Howard Hinnant的堆栈分配器,它的工作方式类似于charm,但实现的一些细节 为什么全局运算符 new 和 delete used? allocate()和 deallocate()成员函数使用 :: operator new 和 :: operator delete 。类似地,成员函数 construct()使用全局布局new。为什么不允许任何用户定义的全局或类特定 ..

线程池在C ++ 11

相关问题: 关于C ++ 11: C ++ 11:std :: thread pooled? 将异步(启动:: 关于Boost: / p> C ++提升线程重用线程 boost :: thread并创建它们的池! 如何获得线程池以向发送任务,而无需一遍又一遍地创建和删除它们? 我的代码如下所示: namespace { std :: vector ..
发布时间:2016-10-11 23:30:31 C/C++开发

在C ++ 11中编写通用memoization函数

寻找一种方法来实现一个通用的通用memoization函数,它将采用一个函数并返回相同的记忆版本? 寻找类似@memo来自Norving的网站)在python中的装饰器。 def memo(f): table = {} def fmemo(* args): 如果参数不在表中: table [args] = f(* args) return table [args] fm ..
发布时间:2016-10-11 23:30:11 C/C++开发

如何检查std ::线程是否仍在运行?

如何检查std ::线程是否仍在运行(以平台无关的方式)? 它缺少一个timed_join()方法和joinable()不是为了。 我想在一个std :: lock_guard锁定一个mutex线程和使用互斥体的try_lock()方法来确定它是否仍然被锁定(线程正在运行),但对我来说似乎不必要的复杂。 知道更优雅的方法吗? 更新:要清楚:我想检查线程是否干净地退出。 解 ..
发布时间:2016-10-11 23:30:08 C/C++开发