小编Joh*_*ock的帖子

什么是IP地址和端口号的组合?

我有一个结合IP地址和端口号的结构.什么是这样的事情的正确名称?

ip port networking naming

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

返回null shared_ptr是否正确?

例如,有一个函数可以找到一个对象,如果找到了对象则返回shared_ptr,并且必须以某种方式指示没有找到对象.

std::vector<std::shared_ptr> Storage::objects;

std::shared_ptr<Object> Storage::findObject()
{
  if (objects.find)
  {
    return objects[x];
  }
  else
  {
    return nullptr;
  }
}

std::shared_ptr<Object> obj = Storage::findObject();
if (obj)
{
  print("found");
}
else
{
  print("not found");
}
Run Code Online (Sandbox Code Playgroud)
  1. 返回使用nullptr隐式初始化的shared_ptr是否正确?它会起作用,但可以这样做吗?或者我应该返回shared_ptr默认构造而不是?

  2. 怎么会是weak_ptr?检查空weak_ptr已被返回的正确方法是什么?by weak_ptr :: expired函数还是有其他方法吗?如果通过weak_ptr :: expired检查是唯一的方法那么我如何区分该函数返回空指针,或者对象刚被删除(多线程环境)?

c++ smart-pointers shared-ptr weak-ptr

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

std :: optional和polymorphism

我在许多帖子中读过Stack Overflow,当使用指针(用于参数或返回值)并且nullptr允许(使其成为可选)时,通常最好使用std::optional.

但是,如果指针指的是多态类型怎么办?最好使用std::optional还是指针?

c++ optional

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

标签 统计

c++ ×2

ip ×1

naming ×1

networking ×1

optional ×1

port ×1

shared-ptr ×1

smart-pointers ×1

weak-ptr ×1