diff --git a/doc/CODING_STYLE.html b/doc/CODING_STYLE.html index 14362fcd..c2bb4616 100644 --- a/doc/CODING_STYLE.html +++ b/doc/CODING_STYLE.html @@ -608,9 +608,9 @@ namespace mynamespace { // All declarations are within the namespace scope. // Notice the lack of indentation. class MyClass { - public: - ... - void Foo(); + public: + ... + void Foo(); }; } // namespace mynamespace @@ -770,9 +770,9 @@ void Function2();
instead of
namespace myproject { class FooBar { - public: - static void Function1(); - static void Function2(); + public: + static void Function1(); + static void Function2(); }; } // namespace myproject@@ -1199,12 +1199,12 @@ other code, and to document that your class is copyable and/or cheaply movable if that's an API guarantee.
class Foo { - public: - Foo(Foo&& other) : field_(other.field) {} - // Bad, defines only move constructor, but not operator=. - - private: - Field field_; + public: + Foo(Foo&& other) : field_(other.field) {} + // Bad, defines only move constructor, but not operator=. + + private: + Field field_; };@@ -1788,9 +1788,9 @@ string& and overload it with another that takes
const char*
.
class MyClass { - public: - void Analyze(const string &text); - void Analyze(const char *text, size_t textlen); + public: + void Analyze(const string &text); + void Analyze(const char *text, size_t textlen); };@@ -3118,10 +3118,10 @@ For example, avoid patterns like:
class WOMBAT_TYPE(Foo) { // ... - public: - EXPAND_PUBLIC_WOMBAT_API(Foo) - - EXPAND_WOMBAT_COMPARISONS(Foo, ==, <) + public: + EXPAND_PUBLIC_WOMBAT_API(Foo) + + EXPAND_WOMBAT_COMPARISONS(Foo, ==, <) };@@ -3384,16 +3384,16 @@ that take
std::initializer_list<T>
, which is automatically
created from braced-init-list:
class MyType { - public: - // std::initializer_list references the underlying init list. - // It should be passed by value. - MyType(std::initializer_list<int> init_list) { - for (int i : init_list) append(i); - } - MyType& operator=(std::initializer_list<int> init_list) { - clear(); - for (int i : init_list) append(i); - } + public: + // std::initializer_list references the underlying init list. + // It should be passed by value. + MyType(std::initializer_list<int> init_list) { + for (int i : init_list) append(i); + } + MyType& operator=(std::initializer_list<int> init_list) { + clear(); + for (int i : init_list) append(i); + } }; MyType m{2, 3, 5, 7};@@ -3406,9 +3406,9 @@ constructors of data types, even if they do not have // Calls ordinary constructor as long as MyOtherType has no // std::initializer_list constructor. class MyOtherType { - public: - explicit MyOtherType(string); - MyOtherType(int, string); + public: + explicit MyOtherType(string); + MyOtherType(int, string); }; MyOtherType m = {1, "b"}; // If the constructor is explicit, you can't use the "= {}" form. @@ -5209,11 +5209,11 @@ not fit on a single line as you would wrap arguments in a
Unused parameters that are obvious from context may be omitted:
class Foo { - public: - Foo(Foo&&); - Foo(const Foo&); - Foo& operator=(Foo&&); - Foo& operator=(const Foo&); + public: + Foo(Foo&&); + Foo(const Foo&); + Foo& operator=(Foo&&); + Foo& operator=(const Foo&); };@@ -5221,13 +5221,13 @@ not fit on a single line as you would wrap arguments in a name in the function definition:
class Shape { - public: - virtual void Rotate(double radians) = 0; + public: + virtual void Rotate(double radians) = 0; }; class Circle : public Shape { - public: - void Rotate(double radians) override; + public: + void Rotate(double radians) override; }; void Circle::Rotate(double /*radians*/) {} @@ -5782,7 +5782,7 @@ beginning of the line.Sections in
+public
,protected
and -private
order, each indented two spaces.private
order, each indented one space.@@ -5793,23 +5793,23 @@ Comments for a discussion of what comments are needed) is:class MyClass : public OtherClass { - public: // Note the 1 space indent! - MyClass(); // Regular 2 space indent. - explicit MyClass(int var); - ~MyClass() {} - - void SomeFunction(); - void SomeFunctionThatDoesNothing() { - } - - void set_some_var(int var) { some_var_ = var; } - int some_var() const { return some_var_; } - - private: - bool SomeInternalFunction(); - - int some_var_; - int some_other_var_; + public: // Note the 1 space indent! + MyClass(); // Regular 2 space indent. + explicit MyClass(int var); + ~MyClass() {} + + void SomeFunction(); + void SomeFunctionThatDoesNothing() { + } + + void set_some_var(int var) { some_var_ = var; } + int some_var() const { return some_var_; } + + private: + bool SomeInternalFunction(); + + int some_var_; + int some_other_var_; };@@ -5821,7 +5821,7 @@ needed) is:The + one space.public:
,protected:
, andprivate:
keywords should be indented - two spaces.Except for the first instance, these keywords should be preceded by a blank line. This rule is @@ -5942,12 +5942,12 @@ int x[] = {0}; // Spaces around the colon in inheritance and initializer lists. class Foo : public Bar { - public: - // For inline function implementations, put spaces between the braces - // and the implementation itself. - Foo(int b) : Bar(), baz_(b) {} // No spaces inside empty braces. - void Reset() { baz_ = 0; } // Spaces separating braces from implementation. - ... + public: + // For inline function implementations, put spaces between the braces + // and the implementation itself. + Foo(int b) : Bar(), baz_(b) {} // No spaces inside empty braces. + void Reset() { baz_ = 0; } // Spaces separating braces from implementation. + ... Adding trailing whitespace can cause extra work for