像许多人一样,我一直在尝试C + 11带来的不同功能.我最喜欢的一个是"基于范围的循环".
我明白那个:
for(Type& v : a) { ... }
Run Code Online (Sandbox Code Playgroud)
相当于:
for(auto iv = begin(a); iv != end(a); ++iv)
{
Type& v = *iv;
...
}
Run Code Online (Sandbox Code Playgroud)
而这begin()只是返回a.begin()标准容器.
但是,如果我想让我的自定义类型"基于范围的循环" - 意识到什么?
如果我只是专注begin()和end()?
如果我的自定义类型属于命名空间xml,我应该定义xml::begin()还是std::begin()?
简而言之,这样做的准则是什么?
C++有几种类型的风格:MFC,Boost,Google等.我想检查这些风格并确定哪一种最适合我的项目,但我想阅读官方风格指南.有没有人有他们通常使用的官方指南?
这是我找到的两个.我打赌还有更多:
注意:这不是关于哪种风格最好的讨论......只是要求人们当前使用的官方风格指南.请不要抨击您不喜欢的其他风格指南.
附带问题:是否有一个好的工具可以检查源代码并判断它是否与给定的样式指南相匹配?