小编use*_*747的帖子

Lambda表达式

从ISO草案n3290第5.1.2节第19点开始:

与lambda表达式关联的闭包类型具有已删除(8.4.3)的默认构造函数和已删除的复制赋值运算符.它有一个隐式声明的复制构造函数(12.8),并且可能有一个隐式声明的移动构造函数(12.8).[注意:复制/移动构造函数的隐式定义方式与隐式定义任何其他隐式声明的复制/移动构造函数的方式相同. - 尾注]

可以请任何人......告诉一些这方面的例子可以理解吗?

有没有机会/方法来检查Closure对象(类型)?

c++ lambda c++11

17
推荐指数
1
解决办法
2464
查看次数

3.4.2来自n3290草案的依赖于参数的名称查找

ISO草案n3290第3.4.2节第1段中的一点:

当函数调用中的postfix-expression是非限定id时,可以搜索在通常的非限定查找期间未考虑的其他命名空间,并且在这些命名空间中,可以找到不可见的命名空间范围的朋友函数声明.对搜索的这些修改取决于参数的类型(以及模板模板参数,模板参数的命名空间).

在这里他们说"对搜索的这些修改取决于模板参数的参数/模板模板参数/命名空间的类型"......任何一个人都可以用一个例子来表达吗?我尝试使用arguments模式类型.请使用模板模板参数类型和模板参数类型的命名空间进行expalin

c++ name-lookup argument-dependent-lookup c++11

9
推荐指数
1
解决办法
370
查看次数

ISO C++标准草案

在ISO标准C++中:最新的工作草案是n3291,它不是公开的.但是n3290可用.到2月份草案是n3242.我现在可以知道......哪个草案更适合成为最终草案?因为n3242与之相比有很多差异n3290

在这个链接中他们也给了..:当前的工作草案为n3242?(为什么不n3290)

http://www.open-std.org/jtc1/sc22/wg21/

http://en.wikipedia.org/wiki/C%2B%2B0x

请告诉我哪个草案是正确的(直到最终草稿发布)?

c++ standards c++11

9
推荐指数
1
解决办法
5348
查看次数

除了使用'extern'关键字:n3290草案之外,还有其他可能证明这一点吗?

ISO草案N3290:不合格名称查询:第3.4.1节,第14段:

如果命名空间的变量成员在其命名空间的范围之外定义,则会查找成员定义中出现的任何名称(在declarator-id之后),就好像成员的定义出现在其名称空间中一样.

例如:

namespace N {
   int i = 4;
   extern int j;
}
int i = 2;
int N::j = i;       // N::j == 4
Run Code Online (Sandbox Code Playgroud)

除了使用'extern'关键字之外,还有其他可能证明这一点吗?

你可以提供一些其他的例子......除了extern

c++ scope namespaces c++11

8
推荐指数
1
解决办法
135
查看次数

析构函数是否应该用指针声明OR?在C++中

在C++ 0x -n3290草案中:他们在章节中添加了:Destructors:12.4/2nd point last line

          **A destructor shall not be declared with a ref-qualifier.**
Run Code Online (Sandbox Code Playgroud)

在c ++ 03 Draft ....他们没有在析构函数中提到这一点?

我的问题是,是否

   *~S() ;   //this declaration is allowed or not according to the Standard's
   //**~S(); ***~S() ; etc...........
Run Code Online (Sandbox Code Playgroud)

允许这种类型的声明?他没有在草案中描述过这个......宣言?

在GCC 4.6.0中,Sun/Oracle C++ 12.0,--->这个声明允许使用Comeau C/C++ - >不允许

c++ destructor declaration c++11

8
推荐指数
2
解决办法
237
查看次数

namelookup with Unqualified name:C++ 0x draft n3290

ISO C++草案n3290:3.4.0第二点

在"表达式的上下文中查找"的名称在查找表达式的范围内被查找为非限定名称.

有人请用一个例子解释这个陈述吗?

c++ name-lookup c++11

5
推荐指数
1
解决办法
219
查看次数

ISO C++ draft - 3.4.2/3 - 参数依赖名称查找

ISO C++草案(n3290)中的一点:

3.4.2/3参数依赖名称查找:

X是由unquali音响ED查找(3.4.1)中产生的查找组并且让Y是由参数依赖查找产生的查找集(德音响定义如下).如果X包含

  • 宣布集体成员(#1)或
  • 块范围函数声明,它不是using声明(#2)或
  • 声明既不是函数模板也不是函数模板(#3)

然后Y是空的.否则Y是在与参数类型相关联的名称空间中找到的声明集,如下所述.通过查找名称找到的声明集是X和的并集Y.

是否有示例代码片段演示了涉及#1,#2和#3的ADL?

c++ name-lookup c++11

5
推荐指数
1
解决办法
226
查看次数

ISO C++草案(n3290)中的一点:3.4.3.2/1命名空间成员

ISO C++草案(n3290)中的一点:3.4.3.2/1命名空间成员

如果qualified-id的nested-name-specifier指定了名称空间,则在名称空间的范围内查找在嵌套名称说明符之后指定的名称.如果qualified-id以::开头,则在全局命名空间中查找::之后的名称.在任何一种情况下,都会在发生整个后缀表达式的上下文中查找template-id的template-argument中的名称.

这里可以解释一下BOLD部分......以及从早期的c ++ 03草案到c ++ 0x草案他补充道

如果qualified-id以::开头,则在全局命名空间中查找::之后的名称.

任何人都可以用示例程序解释一下

c++ namespaces c++11

4
推荐指数
2
解决办法
159
查看次数

C&C++中main的区别是什么

mainC程序和C++程序有什么区别?

以外

  1. return语句(C中默认为1,C++中为0)
  2. 句法:

    int main() { /* … */ }
    int main(int argc, char* argv[]) { /* … */ }
    int main() ,  void main() ,etc ...     
    
    Run Code Online (Sandbox Code Playgroud)

主要是:

  1. C程序和C++程序中的main之间的区别

  2. 根据ISO标准,C++ 98,C++ 03和C++ 0x之间是否有任何差异?即程序的入口点(程序启动实现)等.

c c++ c++11

3
推荐指数
2
解决办法
1894
查看次数

N3290 C++草案中的临时生命

N3290 C++草案,第12.2节,第5点,第10行.

第二个上下文是引用绑定到临时的.绑定引用的临时对象或绑定引用的子对象的完整对象的临时对象在引用的生命周期内持续存在,除了:

在new-initializer(5.3.4)中对引用的临时绑定将持续到包含new-initializer的full-expression完成为止.[例如:

struct S { int mi; const std::pair<int,int>& mp; };
S a { 1, {2,3} };
S* p = new S{ 1, {2,3} };// Creates dangling reference
Run Code Online (Sandbox Code Playgroud)

- 结束示例] [注意:这可能会引入悬空引用,并鼓励实现在这种情况下发出警告. - 结束说明]

与C++ 03相比,这是一个补充点.但这个例子对我来说是不可理解的.你能用其他任何例子来解释这一点吗?

我知道悬空引用和临时对象是什么,并且std::pair包含两个可能不同数据类型的值.

c++ language-lawyer temporary-objects c++11 dangling-pointer

3
推荐指数
1
解决办法
253
查看次数

MacOSX有免费的C++编译器吗?

是否有任何免费的C++编译器可以在Mac OS(苹果机器)中安装

请..给我链接下载和程序到INSTALL.Since我是mac OS的新用途

c++ compiler-construction macos c++11

2
推荐指数
1
解决办法
5万
查看次数

我可以知道哪些C++编译器(在线/免费)支持c ++ 0x中的"继承构造函数"功能

我可以知道哪些C++编译器(在线/免费)支持c ++ 0x中的" 继承构造函数 "功能

N3290草案:第12.9节:继承构造函数

我尝试使用VS10,GCC 4.6.0 ..但我认为它不支持..(请确认.)

请告诉我哪些在线编译器或免费编译器支持..此功能

http://wiki.apache.org/stdcxx/C++0xCompilerSupport

http://blogs.msdn.com/b/vcblog/archive/2010/04/06/c-0x-core-language-features-in-vc10-the-table.aspx

我gooogled ..但我没有得到..正确的信息..帮帮我?

c++ inheritance constructor c++11

2
推荐指数
1
解决办法
421
查看次数

C++中依赖于参数的名称查找:指向n3290草案

ISO C++ DRAFT n3290:依赖于参数的名称查找:第3.4.2节,第2段,

对于函数调用中的每个参数类型T,存在一组零个或多个关联的命名空间以及要考虑的一组零个或多个关联的类.命名空间和类的集合完全由函数参数的类型(以及任何模板模板参数的名称空间)决定.用于指定类型的typedef names和using-declaration对这个集合没有贡献.命名空间和类的集合按以下方式确定:

- 如果T是基本类型,则其关联的命名空间和类集都是空的.

- 如果T是类类型(包括联合),则其关联的类是:类本身; 它所属的成员,如果有的话; 及其直接和间接基类.其关联的名称空间是其关联类是成员的名称空间.

此外,如果T是类模板特化,则其关联的名称空间和类还包括:与模板类型参数(模板模板参数除外)提供的模板参数类型相关联的名称空间和类; 任何模板模板参数都是成员的名称空间; 以及用作模板模板参数的任何成员模板的类都是
成员.

[ 注意:非类型模板参数不会影响关联命名空间的集合. - 结束说明]

任何人都可以通过一个例子来表达这个......请

在上面的语句中"命名空间和类的集合都是空的"..这有可能吗?

在第二点,他说更多......请任何人解释一下吗?

c++ namespaces name-lookup c++11

1
推荐指数
1
解决办法
303
查看次数