相关疑难解决方法(0)

编译时-pthread和-lpthread之间的差异

是什么区别gcc -pthreadgcc -lpthread它在编译多线程程序中使用?

multithreading gcc pthreads thread-safety compiler-flags

99
推荐指数
3
解决办法
5万
查看次数

是否存在std :: shared_ptr的非原子等价物?为什么<memory>中没有一个?

这是一个两部分问题,所有关于原子性std::shared_ptr:

1. 据我所知,std::shared_ptr是唯一的智能指针<memory>这就是原子.我想知道是否有非原子版本std::shared_ptr可用(我看不到任何内容<memory>,所以我也接受标准之外的建议,比如Boost中的建议).我知道boost::shared_ptr也是原子的(如果BOOST_SP_DISABLE_THREADS没有定义),但也许有另一种选择?我正在寻找具有相同语义std::shared_ptr但没有原子性的东西.

2.我明白为什么std::shared_ptr是原子的; 这有点好.然而,对于每种情况来说都不是很好,而且C++历来有"只为你使用的东西买单"的口号.如果我没有使用多个线程,或者我使用多个线程但是没有跨线程共享指针所有权,则原子智能指针是过度的.我的第二个问题是为什么不是std::shared_ptrC++ 11 中提供的非原子版本?(假设有一个原因)(如果答案是简单的"非原子版本根本不会考虑"或"从来没有人问非原子版"这很好!).

对于问题#2,我想知道是否有人提出过非原子版shared_ptr(无论是对Boost还是标准委员会)(不是替换原子版本shared_ptr,而是与它共存)并且它被击落了具体原因.

c++ smart-pointers c++11

82
推荐指数
5
解决办法
7576
查看次数

弱连接的实际应用是什么?

使用特殊编译器命令可以将符号声明为.根据维基百科:

弱符号是目标文件或动态库中的符号定义,可以被其他符号定义覆盖

在什么场景或什么应用程序你需要弱符号?什么是典型用例?

c c++ linker

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