草庐IT

hard_coded_namespace

全部标签

c++ - 运算符重载决议如何在 namespace 内工作?

我发现C++运算符重载解析的奇怪行为,我自己无法解释。指向描述它的某些资源的指针与答案一样好。我有2个翻译单元。在一个(称为util.cpp/h)中,我声明并定义了两个运算符(我省略了可读性的实际实现,无论如何都会出现问题)://util.h#ifndefGUARD_UTIL#defineGUARD_UTIL#includestd::istream&operator>>(std::istream&is,constchar*str);std::istream&operator>>(std::istream&is,char*str);#endif和://util.cpp#include"u

c++ - 错误 : name followed by '::' must be a class or namespace name

我正在尝试构建我的第一个ATLDLL项目,我在其中使用ADODB。这里的问题是我给每个ADODB类都加了下划线ADODB::_ConnectionPtrspADOConnection;当我将鼠标移到ADODB::_ConnectionPtr上时,我得到namefollowedby'::'mustbeaclassornamespacenamespADOConnection我得到expecteda';'。请问这是什么意思?请问我该如何解决?非常感谢! 最佳答案 编译器无法找到ADODB的声明。确保在编译器提示的翻译单元中包含相关head

c++ - 错误 : no type named 'vector' in namespace 'std'

为什么会这样?error:notypenamed'vector'innamespace'std';didyoumean'hecto'?voidaskForVector(std::vector*vector);#include#includevoidaskForVector(std::vector*vector);intmain(){std::vectorvector;intsize;askForVector(&vector);std::cout>size;vector->resize(size);for(inti=0;i>vector[i];}for(intj:*vector)std:

c++ - 使用 Code::Blocks 调试时提供程序参数

我似乎无法弄清楚如何将程序参数添加到代码块调试器的启动命令中。有人知道怎么做吗? 最佳答案 我找到了。项目-->设置程序参数(我一直在查看项目设置,就像visualstudio一样) 关于c++-使用Code::Blocks调试时提供程序参数,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1218014/

[Windows]下visual studio code C#环境的搭建和debugger的配置

通过一中午和一下午的辛勤劳作,谢师傅又因工作不得不学习C++和相关的vscode知识。在此,谢师傅按先后顺序严谨客观的记录下每一步的细节步骤。一、下载MinGW二、环境变量配置 三、启动MinGW并下载相关的库文件下载的库文件,同一存在放\MinGW\bin目录下,注意同时下载gdb,gcc,g++的所有相关文件。否则很容易由于缺失某一方面的库文件导致无法在vscode中充分使用相关功能。i.e.gdb与cppdebugger相关,尤其通过remote插件连接到Linux环境时,没有GDB库文件,无法与CMake一起作用在Linux环境中产生相关的.json文件,从而导致无法再Linux环境中

c++ - 为什么 lexical_cast 要求运算符>>位于匹配的 namespace 中?

这是一个测试用例:#include#includenamespaceN{enumclassalarm_code_t{BLAH};}std::istream&operator>>(std::istream&is,N::alarm_code_t&code){std::stringtmp;is>>tmp;if(tmp=="BLAH")code=N::alarm_code_t::BLAH;elseis.setstate(std::ios::failbit);returnis;}intmain(){autocode=boost::lexical_cast("BLAH");}Boost拒绝转换,声

VS Code使用指南

一.关于Vscode1、Vscode是个啥?VSCode(全称:VisualStudioCode)是一款由微软开发且跨平台的免费源代码编辑器。该软件支持语法高亮、代码自动补全(又称IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和Git版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的扩展程序商店安装扩展以拓展软件功能。VSCode使用MonacoEditor作为其底层的代码编辑器。2、Vscode的安装VScode官网地址:https://code.visualstudio.com/VScode下载页面:https://code.visual

c++ - 是否应该在头文件中使用 C++ namespace 别名?

是consideredbadpractice在C++header中使用usingnamespace。使用namespacealiasing同样是个坏主意吗?在header中,每个实现文件都应该声明它希望使用的别名?由于header是您倾向于使用完全指定名称的地方(因为我们不在header中使用命名空间),别名会很有用,但当#included时它们仍会通过您的源传播。此处的最佳做法是什么?什么是命名空间别名的范围? 最佳答案 如果您将命名空间别名放入header中,此别名将成为您(公共(public))API的一部分。有时,这种技术用

c++ - 技巧 : filling array values using macros (code generation)

AreC++TemplatesjustMacrosindisguise?我正在阅读上述主题,突然想到一个想法:为什么不尝试编写一些可以在我们的实际代码中使用的棘手宏,(不仅仅是作为在现实生活中无用的谜题)?所以首先想到的是:用宏填充数组值:intf(int&i){return++i;}#definee100r5(m20)#definem20m5,m5,m5,m5#definem5r5(e1)#definee1f(i)//avoiding++irighthere,toavoidUB!#definer5(e)e,e,e,e,eintmain(){inti=0;//thisisusedint

Ubuntu 18.04安装Visual Studio Code的方法

因为博主用的是VisualStudioCode的开发环境,就在这篇博客中记录下在Ubuntu18.04系统中安装VsCode的方法,此方法同样适用于Ubuntu16.04。安装的方法有很多,最直接的就是通过官网https://code.visualstudio.com/Download下载安装包:然后用dpkg-i命令安装,但是从官网下载速度极其慢,所以使用通过命令安装的方法。Step1:updateapt,安装依赖项:sudoaptupdatesudoaptinstallgnupg2software-properties-commonapt-transport-httpswgetStep2: