在Google C++样式指南中,有关"无符号整数"的主题,建议使用
由于历史意外,C++标准也使用无符号整数来表示容器的大小 - 标准组织的许多成员认为这是一个错误,但在这一点上实际上无法修复.无符号算术不对一个简单整数的行为进行建模,而是通过标准来定义模块化算法(包含溢出/下溢),这意味着编译器无法诊断出一大类错误.
模运算有什么问题?这不是unsigned int的预期行为吗?
指南引用了哪些错误(一个重要的类)?溢出的错误?
不要仅使用无符号类型断言变量是非负的.
我可以想到使用signed int而不是unsigned int的一个原因是,如果它确实溢出(为负),则更容易检测.
有没有什么好的地方可以获得C++ Google Style Guide的示例?
并不是说谷歌风格指南是神圣的圣经,但作为一个新手程序员,它似乎是一个很好的参考.
Google样式指南列出了前向声明的以下缺点
前向声明可以隐藏依赖项,允许用户代码在标题更改时跳过必要的重新编译.
随后对库的更改可能会破坏前向声明.函数和模板的前向声明可以防止标题所有者对其API进行其他兼容的更改,例如扩展参数类型,添加具有默认值的模板参数或迁移到新的命名空间.
从名称空间std ::转发声明符号会产生未定义的行为.
可能很难确定是否需要前向声明或完整#include.用前向声明替换#include可以默默地改变代码的含义:
码:
  // b.h:
  struct B {};
  struct D : B {};
  // good_user.cc:
  #include "b.h"
  void f(B*);
  void f(void*);
  void test(D* x) { f(x); }  // calls f(B*)
如果#include被B和D的forward decls替换,test()将调用f(void*).
从标题中声明多个符号的前向可能比简单地#include the header更加冗长.
构造代码以启用前向声明(例如,使用指针成员而不是对象成员)可以使代码更慢,更复杂.
然而,对SO的一些搜索似乎表明,前向声明通常是更好的解决方案.
因此,鉴于这些看似非平凡的缺点,有人可以解释这种差异吗?
什么时候忽略部分或全部这些缺点是安全的?
我目前正在使用 Sphinx 记录我的 Python 项目。在文档字符串的多行部分中包含项目符号列表时,我遇到了一个问题。
我想包括一个项目符号列表,但其中一项很长。我想要:
你有什么建议让我为这个文档字符串做些什么:
class geography():
""" Class defining a geography (cities and distance matrix)
This class implements a geography with a list of named cities with their
associated coordinates in a plane. Helper functions enable to :
- give a visual representation of that geography
- give a visual representation of the distance matrix
- give a visual representation of a configuration, a configuration being the repartition of some or …的谷歌C++样式指南绘制有明显的区别(严格接着cpplint.py输入参数之间)(→常量REF,值)和输入-输出或输出参数(→非const的指针):
C/C++函数的参数既可以是函数的输入,也可以是函数的输出,或者两者兼而有之.输入参数通常是值或const引用,而输出和输入/输出参数将是非常量指针.
并进一步 :
事实上,在Google代码中,一个非常强大的约定是输出参数是值或const引用,而输出参数是指针.
但我无法弄清楚为什么不应该通过引用传递输入/输出参数(我将输出参数放在一边).在stackoverflow上有很多与这个问题相关的主题:例如,在这里,接受的答案清楚地说明了这一点
它主要是关于风格
但是如果
如果您希望能够传递null,则必须使用指针
那么,如果我想避免指针为空,总是需要一个指针是什么意思?为什么只使用输入参数的引用?
我正在记录JavaScript API.我正在关注谷歌风格指南,但我没有发现标签的顺序.
我通常会记录一个这样的变量:
/**
 * @description Radius of the circle
 * @private
 * @memberOf Circle
 * @type {Number}
 * @default
 */
Circle.prototype._radius = 1;
如您所见,我使用自己的订单编写标签,这是我认为最直观的订单.
以下是按字母顺序排列标签的相同文档:
/**
 * @default
 * @description Radius of the circle
 * @memberOf Circle
 * @private
 * @type {Number}
 */
Circle.prototype._radius = 1;
尽管如此,我有一个明确定义的顺序(按字母顺序),我发现这有点令人困惑,因为它会混淆评论的自然顺序.这就是为什么我正在寻找一种方法来编写具有特定官方订单的标签.
甚至还有这些标签的正式订单?
谢谢
这个问题与另一个问题有关.建议和接受的解决方案是:
Returns:
       (tuple): tuple containing:                        
                    arg1: First Argument
                    arg2: Second Argument
这个解决方案不起作用,至少对我而言.不解析带有arg1和arg2描述的缩进子块.
我应如何管理多的回报sphinx,sphinx.ext.napoleon和谷歌文档字符串风格?
我在eclipse luna的checkstyle插件中使用了谷歌java风格.在我的java文档中看到这个错误,但似乎无法找到如何解决它.这是次要的,但它困扰我.
我的javadoc:
/**
   * This is a description of something
   * 
   * @throws Exception
   */
错误在@throws行上,错误:
At-clause should have a non-empty description
现在有人以简单的方式将现有项目中的所有文档字符串从reStructured Text转换为Google格式吗?
看起来拿破仑可以做类似的事情,但看起来很复杂,所以我想我以前是否有人这样做过.任何想法将不胜感激.
python docstring google-style-guide python-sphinx sphinx-napoleon
c++ ×4
python ×4
docstring ×2
c ×1
checkstyle ×1
cpplint ×1
java ×1
javascript ×1
jsdoc ×1
parameters ×1
reference ×1
tags ×1