c++11相关内容

模板typedef?

我使用libgc,C和C ++的垃圾收集器。 为了使STL容器垃圾回收,必须使用gc_allocator。 而不是写 std :: vector 必须写 std :: vector > 有一种方法可以定义 模板 typedef ..
发布时间:2016-10-13 11:04:14 C/C++开发

可变模板的GCC错误:“抱歉,未实现:不能将'标识符'扩展成固定长度的参数列表”

在GCC上使用C ++ 11进行可变模板编程时,偶尔会出现一个错误,“对不起,未实现:无法将'Identifier ...'扩展成一个固定长度的列表。如果我删除代码中的“...”,然后我得到一个不同的错误:“错误:参数包不扩展与'...'”。 如果我有“...”,GCC调用一个错误,如果我把“...”出来,GCC调用一个错误。 我唯一能够处理这一点的方法是使用不同的方法从头完全重写模板 ..
发布时间:2016-10-13 11:03:58 C/C++开发

is std :: vector< T>一个'用户定义的类型'?

在当前草案的17.6.4.2.1 / 1和17.6.4.2.1 / 2中标准限制了用户在命名空间std 中注入的特殊化。 如果C ++ 程序在命名空间中添加了声明或定义,那么它的行为是未定义的 std 或 命名空间中的命名空间 std ,除非另有规定。程序可以将任何标准库模板的模板专用化 添加到命名空间 std 中,只要声明依赖于用户定义的类型 ,专业化满足原始模板的标 ..
发布时间:2016-10-13 11:03:52 C/C++开发

std :: function的只移动版本

因为 std :: function 是可复制的,所以标准要求用于构造std :: function的可调用也是可复制的: n337(20.8.11.2.1) template函数(F f); 需要: F 应为CopyConstructible。对于参数类型 ArgTypes 和返回类型 , f 应为可调用(20.8.11.2) / code>。 A的复制构造 ..
发布时间:2016-10-13 11:02:24 C/C++开发

C ++ 11随机数发生器的线程安全性

在C ++ 11中有一堆新的随机数生成器引擎和分布函数。他们线程安全吗?如果你在多个线程之间共享一个随机分布和引擎,它是安全的,你还会收到随机数吗?我正在寻找的情况是,像 void foo(){ std :: mt19937_64 engine(static_cast(system_clock :: to_time_t(system_clock :: now())) ..
发布时间:2016-10-13 11:02:13 C/C++开发

C ++中使用的“override”关键字是什么?

我是C ++的初学者。我遇到了 override 关键字在我正在工作的头文件中使用。我可以知道, override 的实际使用是什么,或许有一个例子很容易理解。 解决方案 override 关键字用于两个目的: 它向代码的读者显示“这是一个虚方法,即覆盖了基类的一个虚方法”。 编译器也知道它是一个覆盖可以“检查”您不改变/添加您认为被覆盖的新方法。 要解释后者: cl ..
发布时间:2016-10-13 11:01:45 C/C++开发

C ++统一分配操作符移动语义

编辑:解决了查看评论 - 不知道如何标记为解决了一个答案。 在c ++ 0x中的完美转发/移动语义是一个什么导致相信这是一个写一个新的赋值运算符的好方法。 #include #include #include struct my_type { my_type(std :: string name_) : ..
发布时间:2016-10-13 11:00:59 C/C++开发

什么时候需要使用使用标志-stdlib = libstdc ++?

在使用gcc编译时,何时需要使用标志 -stdlib = libstdc ++ 用于编译器和链接器? 编译器是否自动使用libstdc ++? 我在Ubuntu 13.10上使用gcc4.8.2,我想使用c ++ 11标准。我已经通过 -std = c ++ 11 到编译器。 解决方案 在Linux :一般来说,所有常见的linux发行版都会默认使用libstdc ++。如果你 ..
发布时间:2016-10-13 10:59:12 C/C++开发

C ++ 11 STL容器和线程安全

我无法找到关于此的任何最新信息。 Do C ++ 11版本的STL容器有一定程度的线程安全性? / p> 我预期他们不会,由于性能原因。但是,再次,这就是为什么我们有 vector :: operator [] 和 vector :: at 。 解决方案 由于现有的答案不覆盖它(只有一个注释),我只提到23.2.2 [container.requirements .datara ..
发布时间:2016-10-13 10:58:53 C/C++开发

#pragma是C ++ 11标准的一部分吗?

传统上,在C ++中避免多个头包含的标准和可移植方法是/是使用 #ifndef - #define - #endif 预编译指令称为宏观防护计划(请参阅下面的代码段)。 #ifndef MY_HEADER_HPP #define MY_HEADER_HPP ... #endif 然而,在大多数实现/编译器(见下图)中有一个更“优雅”的替代方案,其作用与宏指令方 ..
发布时间:2016-10-13 10:58:09 C/C++开发

std :: function<>和标准函数指针?

std :: function和标准函数指针之间的区别是什么? : typedef std :: function功能; typedef int(* fn)(int); 它们是否是同样的东西? 解决方案 函数指针是在C ++中定义的实际函数的地址。 std :: function 是一个包装器,可以容纳任何类型的可调用对象(看 ..
发布时间:2016-10-13 10:57:39 C/C++开发