草庐IT

auto_ptr_ref

全部标签

c++ - 关于 C++ 中 auto 关键字的困惑

这个问题在这里已经有了答案:Canthe'auto'keywordbeusedasastorageclassspecifierinC++11?(2个回答)关闭5年前。我对以下代码感到困惑:#includeusingnamespacestd;int*foo(){//Operation}intmain(){autointret=foo();}我在GCC下编译了上面的代码,但是我得到了以下错误:error:twoormoredatatypesindeclarationof'ret'autointret=foo();但是,如果我删除int类型,像这样:autoret=foo();然后运行成功。

c++ - 关于 C++ 中 auto 关键字的困惑

这个问题在这里已经有了答案:Canthe'auto'keywordbeusedasastorageclassspecifierinC++11?(2个回答)关闭5年前。我对以下代码感到困惑:#includeusingnamespacestd;int*foo(){//Operation}intmain(){autointret=foo();}我在GCC下编译了上面的代码,但是我得到了以下错误:error:twoormoredatatypesindeclarationof'ret'autointret=foo();但是,如果我删除int类型,像这样:autoret=foo();然后运行成功。

c++ - 使用 C++11 auto 关键字声明两个(或更多)变量

我有这样的代码:templatestaticvoidprintList(QList*list){for(autoi=list->size()-1,j=-1;i>=0;--i){std::coutat(i)当我用g++6.2.1编译它时,我得到以下编译器输出:test.cpp:Infunction‘voidprintList(QList*)’:test.cpp:10:7:error:inconsistentdeductionfor‘auto’:‘auto’andthen‘int’for(autoi=list->size()-1,j=-1;i>=0;--i){^~~~如果变量具有不同的类型

c++ - 使用 C++11 auto 关键字声明两个(或更多)变量

我有这样的代码:templatestaticvoidprintList(QList*list){for(autoi=list->size()-1,j=-1;i>=0;--i){std::coutat(i)当我用g++6.2.1编译它时,我得到以下编译器输出:test.cpp:Infunction‘voidprintList(QList*)’:test.cpp:10:7:error:inconsistentdeductionfor‘auto’:‘auto’andthen‘int’for(autoi=list->size()-1,j=-1;i>=0;--i){^~~~如果变量具有不同的类型

c++ - 在 Qt 中发送信号时的 const-ref

这是我在const-ref中从未完全理解过的事情,我真的希望有人可以向我解释。当在另一个函数内部调用一个函数时,我知道const-ref是传递我不打算篡改的堆栈对象时的最佳方式。例如:voidsomeInnerFunction(constQString&text){qDebug()到目前为止一切都很好,我猜。但是信号呢?传递引用是否有任何风险?即使它是const。感觉就像我一直在阅读有关const-ref的所有文档,但我仍然觉得有点冒险,因为我将其理解为“发送对对象的引用并保留它const”。如果它所指的对象超出范围怎么办?例如:voidsomeFunction(){connect(t

c++ - 在 Qt 中发送信号时的 const-ref

这是我在const-ref中从未完全理解过的事情,我真的希望有人可以向我解释。当在另一个函数内部调用一个函数时,我知道const-ref是传递我不打算篡改的堆栈对象时的最佳方式。例如:voidsomeInnerFunction(constQString&text){qDebug()到目前为止一切都很好,我猜。但是信号呢?传递引用是否有任何风险?即使它是const。感觉就像我一直在阅读有关const-ref的所有文档,但我仍然觉得有点冒险,因为我将其理解为“发送对对象的引用并保留它const”。如果它所指的对象超出范围怎么办?例如:voidsomeFunction(){connect(t

c++ - unique_ptr 和 shared_ptr 的重载方法与多态性不明确

在得到我的previousquestion的提示后编写代码的答案,我遇到了重载Scene::addObject的问题。重申相关部分并使其自成一体,尽可能减少细节:我有一个继承自Interface的对象层次结构,其中有Foos和Bars;我有一个拥有这些对象的Scene;Foos是unique_ptrs和Bars是shared_ptrs在我的主要(上一个问题中解释的原因);main将它们传递给Scene实例,该实例取得所有权。最小代码示例是this:#include#includeclassInterface{public:virtual~Interface()=0;};inlineIn

c++ - unique_ptr 和 shared_ptr 的重载方法与多态性不明确

在得到我的previousquestion的提示后编写代码的答案,我遇到了重载Scene::addObject的问题。重申相关部分并使其自成一体,尽可能减少细节:我有一个继承自Interface的对象层次结构,其中有Foos和Bars;我有一个拥有这些对象的Scene;Foos是unique_ptrs和Bars是shared_ptrs在我的主要(上一个问题中解释的原因);main将它们传递给Scene实例,该实例取得所有权。最小代码示例是this:#include#includeclassInterface{public:virtual~Interface()=0;};inlineIn

c++ - 'auto a_class::f(...) -> T const' 在语法中是否有歧义?

下面的成员函数原型(prototype)在C++11中应该如何解释?classC{public:autof(...)->Tconst;}在我看来,它既可以是C类的const成员函数,也可以是返回T类型的const值的非const成员函数。我知道我可以把函数写成Tconstf(...);或Tf(...)const;但是,我想与我声明函数的方式保持一致,所以我决定在任何地方都使用新的C++11autof(...)->RetType方式。 最佳答案 尾随返回类型出现在非静态成员函数的cv和ref限定符之后。这意味着问题中的示例与Tcons

c++ - 'auto a_class::f(...) -> T const' 在语法中是否有歧义?

下面的成员函数原型(prototype)在C++11中应该如何解释?classC{public:autof(...)->Tconst;}在我看来,它既可以是C类的const成员函数,也可以是返回T类型的const值的非const成员函数。我知道我可以把函数写成Tconstf(...);或Tf(...)const;但是,我想与我声明函数的方式保持一致,所以我决定在任何地方都使用新的C++11autof(...)->RetType方式。 最佳答案 尾随返回类型出现在非静态成员函数的cv和ref限定符之后。这意味着问题中的示例与Tcons