草庐IT

sphinx-apidoc-Implicit-namespaces

全部标签

【C++初阶】命名空间 namespace

一.前言在正式进入C++前,我们需要先了解了解C++。顾名思义,C++是基于C的一种编程语言,相较于C,C++写出来的代码更简洁,有时候C需要几百行代码,而C只需要几十行就可以解决,C++也很好的解决了C中存在的一些问题,例如:命名冲突。C++的命名空间就能很好的解决这个问题。二.命名冲突在C语言中,我们定义的变量不能是库里有的,例如int printf 就不能这么定义,因为printf是库的函数,这样定义变量就会命名冲突。上图就很好的展示了这个错误。那库那么多,我们怎么保证当我们新加了一个头文件时,不会形成命名冲突呢?万一这个命名冲突又很多该怎么办?要全部改掉吗?完全不需要,C++的命名空间

c++ - 如何使用 Sphinx 管理多个版本的文档?

关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.3年前关闭。Improvethisquestion我维护一个用C++编写的小型库项目。我想使用Sphinx来维护每个发布版本的库网站+用户文档。我找到了[类似的问题Howtomanagemanyversions?在sphinx-dev邮件列表whichIhavebumped但没有广泛的后续行动。如何管理多个版本?我认为基本结构是这样的:mylib/我正在尝试找出这种结构的最佳实用配置。我有root配置mylib/conf.py我控制网

C++ : Ternary Operator (Conditional Operator) and its Implicit Type Conversion Rules

三元运算符的参数是否有隐式类型转换规则?三元运算符总是需要返回相同的类型。此类型仅由第二个和第三个参数(1st?2nd:3rd)确定,因此两个参数都转换为此类型。这种类型是如何确定的?更具体地说,我测试了一个例子:classpointclass{pointclass();pointclass(inti);//(pointclass)(int)operatorbool()const;//(bool)(pointclass)};我有一个类(pointclass),它支持从int进行隐式转换至pointclass和pointclass的隐式转换至bool.inti;pointclassp;b

c++引用同级 namespace

给出:namespaceroot{namespaceparent{namespacechildaclasshard_to_get_at{};}}}namespaceroot{namespaceparent{namespacechildb//howdoIreferrefertonamespacechildbrelativetothecurrentnamespace?..::hard_to_get_atinstance_of_childa_class;//psuedosyntax}}}我需要指定命名空间的完整路径吗?有什么解决办法吗? 最佳答案

c++ - Namespace or Class,只封装函数成员哪个更好

那么,假设我有几个函数来处理文件的打开/关闭。创建一个静态声明所有这些函数的类是否更好还是干脆将“public”函数放在命名空间“file”的头文件中,其余的“实现细节”放在.cc文件中?下面是代码示例。命名空间一有点长,因为我想尽可能清楚。谢谢!!类的实现标题:#ifndefFILE_H#defineFILE_H#include#includeinclude"common.h"enumErrorcode{FILE_CANNOT_OPEN,FILE_CANNOT_CLOSE};classfile{public:staticcommon::LinestoLines(std::string

c++ - 警告 : specialization of template in different namespace

通过以下代码我得到了警告:warning:specializationof‘templatestructstd::iterator_traits’indifferentnamespace[-fpermissive]templateclassstd::iterator_traits{public:typedefWorddifference_type;typedefWordvalue_type;typedefToken_ptrpointer;typedefWord&reference;typedefstd::bidirectional_iterator_tagiterator_catego

c++ - "indirectly declaring a namespace within another namespace"是什么意思?

[basic.link]C++14标准中的第4段:Anunnamednamespaceoranamespacedeclareddirectlyorindirectlywithinanunnamednamespacehasinternallinkage.Allothernamespaceshaveexternallinkage.Anamehavingnamespacescopethathasnotbeengiveninternallinkageabovehasthesamelinkageastheenclosingnamespaceifitisthenameof...上面的“在另一个命名

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: