![]() |
1
4
使用VC10,您链接到的解决方案不起作用-的实例的构造
我只想做一个
... 或者使用自定义
|
|
2
4
对于最初的问题,std::make_shared<…>()没有直接实例化类,因此提供对它的友元访问不会产生任何好处,正如您所发现的那样。您只需提供对直接使用受保护构造函数的代码的友好访问,如下所示:
这适用于VS2010中的Microsoft编译器,但看起来它可能是特定于环境的,因为它不适用于Linux上的gcc。对于gcc,std::tr1命名空间不存在,因此它必须特定于std库的Microsoft实现。 我的正常工作环境是英特尔12.1编译器,它似乎有一个根本不检查访问权限的bug,并且很高兴在没有任何友元声明的情况下构建代码。 |
![]() |
KiraHoneybee · 具有构造函数参数的模板化类 3 年前 |
![]() |
nick2225 · 隐式调用复制构造函数? 3 年前 |
![]() |
nohaga · 为什么在本例中p3需要默认构造函数? 3 年前 |
![]() |
Aadil Hoda · 为什么类类型的成员需要初始化? 3 年前 |
![]() |
EloiGG · 具有任意类型的变量的可数的C++函数 3 年前 |