问题标签 [make-shared]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 单例 - 实施。使用静态类成员与静态成员变量
给大家带来两种不同的单例设计模式植入:
静态类成员
静态成员变量
我总是使用第一个 impl。SingletonCSM
. 在我们的代码中,我遇到了一个 impl。像SingletonFSV
问题
- 我们可以同时考虑这两个 impl。作为一个有效的暗示。的设计模式?
- 两者在功能上是否相同?
动机
背景
类SingletonFSV
是作为 DLL 项目的一部分实现的。这个 DLL 编译在 中VS 2013
,通过 exe 文件加载到内存中并运行。
问题
我已经升级VS
到VS 2015
,编译了 DLL 项目并运行了 exe。突然,它崩溃了。在调试时,我注意到崩溃发生在 DLL 本身中。make_shared
调用withingGetInstance()
返回nullptr
,自然会造成segmentation fault。
解决方案
我已经改变了SingletonFSV
impl。到SingletonCSM
并且坠机停止了。make_shared
返回了一个有效的指针,问题就解决了。
问题
我只是不明白问题是什么,为什么解决了?
c++ - make_shared 如何为管理器对象和托管对象分配单个动态内存
make_shared 将动态分配单个内存,从而提高性能。但是它如何为托管对象和控制块使用 new 进行单个内存分配。我想知道内存分配实际上是如何在内部发生的。
c++ - Compiler complains make_shared() expects l-value
I have a simple class. One of its constructors takes two int
values as arguments:
simple_class.h
test.t.cpp
Running on a macbook. Here is my compile statement:
gcc -o test -I. test.t.cpp -lstdc++
But it produces this error:
So my question is, why doesn't this usage of make_shared()
work?
Notice that the version with the l-values passed does compile:
Can anyone explain why this is?
My constructor declares the arguments as const
(although that should not be necessary). And the examples given here pass constants to make_shared()
.
c++ - 什么是未知大小的 make_shared?
在这个答案 TC 状态
boost::make_shared
等支持数组类型-未知大小之一或固定大小之一
首先,make_shared 如何支持未知大小的数组类型?我认为数组大小是必需的。
二、sh_arr2和sh_arr3有什么区别?两者似乎都在创建一个大小为 30 的 int 数组。
c++ - C++新手:make_shared的操作
我是 C++ 新手。有人可以让我知道以下代码段有什么问题 -
我的意图是创建一个 Person 对象的数据库,我试图为此使用 shared_ptr 。
v->dump() 导致分段错误。但是,如果我使用 'namestr' 变量而不是字符串文字“Dull”,那么 v->dump() 似乎可以正常工作,即以下 -
此外,即使我在初始化程序中使用字符串文字,以下方式似乎也有效。
指出我所犯的错误将不胜感激!
c++ - 在没有模板参数的情况下提升 make_shared
我正在尝试将指向堆栈变量的指针传递给仅需要boost::shared_ptr
.
根据这个答案,使用boost::make_shared
是要走的路。为了测试这个功能,我写了这个:
但它会引发以下错误:
如果我像这样添加模板参数,它可以工作,但这是什么原因?
谢谢!
c++ - 为什么在使用静态 constexpr 成员构造时 std::make_shared 与 new 不同?
调用 foo() 时会出现以下错误:
当我使用 new 初始化 shared_ptr 时,没关系。但是当我使用 make_shared 时,会出现链接错误。
为什么在使用静态 constexpr 成员构造时 std::make_shared 与 new 不同?
我的环境是带有 Clion 的 macOS,CMakeList.txt 是:
c++ - 如何将 protobuf 的 boost::shared_ptr 指针传递给函数?
我必须通过一个boost::shared_ptr
:
这是 protobuf 的指针,指向 protobuf 的函数oPerson.set_allocated_profile(pProfile)
,但oPerson.set_allocated()
需要一个指向Protobuf::Person::Profile
.
我尝试了几种方法,但我认为当我尝试将 protobuf 对象转换为 JSON 时,使用pbjson::pb2Json
的是基于快速 json 构建的库函数,指针超出范围导致分段错误。
方法一:
方法二:
c++11 - 使用 std::make_shared 分配 std::weak_ptr
我在使用时偶然发现了这种行为std::weak_ptr
,std::make_shared
我发现它有点奇怪。我正在使用 C++11。
第一个std::cout
打印正常,第二个给我一个段错误。我尝试查看cppreferencestd::weak_ptr
的页面和std::shared_ptr
页面,但我仍然不明白为什么会发生这种情况。必须创建一个临时对象对我来说很麻烦,这是在 C++14 中已经解决的问题还是我没有看到的东西?
谢谢!