草庐IT

m_Header

全部标签

c++ - 仅 header 库中的静态数据

我正在开发一个仅包含头文件的库。到目前为止,它只包含类,这很好。但是,我已经到了需要在库中拥有一些库范围内可访问的不变数据(即,不是类实例数据)来实现某些功能的地步。您显然不能只将全局数据放在头文件中,否则#includeheader的每个编译单元都将具有符号定义,并且您将在链接时遇到多个定义错误.我似乎找到了一种解决方法,它可以让我在类中拥有静态数据,而无需将编译单元添加到库中,只需将数据设为函数中的static变量并返回指向该数据的指针:classStaticData{public:voiddoSomething(){/*thisusesgetData*/}voiddoSometh

c++ - 没有 .h 的 header 的 Visual Studio 智能感知

我正在使用一个没有.h的标题的库这破坏了VisualStudio的智能感知(声明/定义查找)有谁知道如何告诉VS2008文件是头文件吗? 最佳答案 转到VisualStudio中的Tools::Options::TextEditor::FileExtension选项卡。选中“映射无扩展标题”复选框,然后从组合框中选择您想要的语言。 关于c++-没有.h的header的VisualStudio智能感知,我们在StackOverflow上找到一个类似的问题: ht

c++ - 没有 .h 的 header 的 Visual Studio 智能感知

我正在使用一个没有.h的标题的库这破坏了VisualStudio的智能感知(声明/定义查找)有谁知道如何告诉VS2008文件是头文件吗? 最佳答案 转到VisualStudio中的Tools::Options::TextEditor::FileExtension选项卡。选中“映射无扩展标题”复选框,然后从组合框中选择您想要的语言。 关于c++-没有.h的header的VisualStudio智能感知,我们在StackOverflow上找到一个类似的问题: ht

c++ - 由于在多个 cpps 中包含相同的 header 而导致重复的多个定义错误

因此,无论我做什么,我似乎都无法避免DevC++出现大量多重定义错误,因为我在同一个项目的多个源代码文件中包含了相同的头文件。我强烈希望避免将所有源代码转储到一个文件中,并且只包含一次header,因为这会使我的文件非常长且难以管理。基本上是这样的:#ifndef_myheader_h#define_myheader_htypedefstructMYSTRUCT{intblah;intblah2;}MYSTRUCT;MYSTRUCTJob_Grunt;MYSTRUCT*Grunt=&Job_Grunt;MYSTRUCTJob_Uruk;MYSTRUCT*Uruk=&Job_Grunt;

c++ - 由于在多个 cpps 中包含相同的 header 而导致重复的多个定义错误

因此,无论我做什么,我似乎都无法避免DevC++出现大量多重定义错误,因为我在同一个项目的多个源代码文件中包含了相同的头文件。我强烈希望避免将所有源代码转储到一个文件中,并且只包含一次header,因为这会使我的文件非常长且难以管理。基本上是这样的:#ifndef_myheader_h#define_myheader_htypedefstructMYSTRUCT{intblah;intblah2;}MYSTRUCT;MYSTRUCTJob_Grunt;MYSTRUCT*Grunt=&Job_Grunt;MYSTRUCTJob_Uruk;MYSTRUCT*Uruk=&Job_Grunt;

c++ - Eclipse CDT : Unresolved inclusion of STL header

我正在尝试使用Eclipse编辑源代码,在C++Builder下编译,但遇到了Unresolvedinclusion问题。例如,代码如下:#include给Unresolvedinclusion:EclipseIDE中的错误。C++Builder确实没有vector文件,而是有vector.h由编译器使用。如果我写的话,EclipseIDE不会出错#include我如何告诉Eclipse使用vector.h当它看到#include? 最佳答案 这让我避免了Eclipse“Unresolvedinclusion”错误。就我而言,我必须

c++ - Eclipse CDT : Unresolved inclusion of STL header

我正在尝试使用Eclipse编辑源代码,在C++Builder下编译,但遇到了Unresolvedinclusion问题。例如,代码如下:#include给Unresolvedinclusion:EclipseIDE中的错误。C++Builder确实没有vector文件,而是有vector.h由编译器使用。如果我写的话,EclipseIDE不会出错#include我如何告诉Eclipse使用vector.h当它看到#include? 最佳答案 这让我避免了Eclipse“Unresolvedinclusion”错误。就我而言,我必须

c++ - Visual Studio 中的 "Create Precompiled Header"(/Yc) 和 "Use Precompiled Header"(/Yu) 有什么区别?

我阅读了MSDN中的文档,但最后我并不清楚它们之间的实际区别是什么。两者似乎都需要在每个*.cpp文件的顶部添加stdafx.h。我正在使用VS2008。谁能帮忙解决问题? 最佳答案 如何在VisualStudio中使用PCH文件的简短总结:项目中的所有cpp文件都必须包含stdafx.h(如果您愿意,可以将其更改为其他内容)在解决方案资源管理器中选择项目,然后在Properties->C++->PrecompiledHeaders中将“创建/使用预编译头文件”设置为“使用”。点击应用虽然仍然显示属性页,​​但在解决方案资源管理器中

c++ - Visual Studio 中的 "Create Precompiled Header"(/Yc) 和 "Use Precompiled Header"(/Yu) 有什么区别?

我阅读了MSDN中的文档,但最后我并不清楚它们之间的实际区别是什么。两者似乎都需要在每个*.cpp文件的顶部添加stdafx.h。我正在使用VS2008。谁能帮忙解决问题? 最佳答案 如何在VisualStudio中使用PCH文件的简短总结:项目中的所有cpp文件都必须包含stdafx.h(如果您愿意,可以将其更改为其他内容)在解决方案资源管理器中选择项目,然后在Properties->C++->PrecompiledHeaders中将“创建/使用预编译头文件”设置为“使用”。点击应用虽然仍然显示属性页,​​但在解决方案资源管理器中

c++ - 在 clang++ 中使用 boost/thread header 时遇到问题 (Windows)

我正在尝试使用clang++在Windows上使用Boost.Thread。在包含boost/thread.hpp时,我收到以下编译错误:使用-DBOOST_USE_WINDOWS_H:InfileincludedfromD:/env/boost/boost_1_58_0\boost/thread.hpp:13:InfileincludedfromD:/env/boost/boost_1_58_0\boost/thread/thread.hpp:12:InfileincludedfromD:/env/boost/boost_1_58_0\boost/thread/thread_only