草庐IT

long_ptr

全部标签

c++ - 错误 C2280 : attempting to reference a deleted function (unique_ptr)

我检查了一些使用原始指针的旧代码,并将它们更改为unique_ptr。现在,当我尝试编译代码时,收到此错误消息:Error1errorC2280:'std::unique_ptr>::unique_ptr(conststd::unique_ptr>&)':attemptingtoreferenceadeletedfunctiond:\visualstudio2013\vc\include\xmemory0关于这种情况的编译器输出很大——为了节省这个问题的空间,请参阅here.据我所知,这与我使用唯一指针的方式有关。它从这里开始(level.h,第65-66行):typedefstd::

c++ - 如何正确转发unique_ptr?

转发std::unique_ptr的正确方法通常是什么?以下代码使用了std::move,我认为这是经过深思熟虑的做法,但它因clang而崩溃。classC{intx;}unique_ptrtransform1(unique_ptrp){returntransform2(move(p),p->x);//transform2(unique_ptrp,intval){p->x*=val;returnp;}在通过std::move将所有权转移到下一个函数之前,是否有比简单地确保从p获得所需的一切更稳健的约定?在我看来,在对象上使用move并访问它以向同一函数调用提供参数可能是一个常见的错误。

kotlin - java.lang.Integer 在 Kotlin 中不能强制转换为 java.lang.Long(初始值为 null 时)

如果我有以下内容,它可以工作(即数字得到分配1000)funmain(args:Array){varnumber:Long?=null//ornumber=0valsimpleObject=SimpleClass()number=1000println("Hi+$number")}如果我有以下内容,它可以工作(即数字得到分配1000)importjava.util.*funmain(args:Array){varnumber:Long=0valsimpleObject=SimpleClass()number=simpleObject.getValue()println("Hi+$num

kotlin - java.lang.Integer 在 Kotlin 中不能强制转换为 java.lang.Long(初始值为 null 时)

如果我有以下内容,它可以工作(即数字得到分配1000)funmain(args:Array){varnumber:Long?=null//ornumber=0valsimpleObject=SimpleClass()number=1000println("Hi+$number")}如果我有以下内容,它可以工作(即数字得到分配1000)importjava.util.*funmain(args:Array){varnumber:Long=0valsimpleObject=SimpleClass()number=simpleObject.getValue()println("Hi+$num

c++ - 如何处理不断发展的 C++ std::namespace?例如:std::tr1::shared_ptr 对比 std::shared_ptr 对比 boost::shared_ptr 对比 boost::tr1::shared_ptr

对于我目前正在处理的代码,我们有时需要使用较旧的编译器在一些较旧的系统上进行编译(例如,我们在较旧的IBMBlueGene/L上运行sims,其支持契约(Contract)规定了一些非常旧的C++编译器)。代码本身使用了shared_ptr,最初是为使用std::tr1::shared_ptr而编写的。在旧的BlueGene机器上编译时,我很快意识到它没有tr1::实现,所以我切换到boost::shared_ptr。原来还有一个boost::tr1::shared_ptr。现在代码在我们的研究小组之外得到了更广泛的使用,可移植性变得更加重要。在大型代码库中处理这些不断演变的标准库问题

c++ - scoped_ptr 所有权

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:WhatisasmartpointerandwhenshouldIuseone?我正在阅读anarticle我找到了一个小例子来演示boost::scoped_ptr的使用:#include#include#include#includestaticintcount=0;classprinter{intm_id;public:printer(void):m_id(count++){}~printer(void){std::coutp1(newprinter);boost::scoped_ptrp2(newpri

c++ - long double 与 long int

我正在做一个计算彩票概率的程序。规范是47选5,27选1所以我做了以下事情:#includelongintchoose(unsignedn,unsignedk);longintfactorial(unsignedn);intmain(){usingnamespacestd;longintregularProb,megaProb;regularProb=choose(47,5);megaProb=choose(27,1);cout但是该程序不起作用。程序计算30秒,然后给我Process4exitedwithcode-1,073,741,676我必须将所有longint更改为longdo

c++ - 为什么需要一个空的 shared_ptr 以及如何使用它?

在ScottMeyers的EffectiveC++中,第18项使接口(interface)易于正确使用且难以错误使用,他提到了nullshared_ptr:std::tr1::shared_ptrpInv(static_cast(0),getRidOfInvestment)和时尚分配操作pInv=...//makeretValpointtothecorrectobject在哪种情况下可能需要创建一个空的shared_ptr并稍后进行赋值?为什么不只要有资源(原始指针)就创建shared_ptr?由于ScottMeyers没有在前面的示例中显示完整的赋值,我认为shared_ptr的赋值

c++ - 将字符串转换为 long long

我正在使用VS2008创建一个C++DLL(非托管)项目,我需要将char*转换为longlong类型。有简单的方法吗?提前致谢:) 最佳答案 最简单的方法是使用std::stringstream(它也是最安全的...)std::stringstreamsstr(mystr);__int64val;sstr>>val;您可能需要针对64位应用程序才能正常工作。C++FAQ 关于c++-将字符串转换为longlong,我们在StackOverflow上找到一个类似的问题:

c++ - C/C++ : is it faster to assign a 0 to an unsigned long variable or to xor the variable with itself?

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。我意识到差异可以忽略不计,但在尝试将unsignedlong清零时哪个更有效?unsignedlongx;...x=0;--OR--x^=x;泰勒