草庐IT

my_cpp_func

全部标签

c++ - std::error_code,my_error::check_block == my_error::validate && my_error::accept_block == my_error::validate

我正在使用std::error_code并定义和注册了一堆错误(使用枚举类)。我有一个非常通用的错误,现在称为my_error::validate,但我想在我的库中提供更具体的版本。通常人们会想要使用:if(ec==bc::error::validate)//...但是有时他们可能希望看到与该std::error_code关联的特定错误或打印错误消息。//ec.message()says"check_block()failedtodoXYZ"assert(ec==bc::error::check_block);我希望能够启用如下功能:if(ec==bc::error::validate

c++ - 为什么允许在多个 cpp 文件中重新定义类

这个问题在这里已经有了答案:SameclassnameindifferentC++files(4个答案)关闭8年前。让我有两个cpp文件://--a.cpp--//classA{public:voidbar(){printf("classA");}};//--b.cpp--//classA{public:voidbar(){printf("classA");}};当我编译并将这些文件链接在一起时,我没有发现任何错误。但如果我写下以下内容://--a.cpp--//inta;//--b.cpp--//inta;在编译和链接这些资源后,我遇到了一个错误,因为a的重新定义。但是对于我已经重新

android - 如何使用 'CMakeLists.txt' 中的 add_library 将整个文件(.cpp、.h 等)包含在目录中

这个问题在这里已经有了答案:AutomaticallyaddallfilesinafoldertoatargetusingCMake?(5个答案)关闭5年前。在我的项目中,我使用的是cpp和.h文件,它们都位于不同的文件夹中|-src|-main|-java|-cpp|-native-lib.cpp|-library-1|-include|-lib11.h|-lib12.h|-...|-library-2|-include|-lib21.h|-lib22.h|-...在当前版本中,我将每个文件添加到'CMakeLists.txt'...add_library(#Setsthenameo

c++ - 如何在不调用链接器的情况下将 .cpp 文件编译为目标文件

我正在尝试从构建过程中单独编译单个.cpp文件。如果我进行完整构建,那么编译步骤会输出到创建项目时配置的目录。但是,如果我只是请求编译,我最终会将目标文件转到与源代码相同的目录,更糟糕的是,它继续将目标文件链接到可执行文件,而实际上它应该在进行编译。请注意,我正在为C++11使用clang++进行编译,但我认为这对为什么它第二次调用Clang++.exe进行链接没有任何要求没有任何限制。编辑1构建时会这样做--------------Build:DebuginGOTW(compiler:GNUGCCCompiler)---------------clang++.exe-Wall-fex

c++ - 在模板头文件末尾包含 .cpp

我在读一本较旧的数据结构书籍,它说当你进行模板类编程时,你应该在.h文件的末尾包含.cpp。据我所知,您必须在.h文件中为任何模板类成员函数执行完整的函数实现-这是由于模板编译器的工作方式所致。我学到的唯一可以放在模板类的实现文件中的函数是模板特化函数,即:templateClass::function_name().为什么这本书建议在.h的末尾包含.cpp?这只是一种将实现分离到不同文件中同时让它们与头文件一起编译的方法吗?如果是这样,您会在哪里放置真正的特化-我猜他们不能进入header包含的.cpp中。 最佳答案 很可能作者更

c++ - VS2008 : Can I build a project with 2 CPP files of the same name in different folders?

这是我的文件夹结构:/|--program.cpp--utility.h--utility.cpp|--module/|--utility.h--utility.cpp//NotethatIhavetwofilesnamedutility.handtwonamedutility.cpp在构建项目时,我收到链接错误(LNK2028:未解析的token等...),指出某些符号未定义。我已经确认所有符号都已定义,并且所有声明的函数都有相应的定义。我有一种感觉,在编译我的项目时,两个文件夹中的utility.cpp文件被编译到输出文件夹中的相同utility.obj中。结果,一个覆盖了另一个。

c++ - 将目录中的所有 cpp 文件编译成单独的可执行文件的 Makefile

我现在正在学习C++。我想要一个将当前目录中的所有cpp文件编译为单独的可执行文件的makefile。例如:在一个目录下有3个c++文件,分别是examp1.cpp、examp2.cpp和examp3.cpp。我想要一个将编译和链接它们并提供examp1.exe、examp2.exe和examp3.exe的makefile我已经创建了一个bash脚本来编译所有这些脚本并创建exe,但我认为;那不是执行此操作的确切方法。我有一个“.c”的Makefile,但它在这里似乎不起作用。它只是创建目标文件,而不是实际链接它。具体如下:SRCS=$(wildcard*.c)OBJS=(SRCS:.

C++: "my text"是 std::string、*char 还是 c 字符串?

我刚刚做了看起来是acommonnewbiemistake的事情:首先我们阅读oneofmanytutorials是这样的:#includeintmain(){usingnamespacestd;ifstreaminf("file.txt");//(...)}其次,我们尝试在我们的代码中使用类似的东西,它是这样的:#includeintmain(){usingnamespacestd;std::stringfile="file.txt";//Orgetthenameofthefile//fromafunctionthatreturnsstd::string.ifstreaminf(fi

c++ - zmq-cpp : recv() waits for data despite ZMQ_DONTWAIT being set

我正在尝试使用ZMQ_DONTWAIT标志通过ZeroMQ实现非阻塞接收方法,但是recv()的行为就像在没有标志的情况下被调用:autostart=std::chrono::steady_clock::now();autohave_data=sock_->recv(&reply,ZMQ_DONTWAIT);autoduration=std::chrono::duration_cast(std::chrono::steady_clock::now()-start).count();std::coutsock_是一个zmq::socket_t实例化为REQ套接字。在这种情况下,have_

c++ - 为什么 Qt 使用 d_func() 来实例化一个指向私有(private)数据的指针?

考虑以下Qt类:#includeclassMyClassPrivate;classMyClass{public:MyClass();~MyClass();private:QScopedPointerd_ptr;Q_DECLARE_PRIVATE(MyClass)}这个类类似于大多数实现私有(private)实现的Qt类的结构。宏Q_DECLARE_PRIVATE将导致以下扩展(从Qt5开始):inlineMyClassPrivate*d_func(){returnreinterpret_cast(qGetPtrHelper(d_ptr));}inlineconstMyClassPriv