草庐IT

shared_lib

全部标签

c++ - 链接器:无法打开文件 'nafxcwd.lib'

我在通过VisualStudio2013编译我的项目时遇到问题。我收到此链接器错误:LINK:fatalerrorLNK1104:cannotopenfile'nafxcwd.lib'据此page,我必须在共享库中使用MFC。但是我根本不用MFC。我使用UseStandardWindowsLibraries设置编译的所有库和主项目。仅当我尝试通过VisualStudio2013工具链构建项目时才会出现此问题,但它使用VisualStudio2010工具链成功构建。附:项目已从VisualStudio6.0移至VisualStudio2013。 最佳答案

c++ - 用于无锁单链表的原子 shared_ptr

我想知道是否可以为任何“常见”架构(如x64或ARMv7/ARMv8)创建无锁、线程安全的共享指针。关于lock-freeprogrammingatcppcon2014的谈话,HerbSutter提出了无锁单链表的(部分)实现。实现看起来很简单,但它依赖于原子shared_ptr标准库中尚不存在或使用专用std::atomic...的实现功能。这一点尤其重要,因为单个push/pop调用可能会调用多个原子加载/存储和compare_exchange操作。我看到的问题(而且我认为谈话中的一些问题朝着相同的方向发展)是,要使这成为一个真正的无锁数据结构,这些原子操作本身必须是无锁的。我不知

c++ - 用于无锁单链表的原子 shared_ptr

我想知道是否可以为任何“常见”架构(如x64或ARMv7/ARMv8)创建无锁、线程安全的共享指针。关于lock-freeprogrammingatcppcon2014的谈话,HerbSutter提出了无锁单链表的(部分)实现。实现看起来很简单,但它依赖于原子shared_ptr标准库中尚不存在或使用专用std::atomic...的实现功能。这一点尤其重要,因为单个push/pop调用可能会调用多个原子加载/存储和compare_exchange操作。我看到的问题(而且我认为谈话中的一些问题朝着相同的方向发展)是,要使这成为一个真正的无锁数据结构,这些原子操作本身必须是无锁的。我不知

c++ - 在 Visual Studio 中使用在 Linux/MinGW 中编译的 libs/dlls

更新:编译时收到此警告:发现多个具有不同属性的“.text”部分嗨,我使用MinGW交叉编译器在Linux中编译了一些库(.a和.dll)。我可以在VisualStudio2008中成功链接它们(.a)。但是,当它运行时(使用.dll),它会以指向空内存地址的地址指针终止。有没有一种方法/list可以让我在VC08中成功使用这些库?交叉编译器生成*.dll.a*.dll谢谢 最佳答案 找到了。http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs你必须有一个def文件并使用VC的lib工具生成一个

c++ - 在 Visual Studio 中使用在 Linux/MinGW 中编译的 libs/dlls

更新:编译时收到此警告:发现多个具有不同属性的“.text”部分嗨,我使用MinGW交叉编译器在Linux中编译了一些库(.a和.dll)。我可以在VisualStudio2008中成功链接它们(.a)。但是,当它运行时(使用.dll),它会以指向空内存地址的地址指针终止。有没有一种方法/list可以让我在VC08中成功使用这些库?交叉编译器生成*.dll.a*.dll谢谢 最佳答案 找到了。http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs你必须有一个def文件并使用VC的lib工具生成一个

c++ - 返回 shared_ptr<> 的成员函数的 const 正确性

如果我有课classfoo{private:std::shared_ptrm_data;public:std::shared_ptrGetData(){returnm_data;}}我相信std::shared_ptr应该转换为std::shared_ptr并共享同一个对象,但函数的const正确性是什么?IE这是有效的吗?std::shared_ptrGetData()const; 最佳答案 函数会修改对象的内部状态吗?没有。*函数是否允许其调用者(或其他外部环境)修改访问对象的内部状态?没有。这意味着将其标记为const是安全的

c++ - 返回 shared_ptr<> 的成员函数的 const 正确性

如果我有课classfoo{private:std::shared_ptrm_data;public:std::shared_ptrGetData(){returnm_data;}}我相信std::shared_ptr应该转换为std::shared_ptr并共享同一个对象,但函数的const正确性是什么?IE这是有效的吗?std::shared_ptrGetData()const; 最佳答案 函数会修改对象的内部状态吗?没有。*函数是否允许其调用者(或其他外部环境)修改访问对象的内部状态?没有。这意味着将其标记为const是安全的

c++ - 在 std::make_shared 中使用 c++ 聚合初始化

根据我的理解,以下代码构造了一个Foo类型的对象,然后将该对象移动到std::make_shared分配的内存中structFoo{std::strings;inti;charc;};intmain(intargc,char*argv[]){autofoo=std::make_shared(Foo{"hello",5,'c'});}有没有可能aggregateinitializeFoo直接放入std::make_shared分配的内存? 最佳答案 您可以使用可变参数构造函数模板创建一个适配器来转发参数,例如:templatestru

c++ - 在 std::make_shared 中使用 c++ 聚合初始化

根据我的理解,以下代码构造了一个Foo类型的对象,然后将该对象移动到std::make_shared分配的内存中structFoo{std::strings;inti;charc;};intmain(intargc,char*argv[]){autofoo=std::make_shared(Foo{"hello",5,'c'});}有没有可能aggregateinitializeFoo直接放入std::make_shared分配的内存? 最佳答案 您可以使用可变参数构造函数模板创建一个适配器来转发参数,例如:templatestru

c++ - std::shared_timed_mutex 上的共享锁可以升级为独占锁吗?

新的std::shared_timed_mutex允许两种类型的锁:共享锁和排他锁。如果一个人持有共享锁,有没有办法将它原子交换(“升级”)为独占锁?换句话说,给定以下代码,我怎样才能避免非原子丢弃和重新锁定?std::shared_timed_mutexm;//Guardsastd::vector.m.lock_shared();//Readfromvector.(Sharedlockissufficient.)//...//Nowwewanttowritetothevector.Weneedanexclusivelock.m.unlock_shared();//理想情况下,m.un