草庐IT

auto-suggest

全部标签

c++ - "most important const"与 auto_ptr : Why the code does not compile?

以下代码无法在VisualC++2008或2010上编译:#includestructA{};std::auto_ptrfoo(){returnstd::auto_ptr(newA);}conststd::auto_ptrbar(){returnstd::auto_ptr(newA);}intmain(){conststd::auto_ptr&a=foo();//mostimportantconstconststd::auto_ptr&b=bar();//errorC2558://class'std::auto_ptr'://nocopyconstructoravailableorco

c++ - 在输出参数中使用 auto

有没有办法在这种情况下使用auto关键字:voidfoo(bar&output){output=bar();}intmain(){//Imaginarycodeautoa;foo(a);}当然,不可能知道a是什么类型。因此,解决方案应该是以某种方式将它们合并到一个句子中。这个可以用吗? 最佳答案 看起来您想要默认初始化给定函数期望作为参数的类型的对象。你不能用auto做到这一点,但你可以写一个特征来提取函数期望的类型,然后用它来声明你的变量:namespacedetail{//expectstheargumentnumberanda

c++ - 未初始化 auto_ptr 时 get() 是否可靠?

考虑以下代码:std::auto_ptrp;if(p.get()==0){...}get()成员函数是否是检查p是否未初始化的标准且可靠的方法?无论平台、编译器、编译器的优化标志等如何,它总是返回0吗? 最佳答案 不存在未未初始化的std::auto_ptr,defaultconstructor将指针初始化为0:explicitauto_ptr(X*p=0);因此get()将在默认构造的std::auto_ptr上有效地返回“0”。 关于c++-未初始化auto_ptr时get()是否可

c++ - 为什么这个 auto_ptr 的 dynamic_cast 会失败?

#include"iostream"classA{private:inta;public:A():a(-1){}intgetA(){returna;}};classA;classB:publicA{private:intb;public:B():b(-1){}intgetB(){returnb;}};intmain(){std::auto_ptra=newA();std::auto_ptrb=dynamic_cast>(a);return0;}错误:不能dynamic_cast`(&a)->std::auto_ptr::get()const 最佳答案

c++ - 如何实现 std::auto_ptr 是复制构造函数?

回到我的疯狂AutoArraythingy...(从那里引用重要的部分:classAutoArray{void*buffer;public://CreatesanewemptyAutoArrayAutoArray();//std::auto_ptrcopysemanticsAutoArray(AutoArray&);//Noteitcan'tbeconstbecausethe"other"reference//isnull'doncopy...AutoArray&operator=(AutoArray);~AutoArray();//Nothrowswap//Note:Atthemom

c++ - 为什么 vector.push_back(auto_ptr) 无法编译?

我了解到STL可以禁止程序员将auto_ptr放入容器中。例如下面的代码不会编译:auto_ptra(newint(10));vector>v;v.push_back(a);auto_ptr有拷贝构造函数,为什么这段代码还能通过? 最佳答案 查看thedefinitionofstd::auto_ptr:namespacestd{templatestructauto_ptr_ref{};templateclassauto_ptr{public:typedefXelement_type;//20.4.5.1construct/copy/

c++ - vector<auto> 是不允许的吗? (错误 : invalid use of ‘auto’ )

我有:#include#includeusingnamespacestd;intmain(){autoa=-SOME_CONST_MAX;vectormyVec{a,a,a,a};}我不知道SOME_CONST_MAX的类型但我想制作一个-SOME_CONST_MAX类型的vector.我假设vector会起作用,因为它会从a的类型推导出来.我正在运行这些错误:g++-std=c++14main.cppmain.cpp:9:9:error:invaliduseof‘auto’vectormyVec{a,a,a,a};^main.cpp:9:13:error:templateargume

c++ - 为什么 auto 不允许作为函数参数?

来自thisquestion,显然auto不能用作函数参数。我的问题是为什么允许返回类型为auto但函数参数不是?autofunction(autodata){//DOESsomething}因为,thereauto在c++1z中有很多好处,那为什么不呢? 最佳答案 此语法是在ConceptsTS中提出的,但并未将其纳入C++17forvariousreasons.尽管我在下面概述了一些批评,但它已添加到C++20中。注意:通过将P1141R2合并到标准中,答案的以下部分已过时。我会把它留在这里供引用。然而,即使我们最终在下一次迭代

c++ - 将 shared_ptr 转换为 auto_ptr?

我需要在我的代码中从shared_ptr获取auto_ptr。我可以进行反向操作——将auto_ptr转换为shared_ptr,因为shared_ptr具有这样的构造函数:templateexplicitshared_ptr(std::auto_ptr&r);我可以将shared_ptr转换为auto_ptr吗?还是设计上不可能? 最佳答案 这在设计上是不可能的,因为该对象可能与其他共享指针共享,因此将其“提取”到auto_ptr可能会导致删除引用的对象。出于同样的原因,shared_ptr没有像auto_ptr那样的“relea

web前端之不一样的居中方式、解决tabBar选项卡居中问题、css支持嵌套、auto

MENU前言htmlstyle效果前言这里不能使用justify-content:center;,因为在小屏幕上,这种方式无法显示最前面的两个tabBar。htmldivid="box"class="d_fo_amt_50mb_50ml_20mr_20">divclass="ws_n">tabBar1div>divclass="ws_nml_20">tabBar2div>divclass="ws_nml_20">tabBar3div>divclass="ws_nml_20">tabBar4div>divclass="ws_nml_20">tabBar5div>divclass="ws_nml_