草庐IT

AMQP-CPP

全部标签

c++ - 我如何编写一个类似于 __FILE__ 的 cpp __DIR__ 宏

__FILE__和__LINE__宏内置于C预处理器中,通常用于打印带有文件名的调试输出和行号。我需要类似的东西,但只是路径末尾的目录名称。例如,如果我的代码位于:/home/davidc/some/path/to/some/code/foo/bar我需要一个宏,如果代码在/home/davidc/some/path/to/some/code中,它只会给我“bar”/foo/bee然后我需要它给我“蜜蜂”。有什么想法吗?(顺便说一句,这是针对C++应用程序的)。更新:明确地说,我正在寻找一个宏,它会在编译时给我一个包含目录名称的字符串,我不想在运行时进行任何字符串处理。

c++ - 为什么使用 'cpp' 编译这个简单的 C++ 程序会失败?

我是C++初学者我的平均成绩是C。我用C++(file.cpp)编写了以下代码#includeintmain(){std::cout然后我尝试使用cppfile.cpp编译上面的代码但有一些错误。不知道怎么回事当我尝试使用ccfile.c编译我的C程序(将更改为并将std::cout更改为printf)时,我没有收到任何错误。这里发生了什么? 最佳答案 ThenItriedtocompiletheabovecodeusingcppfile.cppbutgotsomeerrors.那是因为cpp是C(C++)预处理器。它是编译器(g+

haskell - 在需要 LANGUAGE CPP 的模块上运行 ghci

我遇到了这个命令序列的问题:wgethttp://hackage.haskell.org/package/github-0.7.1/github-0.7.1.tar.gztarzxfgithub-0.7.1.tar.gzcdgithub-0.7.1ghcisamples/Users/ShowUser.hs我得到的错误是:Github/Private.hs:142:0:error:missingbinaryoperatorbeforetoken"("Github/Private.hs:148:0:error:missingbinaryoperatorbeforetoken"("phase

c++ - 我应该在 .cpp 和 .h 中重复包含吗?

场景:foo.h:#includeclassfoo{public:std::vector*getVector();/*...othermethodsdeclarations...*/}foo.cpp:#include"foo.h"#include/*...othermethodsdefinitionsusingstd::vector...*/std::vector*foo::getVector(){returnnewstd::vector();}我希望.cpp独立于header中任何future可能的更改。如果由于某种原因类的接口(interface)发生变化并且依赖来自可以消除,我冒

c++ - cpp 空数组声明

您好,我有以下测试代码,我对cpp感到困惑。如果您在library.h中声明一个带有空元素子句的数组..编译器会选择什么?它也没有提示,我使用Cygwin。在library.cpp中,我为两个元素赋值,编译器是否假设一个数组只有一个元素,而我将第二个元素写在数组范围之外?库.h#ifndefLIBRARY_H#defineLIBRARY_Hclasslibrary{public:voidprint();chara[];};#endif库.cpp#include#include"library.h"voidlibrary::print(){a[0]='a';printf("1.eleme

c++ - 如何将 cscope 用于包含 .c 、 .cpp 和 .h 文件的项目?

我正在做一个需要理解llvm的项目编译器源代码。为了浏览llvm的源代码,我尝试在源代码的根目录中使用cscope和以下命令:cscope-R*但它不起作用。因为主要有.cpp和.h文件,但也有一些.c文件。所以现在我不知道如何让cscope工作?有人可以帮忙吗? 最佳答案 您可以使用以下命令从llvm源代码树的根目录执行所需的任务:touchtags.lstfind|grep"\.c$">>tags.lstfind|grep"\.cpp$">>tags.lstfind|grep"\.h$">>tags.lstcscope-itag

c++ - cpp :-1: error: C1041: cannot open program database; untitled-build-desktop-debug\vc120. pdb'

此问题的所有可用答案都是VisualStudio的解决方案。我在QT中面临这个问题。我运行了一个示例示例,但弹出此错误。有人可以帮忙吗。错误:C1041:无法打开程序数据库“c:\users\newfolder\untitled-build-desktop-debug\vc120.pdb”;如果多个CL.EXE写入同一个.PDB文件,请使用/FS 最佳答案 右击项目->属性->c/c++->输出文件:在程序数据库文件名中:包括项目名称和路径。(.../../../../release/ProjectName/)这种方法对我有用。

c++ - 在cpp中将单词从一个文件复制到另一个文件

我试图在cpp中将单词从一个文件复制到另一个文件,这是我的代码:intmain(){stringfrom,to;cin>>from>>to;ifstreamifs(from);ofstreamofs(to);setwords(istream_iterator(ifs),istream_iterator());copy(words.begin(),words.end(),ostream_iterator(ofs,"\n"));return!ifs.eof()||!ofs;}这样我得到一个编译错误:expressionmusthaveclasstype在调用copy()的那一行如果我将迭代

java - Eclipse 是否有 "vim: set ft=cpp:"或 "-*- c++ -*-"的等价物?

有时文件中的一些代码没有任何扩展名。此类文件将包含以单一语言编写的代码,但每个此类文件可能使用不同的语言(例如C、C++、汇编语言、wiki标记和HTML)编写。同样,当文件名中有共同的扩展名,但不同的文件使用不同的编程语言时,也会出现此问题。我要解决的问题是避免让每个checkout工作区的开发人员都不必弄清楚源文件是什么类型的文件(没有扩展名,或者扩展名不暗示源文件使用的语言)。为此,文件的作者有责任在文件中加入正确的魔法,以便正确打开文件。由于Eclipse能够根据文件中的某些嵌入文本禁用格式化程序,因此我认为也应该可以指定文件类型。OpenWith功能允许单个开发人员更改文件的

c++ - 如何布局我的 C++ 程序? (我应该把 .h 和 .cpp 文件放在哪里?)

目前,我使用Java编程并经常使用Maven。因此,我已经习惯了在过去4或5年中使用的命名方案和文件夹结构。由于我最近开始学习C++,我意识到我不知道将所有文件放在哪里。我应该按命名空间还是按它所在的层级对所有内容进行segmentation?例如,我应该在哪里保留一系列专门用于UI的文件,而不是用于帮助存储数据的文件?这种东西有什么标准吗?显然,这个问题没有明确的答案。我只是在寻找一个好的指南。我不想通过花太多时间担心文件的布局来开始学习C++。我宁愿有一些好的模型,而只是开始编码。 最佳答案 以下是相当典型的......thir