草庐IT

include_once

全部标签

c++ - C++ 中何时需要#include <new> 库?

根据thisreference对于operatornew:Globaldynamicstorageoperatorfunctionsarespecialinthestandardlibrary:Allthreeversionsofoperatornewaredeclaredintheglobalnamespace,notinthestdnamespace.ThefirstandsecondversionsareimplicitlydeclaredineverytranslationunitofaC++program:Theheaderdoesnotneedtobeincludedfor

c++ - 什么时候可以在#include 指令中省略文件扩展名?

我在玩gmock并注意到它包含这一行:#include我会期待tuple.h。什么时候可以排除扩展,它是否赋予指令不同的含义? 最佳答案 C++标准头文件没有“.h”后缀。我相信原因是该标准会破坏许多不同的标准前实现。因此,标准委员会没有要求供应商将其现有的“iostream.h”(例如)header更改为符合标准(这将破坏其现有用户的代码),而是决定他们将删除后缀(我相信不会那么现有的实现已经完成)。这样,现有的非标准程序将继续使用供应商的非标准库工作。当用户想让他们的程序符合标准时,他们将采取的步骤之一是更改“#include”

c++ - 如何使用 include-what-you-use 工具与 CMake 一起检测未使用的 header ?

工具include-what-you-use可用于检测不需要的header。我正在使用CMake对于我的C++软件项目。如何指示CMake在我的软件项目的源文件中自动运行include-what-you-use? 最佳答案 CMake3.3引入了新的目标属性CXX_INCLUDE_WHAT_YOU_USE可以设置为程序的路径include-what-you-use.例如这个CMakeLists.txtcmake_minimum_required(VERSION3.3FATAL_ERROR)add_executable(helloma

c++ - Visual Studio 代码,#include <stdio.h> 说 "Add include path to settings"

我正在尝试在VisualStudioCode中构建C/C++。我安装了C/C++和所有相关的扩展。#includeintmain(){printf("TestCnow\n");return0;}但是#include下面有一条绿线说“将包含路径添加到设置”。当我点击它时,它会移动到“c_cpp_properties.json”。如何以及在哪里可以在下面的配置中添加包含路径?"configurations":[{"name":"Mac","includePath":["/usr/include"]}] 最佳答案 更当前的情况。在2018

c++ - 在头文件与源文件中包含 #includes

我喜欢把我所有的#includes放在我的头文件中,然后只在我的源文件中包含我的源文件的头文件。什么是行业标准?我的方法有什么缺点吗? 最佳答案 通常,您只想将最少的必要包含放入类头文件中,因为使用该头文件的任何其他人都将被迫#include他们所有人也是。在较大的项目中,这会导致构建速度变慢、依赖性问题和各种其他问题。将头文件视为类的公共(public)接口(interface)。你不想让使用它的每个人都背负额外的依赖,除非他们是必需能够使用该类。将仅在类实现中需要的任何内容下移到源文件中。对于标题中使用的其他类,只有#inclu

c++ - 为什么 C/C+ +'s "#pragma once"不是 ISO 标准?

我目前正在做一个大项目,维护所有这些包括guard让我抓狂!手写是令人沮丧的浪费时间。尽管许多编辑器可以生成包含守卫,但这并没有多大帮助:编辑器根据文件名生成保护符号。当您在不同目录中具有相同文件名的header时,会出现此问题。他们都将获得相同的包括后卫。将目录结构包含在保护符号中需要编辑器采取一些奇特的方法,因为宏中的斜杠和反斜杠并不是最好的选择。当我必须重命名文件时,我也应该重命名所有包含保护(在ifndef中,定义最好是endif的注释)。烦人。预处理器充斥着大量符号,却不知道它们的含义。尽管定义被包含一次,编译器仍然会在每次遇到头包含时打开头。包含守卫不适合命名空间或模板。事

node.js - 如何摆脱错误 : "OverwriteModelError: Cannot overwrite ` undefined` model once compiled. “?

我有一个通用的方法来更新MongoDB中任何集合的文档吗?以下代码在文件名Deleter.js中module.exports.MongooseDelete=function(schemaObj,ModelObject);{varModelObj=newmongoose.Model("collectionName",schemaObj);ModelObj.remove(ModelObject);}并在我的主文件app.js中调用如下:varModObj=mongoose.model("schemaName",schemasObj);varModel_instance=newModObj(

node.js - 如何摆脱错误 : "OverwriteModelError: Cannot overwrite ` undefined` model once compiled. “?

我有一个通用的方法来更新MongoDB中任何集合的文档吗?以下代码在文件名Deleter.js中module.exports.MongooseDelete=function(schemaObj,ModelObject);{varModelObj=newmongoose.Model("collectionName",schemaObj);ModelObj.remove(ModelObject);}并在我的主文件app.js中调用如下:varModObj=mongoose.model("schemaName",schemasObj);varModel_instance=newModObj(

ruby-on-rails - Rails 中 to_json 的默认值为 :include

假设我有一个属于用户的模型帖子。要转换为json,我会这样做@reply.to_json(:include=>{:user=>{:only=>[:email,:id]},:only=>[:title,:id])但是,我想为此设置一些默认值,因此我不必每次都指定:only。我正在尝试覆盖as_json来完成此操作。当我在用户模型中添加as_json时,当我执行@user.to_json时会调用它,但当用户包含在@reply.to_json中时,我为用户覆盖的as_json将被忽略。我该如何进行这项工作?谢谢 最佳答案 您可以通过覆盖模

ruby-on-rails-3 - gem install json -v 1.7.3 给出 'Please update your PATH to include build tools'

当我运行时:railsnewblog我明白了:Installingjson(1.7.3)Gem::InstallError:The'json'nativegemrequiresinstalledbuildtools.PleaseupdateyourPATHtoincludebuildtoolsordownloadtheDevKitfrom'http://rubyinstaller.org/downloads'andfollowtheinstructionsat'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'A