小编rsj*_*ffe的帖子

使用裸指针而不是weak_ptr 有什么好处吗?

问题:是否有任何令人信服的理由将裸指针用于非拥有资源,或者我们应该使用weak_ptr

CPP.参考状态

std::weak_ptr 模型临时所有权:当对象只有存在时才需要访问,并且可以随时被其他人删除

但是,在接受的答案中,我何时使用哪种指针?我们有以下声明:

对资源的非拥有引用使用哑指针(原始指针)或引用,并且当您知道资源将超过引用对象/范围时。当您需要可空性或可重置性时,更喜欢引用并使用原始指针.... ashared_ptr并使用 a weak_ptr

这个答案后面有很多关于使用裸指针的反复讨论,没有真正的解决方案。我看不出使用哑指针的任何理由。我错过了什么吗?

c++ pointers smart-pointers c++11

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

解除引用空指针时是否保证segfault(C/C++)

在下面的C/C++代码中

int * a = malloc(N * sizeof(int)); // suppose return value is NULL
a[2] = 1;
Run Code Online (Sandbox Code Playgroud)

在malloc返回的情况下NULL,我是否保证会发生段错误或行为不可预测?

c c++ null

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

SP_RENAME 不起作用

我有一个名为患者的表,它包含一个名为IdP的列。

我正在尝试使用以下代码将IdP重命名为ID

EXECUTE sp_RENAME 'patient.IdP' , 'ID', 'COLUMN'
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但不会工作

错误

mysql sql

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

是std :: weak_ptr <T> ::锁线程安全吗?

下面是一些显示我的用例的示例代码.我有一个PIMPL,可以共享实现(它只是一堆昂贵的数据),但实现可以在不再需要时销毁.类的一个实例HasImpl使用一个共享指针Impl,类定义包括一个static weak_ptrto Impl作为新指针的"指针分配器" HasImpl,给它们一个句柄来处理Impl已经存在的句子.

该示例有两个用于调用的替代方案 - weak_ptr::lock假设下面问题1-​​3的答案都是"是",而另一个则没有.我喜欢的唯一原因weak_ptr::lock是线程安全的,有可能是多个线程试图让指针的副本Impl,如果lock是线程安全的,执行的大多数线程不会有通过一个静态变量的定义(线程必须检查它是否已经初始化)并且不必竞争获取互斥锁.

/* In HasImpl.h */
class HasImpl {
public:
  HasImpl();
private:
  class Impl;
  static std::weak_ptr<Impl> sharedImplDispenser;
  std::shared_ptr<Impl> myPtrToSharedImpl;
}

/* In HasImpl.cpp */
class HasImpl::Impl {
public:
  Impl(); //constructor that takes a lot of time to run
  //Lots of stuff, expensively produced, accessable to HasImpl through a shared_ptr to Impl
}

/* hypothetical constructor if weak_ptr::lock is …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading weak-ptr c++20

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

正则表达式年龄验证 17-120

我需要制作一个正则表达式来验证 17-120 之间的年龄,包括(17 和 120)

我试过这个

^(100|[1-9][7-9][0-9]?)$

我知道这不好,但我不明白该怎么做

我需要在我的表单中使用模式属性提交年龄

只有数字允许

html regex

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

标签 统计

c++ ×3

c ×1

c++11 ×1

c++20 ×1

html ×1

multithreading ×1

mysql ×1

null ×1

pointers ×1

regex ×1

smart-pointers ×1

sql ×1

weak-ptr ×1