草庐IT

Remove_Reference

全部标签

c++ - 链接到静态库时出现 "undefined reference"

g++(Ubuntu/Linaro4.4.4-14ubuntu5)4.4.5我有以下名为sdpAPI.a的静态库。我在尝试将其与我的测试应用程序链接时遇到问题。只是想知道我是否做错了什么。静态库已经用g++构建了;我的目录如下:/projects/unit_test/main.c/projects/unit_test/sdp/inc/sdpAPH.h/projects/unit_test/sdp/lib/sdpAPI.a我的源代码是这样的:#include#include"sdpAPI.h"intmain(void){printf("-----TESTSDP------\n");try

c++ - std::list::remove 方法是否调用每个已删除元素的析构函数?

我有代码:std::listlst;//....Node*node=/*getfromsomewherepointeronmynode*/;lst.remove(node);std::list::remove方法是否调用每个已删除元素的析构函数(和释放内存)?如果是这样,我该如何避免? 最佳答案 是的,删除Foo*从容器中销毁Foo*,但它不会释放Foo.销毁原始指针总是是无操作的。不能有别的办法!让我给你几个理由。存储类删除指针只有在指针对象实际上是动态分配的情况下才有意义,但是运行时如何知道指针变量被销毁时是否是这种情况?指针也

c++ - 链接器错误 C++ "undefined reference "

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?尝试通过g++-oprog1main.cpp-std=c++0x编译我的程序我得到错误:/tmp/cc1pZ8OM.o:Infunction`main':main.cpp:(.text+0x148):undefinedreferenceto`Hash::insert(int,char)'collect2:error:ldreturned1exitstatusma​​in.

C++ 模板, undefined reference

我有一个这样声明的函数:templateTread();并定义如下:templateTpacketreader::read(){offset+=sizeof(T);return*(T*)(buf+offset-sizeof(T));}但是,当我尝试在main()函数中使用它时:packetreaderreader;reader.read();我从g++收到以下错误:g++-omainmain.opacket.omain.o:Infunction`main':main.cpp:(.text+0xcc):undefinedreferenceto`intpacketreader::read(

c++ - std::remove 与 vector::erase 和未定义的行为

在整个网络上,我看到人们使用erase/removeidiom对于像这样的C++vector:#include//thegeneral-purposevectorcontainer#include#include//removeandremove_ifintmain(){//initialisesavectorthatholdsthenumbersfrom0-9.std::vectorv={0,1,2,3,4,5,6,7,8,9};//removesallelementswiththevalue5v.erase(std::remove(v.begin(),v.end(),5),v.en

c++ - 将静态 C 库与 C++ 代码链接时出现 "undefined reference to"错误

我有一个测试文件(仅用于链接测试),我在其中重载了new/delete我自己的运营商malloc/free名为libxmalloc.a的库.但是在链接静态库时,我不断收到“undefinedreference”错误,即使我更改了test.o的顺序和-lxmalloc.但是一切都适用于链接这个库的其他C程序。我对这个问题感到很困惑,并感谢任何线索。错误信息:g++-m64-O3-I/usr/include/ethos-I/usr/include/nacl/x86_64-c-otest.otest.cppg++-m64-O3-L.-odemotest.o-lxmalloctest.o:In

C++ 标准 : dereferencing NULL pointer to get a reference?

这个问题在这里已经有了答案:Isnullreferencepossible?(4个回答)关闭3年前。我想知道C++标准对这样的代码有何规定:int*ptr=NULL;int&ref=*ptr;int*ptr2=&ref;实际上,结果是ptr2为NULL,但我想知道,这只是一个实现细节还是标准中已明确定义?在不同的情况下,对NULL指针的取消引用应该会导致崩溃,但在这里我取消引用它是为了获得一个由编译器作为指针实现的引用,因此实际上并没有对NULL进行实际的取消引用。 最佳答案 取消引用NULL指针是未定义的行为。事实上,标准在注释(

C++最佳实践: Returning reference vs.对象

我正在尝试学习C++,并尝试理解返回的对象。我似乎看到了两种方法,需要了解什么是最佳做法。选项1:QListret;Weight*weight=newWeight(cname,"Weight");ret.append(weight);ret.append(c);return&ret;选项2:QList*ret=newQList();Weight*weight=newWeight(cname,"Weight");ret->append(weight);ret->append(c);returnret;(当然,我也可能不明白)。哪种方式被认为是最佳实践,应该遵循?

c++ - std::remove_if - lambda,不从集合中删除任何内容

好吧,我想我在这里犯了一个愚蠢的错误。我有一个DisplayDevice3d列表,每个DisplayDevice3d都包含一个DisplayMode3d列表。我想从DisplayDevice3d列表中删除没有任何DisplayMode3d的所有项目。我正在尝试使用Lambda来执行此操作,即://Ifthedevicedoesn'thaveanymodes,removeit.std::remove_if(MyDisplayDevices.begin(),MyDisplayDevices.end(),[](DisplayDevice3d&device){returndevice.Mode

c++ - gsl::not_null<T*> 与 std::reference_wrapper<T> 与 T&

C++CoreGuidelines最近提出了(恭喜!),我很担心gsl::not_null类型。如I.12:Declareapointerthatmustnotbenullasnot_null中所述:Tohelpavoiddereferencingnullptrerrors.Toimproveperformancebyavoidingredundantchecksfornullptr....Bystatingtheintentinsource,implementersandtoolscanprovidebetterdiagnostics,suchasfindingsomeclasses