草庐IT

Header-JTable

全部标签

c++ - 有什么方法可以知道哪些 header 自动包含在 C++ 中

这是this的后续问题上面写着InC++,unlikeC,standardheadersareallowedto#includeotherstandardheaders.有什么方法可以知道哪些header被自动包含在内,因为可能很难猜测哪些符号定义在哪些header中。动机:我的家庭作业在我的电脑上编译并正常工作,但助教告诉我它没有编译并且需要几个头文件(互斥锁和算法)来编译。我如何确定我以后提交的代码是无懈可击的。我的编译器没有给出任何关于隐式声明的警告。我正在使用clang++-std=c++11来编译我的代码。 最佳答案 该标

C++ 模板和静态成员 - header 中的定义

考虑以下构造://!Templatedsingleton./*!Templatewrapperenforcingthesingletonbehavior.*/templateclassTSingleton{private://!Singletoninstancepointer.staticT*instance;//!privateconstructor.TSingleton(){}//!privateemptycopyconstructor.TSingleton(constTSingleton&sourceObject){}public://!Staticsingletoninstan

c++ - 我应该删除 QDebug header 以进行发布吗?

我有一个Qt应用程序,我为我的应用程序使用qDebug消息。然而我已经变得懒惰了,留下了一大堆:#include在我的头文件中。我应该为生产部署删除它们吗?它会带来什么好处? 最佳答案 您不应该删除标题包含。如果这样做,每个涉及qDebug的语句都可能会产生编译器错误。相反,在编译发布时定义符号QT_NO_DEBUG_OUTPUT。当定义该符号时,qDebug将不执行任何操作,并且(希望)编译器将优化对不执行任何操作的函数的调用。 关于c++-我应该删除QDebugheader以进行发布

c++ - 仅从 boost 中获取必要的 header

我需要提交作业,但我只想包含我实际使用的boost的头文件(我使用了boost::shared_ptr和boost::function)。我试着手动这样做,但我遗漏了一些头文件,每次我去添加它们时,结果发现我遗漏了更多。有没有一种快速简便的方法可以准确找出我实际需要的header?谢谢 最佳答案 bcp命令就是为此而生的:NAMEbcp-extractsubsetsofBoostSYNOPSISbcp--list[options]module-listbcp[options]module-listoutput-pathbcp--re

c++ - 共享 header 导致多重定义符号错误

考虑以下头文件示例:shared_example.h#ifndefSHARED_EX#defineSHARED_EXconstintShared_Int=1;constchar*Shared_CString="Thisisastring";#endifshared_example.h文件包含在多个编译单元中,这导致链接器(正确地)提示:错误LNK2005:“charconst*constShared_CString”(?Shared_CString@@3PBDB)已在First_Compilation_Unit.obj中定义从此文件中删除Shared_CString常量可消除此问题。所

c++ - 带有 DLL 解决方案的预编译 header 。无法打开预编译头文件

当此解决方案使用.lib文件而不是.dll文件时,此方法没有错误。除了一个当前使用预编译header的项目外,我拥有所有项目,没有错误。预编译头称为“LudoGlobal.h”。我试图将最后一个项目链接到这个预编译的头文件(它存在于一个单独的“核心”项目中),但我收到以下错误:Error4fatalerrorC1083:Cannotopenprecompiledheaderfile:'....\Output\LudoSound\Debug\LudoSound.pch':Nosuchfileordirectoryludosoundmanager.cpp1对于每个.cpp文件。为什么是这样

c++ - LNK2019 当包含 asio header 时,使用 cmake 生成的解决方案

我正在尝试使用cmake和boost库将一个大项目从gcc(Linux)移植到msvc(windows)。该项目在gcc上编译和运行良好,但在msvc上它返回以下错误:Dyna.obj:errorLNK2019:unresolvedexternalsymbol"void__cdeclboost::throw_exception(classstd::exceptionconst&)"(?throw_exception@boost@@YAXABVexception@std@@@Z)referencedinfunction"void__cdeclboost::asio::detail::do

c++ - 包括从 Windows 到 Linux 的 header 路径更改

我正在将一个用C++编写的应用程序从Windows移植到Linux。我的头文件路径有问题。Windows使用\,Linux使用/。我发现在每个源文件和头文件中更改它很麻烦。有一些变通办法吗? 最佳答案 始终在#include路径中使用正斜杠。编译器的工作是将路径映射到底层操作系统支持的任何斜杠/目录方案。 关于c++-包括从Windows到Linux的header路径更改,我们在StackOverflow上找到一个类似的问题: https://stackove

c++ - 仅 header 模板(外部模板)的显式实例化声明

我正在尝试加快GLM(OpenGL数学)的编译时间。GLM大量使用C++模板。这是我到目前为止尝试过的。math.h#pragmaonce#includeexterntemplatestructglm::tvec3;math.cpp#include"math.h"templatestructglm::tvec3;然后我有三个文件正在使用glm::vec3模板,glm::vec3是glm::tvec3的类型定义.三个文件a,b,c看起来几乎一样:a.cpp,b.cpp,c.cpp#include"math.h"glm::vec3func(){glm::vec3a=glm::vec3{1,

c++ - 使用 CMake 添加仅 header 依赖项

我有一个简单的项目,需要三个仅包含头文件的库才能编译:websocketpp,spdlog和nlohmann/json.项目结构如下:└──src├──app│  ├──CMakeLists.txt│  ├──src│  └──test├──CMakeLists.txt├──core│  ├──CMakeLists.txt│  ├──include│  ├──src│  └──test└──vendor├──install.cmake├──nlohmann_json├──spdlog└──websocketpp根CMakeLists.txt如下:cmake_minimum_requir