草庐IT

auto-linked

全部标签

c++ - --enable-auto-import 警告的目的

我正在尝试编译以下程序:#includeintmain(){std::cout当我编译它时,我得到这个消息:C:\programs>g++test.cppInfo:resolvingstd::coutbylinkingto__imp___ZSt4cout(auto-import)c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe:warning:auto-importinghasbeenactivatedwithout--enable-auto-importspecifiedonthecommandl

c++ - 是否可以在 C++0x 中使用 auto 执行以下操作?

EricLippert写了一篇关于Whynovaronfields?的文章在C#中。我很好奇,我们能否在C++0x中做到这一点?例如。structmystruct_t{autoi=0,d=0.0,s=std::string("zero");};抱歉,我无法通过最新草稿得出答案。谢谢, 最佳答案 遗憾的是你不能。该规范在7.1.6.4/3中说明并遵循Otherwise,thetypeofthevariableisdeducedfromitsinitializer.Thenameofthevariablebeingdeclaredsha

c++ - 提示编译器返回一个使 'auto' 表现良好的引用

(可能与HowtoimplementaC++methodthatcreatesanewobject,andreturnsareferencetoit有关,后者是关于一些不同的东西,但附带地包含几乎完全相同的代码)我想从静态函数返回对静态本地的引用。当然,我可以让它工作,但它没有我想要的那么漂亮。这可以改进吗?背景我有几个类,它们除了以明确定义的方式可靠地获取或初始化资源并释放资源外,并没有做太多事情。他们甚至不需要对资源本身了解太多,但用户可能仍想以某种方式查询一些信息。这当然是微不足道的:structfoo{foo(){/*acquire*/}~foo(){/*release*/}}

c++ - Range TS 成语和神秘的 auto &&

在pre-RangeTS代码中,我可能会执行类似以下的操作来获取对ForwardIterator值的(可能可修改的)引用:auto&val=*it;这也将用于此类迭代器的基于范围的for循环:for(auto&val:some_range)但是,在C++20和基于RangeTS的代码中,我在这些位置看到了很多auto&&用法。我从语言的角度理解auto&&正在做什么。我不明白的是为什么在这些地方使用它,而auto&应该可以正常工作?大多数这种性质的代码都没有转发引用,那么为什么要使用转发引用来捕获它呢? 最佳答案 使用这个习惯用法是

c++ - 指针与 auto_ptr 与 shared_ptr

我最近了解到auto_ptr和shared_ptr的存在,我有一个非常简单/幼稚的问题。我尝试实现一个数据结构,我需要指向一个Node的子节点,其中(大于1及其)数量可能会改变。哪个是最好的选择,为什么:classNode{public://...Node*children;private://...}classNode{public://...share_ptrchildren;private://...}我不确定,但我认为auto_ptr不适用于数组。我也不确定是否应该使用双指针。感谢您的帮助。 最佳答案 你说得对,auto_p

c++ - QObject : Missing vtable link error

我知道这个问题已经被问过很多次了,但我在这里和谷歌中都找不到解决方案。这是我的头文件#ifndefMAINCONTROLLER_H#defineMAINCONTROLLER_H#include#include#include#include#include"PhTools/PhString.h"#include"PhStrip/PhStripDoc.h"classMainController:publicQObject{Q_OBJECTpublic:explicitMainController(QObject*parent=0);voidloadSettings();PhStringg

c++ - C/C++ : What is the difference between a statically-linked library and an object file?

我知道编译时包含在可执行文件中的代码可能来自目标文件(.o文件)和静态链接库(.lib/.a文件)。这两者在根本上和概念上有什么区别?为什么“目标代码”和“静态链接库”之间有不同的概念?各自的优点和缺点是什么,为什么要使用一个而不是另一个?静态链接库是否可以从目标文件生成,反之亦然,目标文件是否可以从静态链接库生成? 最佳答案 目标文件是已编译但未链接的代码。库包含目标文件。因此你的问题变成了,“如果我只能使用目标文件,为什么要使用静态链接库?”原因如下。与对象集合不同,每个对象都有自己的符号表,库有一个单一的、统一的符号表,在库调

c++ - `auto` 引用的说明符类型推导

让我们考虑以下代码片段voidTest(){intx=0;int&rx=x;int*px=&x;autoapx=px;//deducedtypeisint*autoarx=rx;//deducedtypeisint}可以类比指针类型,期望arx的推导类型是int&,但实际上是int。标准中的规则是什么?其背后的原因是什么?有时我会在这样的情况下被它捕获:constBigClass&GetBigClass();...autoref_bigclass=GetBigClass();//unexpectedcopyisperformed 最佳答案

c++ - 将 std::forward 与 auto&& 一起使用是正确的做法吗

尝试了解将std::forward与auto&&变量一起使用是否是传递这些变量以允许移动的正确方法。假设有一个函数:voidmoveWidget(Widget&&w);调用者-引用右值和左值的两个变量:Widgetw;auto&&uniRefLV=w;//lvalueinitialiser,//uniRefLV'stypeisWidget&auto&&uniRefRV=std::move(w);//rvalueinitialiser,//uniRefRV'stypeisWidget&&我们知道auto&&类型的变量是通用引用,因为发生了类型推导。这意味着uniRefRV和uniRefL

c++ - 如何在必须复制构造的类中使用 std::auto_ptr?

我的foo类包含一个std::auto_ptr成员,我想复制它的构造,但这似乎是不允许的。作业也有类似的事情。请参阅以下示例:structfoo{private:int_a;std::string_b;std::auto_ptr_c;public:foo(constfoo&rhs):_a(rhs._a),_b(rhs._b),_c(rhs._c)//error:Cannotmutaterhs._ctogiveupownership-D'Oh!{}foo&operator=(constfoo&rhs){_a=rhs._a;_b=rhs._b;_c=rhs._c;//error:Samep