草庐IT

get_SupportedMediaTypes

全部标签

c++ - 线程安全的get(访问器方法)

我目前正在使用以下代码对变量进行线程安全访问。intgnVariable;voidgetVariableValue(int*pnValue){acquireLock();//Acquirestheprotectionmechanism*pnValue=gnVariable;releaseLock();//Releasingtheprotectionmechanism}我想将我的API签名更改为对用户更友好的intgetVariableValue(void);我应该如何重写函数-这样API的用户就不必担心锁定/解锁细节? 最佳答案 由

c++ - auto_ptr、immediate get() 和 release()——有用吗?

我正在处理别人的代码,其中包含很多这样的语句std::auto_ptrsmartptr(newObjectA(this));objects_list.push_back(smartptr.get());smartptr.release();这个有用吗?在这里使用智能指针而不是仅仅写有什么实际原因吗?objects_list.push_back(newObjectA(this)); 最佳答案 objects_list.push_back(newObjectA(this));这可能会泄漏内存。让我们看看当我们分解它时会发生什么:newO

c++ - 如何为我的类生成一个 std::get 类函数?

比如我有一个类structA{inta;boolb;};我想生成一个模板函数来获取它的元素(比如std::get来获取元组元素)templateautoGet(T&t);templateint&Get(A&a){returna.a;}templatebool&Get(A&a){returna.b;}intmain(){Aa;Get(a)=10;Get(a)=true;return0;}上面的代码不起作用。挑战在于我不知道任意类的Get返回类型。有什么办法可以实现吗?谢谢。 最佳答案 假设您不介意以“手动方式”进行此操作,您可以非常简

c++ - std::future.get() 有时卡在 os x 中

我有两个线程,一个线程应该接收和处理来自另一个线程的请求。第二种是同步传输请求和接收响应。我尝试了以下方案:成对队列(值(value),promise)。第一个线程创建一个promise并将其插入同步队列并等待future.get()的返回值问题是有时线程卡在future.get()上,但是当我暂停程序执行并继续时它再次正常工作。这个stucks具有随机​​性。FutureQueue.h#ifndefFutureQueue_h#defineFutureQueue_h#include#include#include#include#includetemplateclassWork{pub

c++ - 提升.Python : Getting a python weak reference to a wrapped C++ object

我已经使用Boost.Python包装了一个C++类。这些对象在C++端具有强引用(boost::shared_ptr),并且在Python中也可能存在断断续续的强引用。到目前为止,一切正常。但是,如果我从其中一个强引用创建一个python弱引用,那么一旦最后一个python强引用消失,这个弱引用就会被删除。我希望弱引用一直存在,直到C++端的最后一个强引用也消失为止。有可能实现吗?换句话说:有没有办法从python中找出特定的C++对象(由Boost.Python包装)是否仍然存在? 最佳答案 您如何持有对包装类的“C++强引用”

c++ - 对 C++ 中的 std::get_money 和 std::put_money 的混淆

我对C++函数感到困惑std::get_money在中定义头文件。get_money有什么用根据编程概念?我有以下代码使用std::get_money.#include//std::cin,std::cout#include//std::get_moneyintmain(){longdoubleprice;std::cout>std::get_money(price);if(std::cin.fail())std::cout当我输入100.25时,它返回100。输出和货币格式之间有什么关系?我读了this引用但无法理解关系。std::put_money也存在同样的混淆。,std::ge

c++ - 使用派生自 `std::get` 的元素在 `std::tuple` 上调用 `std::tuple` - 格式错误?

structY{};structX:std::tuple{};intmain(){std::get(std::make_tuple(X{}));}onwandbox当使用libc++时,上面的代码可以通过clang++编译并按预期工作。当使用libstdc++时,上述代码无法同时使用clang++和g++进行编译,并出现以下错误:include/c++/7.0.1/tuple:1302:36:error:nomatchingfunctionforcallto‘__get_helper(std::tuple&)’{returnstd::__get_helper(__t);}~~~~~~~

c++ - 为什么这个 get_index 实现在 VS2017 上失败了?

巴里给了我们thisgorgeousget_indexforvariants:templatestructtag{};templatestructget_index;templatestructget_index>:std::integral_constant...>(tag()).index()>{};按如下方式使用:usingV=variant;constexprconstsize_tN=get_index::value;//1它在Clang(OSX)中运行良好。但在VisualStudio2017中I'mgetting以下内容:(10):errorC2039:'index':is

php:file_get_contents不起作用

我有此代码://Aif(condition1){//Bif(condition2){//C}}和file_get_contents($url)。我希望此file_get_contents在“//c”中运行,但是我注意到了这一点:在适当的作品中,但是如果放入“//b”或“//c”,则相同的指令,不起作用,并且“不起作用,”条件1“和“条件2”都经过验证(将其他仪器放入b或c时,它们起作用)。我还尝试了此尝试/捕获声明,但没有成功:try{$content=file_get_contents($url);if($content===false){//THISisalwaysverified}}ca

c++ - STL 容器 move 语义并按值返回 : how many times of copying get avoided away?

我知道在C++11中,move语义已经在STL容器中实现以避免临时对象。人们说现在编写按值返回的函数是完美的。但我对究竟有多少次复制实际上被避免感到困惑。请看下面的例子:vectormyVector(){vectorres;res.push_back(4);res.push_back(5);returnres;}vectorv=myVector();我的理解是在c++03中,myVector返回res的拷贝(4,5复制了一次),在评估vectorv=myVector();时vector的复制构造函数vector(constvector&)被调用(4,5复制了两次)。但是在具有move语