You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2014/10/13 06:59:58 UTC
git commit: Update the Mesos Style Guide with C++11 and naming notes.
Repository: mesos
Updated Branches:
refs/heads/master 880c5a362 -> 0b092b1b0
Update the Mesos Style Guide with C++11 and naming notes.
Explicitly prohibit the use of namespace aliases. Give examples of
preferable way of using auto.
Review: https://reviews.apache.org/r/25622
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/0b092b1b
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/0b092b1b
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/0b092b1b
Branch: refs/heads/master
Commit: 0b092b1b010d5a98616aa41a14ddc35a6217f2a1
Parents: 880c5a3
Author: Alexander Rukletsov <al...@mesosphere.io>
Authored: Sun Oct 12 21:59:36 2014 -0700
Committer: Benjamin Hindman <be...@gmail.com>
Committed: Sun Oct 12 21:59:36 2014 -0700
----------------------------------------------------------------------
docs/mesos-c++-style-guide.md | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/0b092b1b/docs/mesos-c++-style-guide.md
----------------------------------------------------------------------
diff --git a/docs/mesos-c++-style-guide.md b/docs/mesos-c++-style-guide.md
index 59a39df..f50354c 100644
--- a/docs/mesos-c++-style-guide.md
+++ b/docs/mesos-c++-style-guide.md
@@ -16,7 +16,10 @@ The Mesos codebase follows the [Google C++ Style Guide](http://google-styleguide
### Function Names
* We use [lowerCamelCase](http://en.wikipedia.org/wiki/CamelCase#Variations_and_synonyms) for function names (Google uses mixed case for regular functions; and their accessors and mutators match the name of the variable).
-* Leave spaces around overloaded operators. e.g. `operator + (...);` rather than `operator+(...);`
+* Leave spaces around overloaded operators, e.g. `operator + (...);` rather than `operator+(...);`
+
+### Namespace Names
+* We do not use namespace aliases.
## Strings
* Strings used in log and error messages should end without a period.
@@ -84,9 +87,24 @@ Try<Duration> failoverTimeout =
* Elements inside classes (member variables and functions) should not be spaced apart by more than 1 blank line.
## C++11
+
We still support older compilers. The whitelist of supported C++11 features is:
+
* Static assertions.
* Multiple right angle brackets.
-* Type inference (`auto` and `decltype`).
+* Type inference (`auto` and `decltype`). The main goal is to increase code readability. Here are several examples:
+
+<pre>
+// 1: OK.
+const auto& i = values.find(keys.front());
+// Compare with
+const typename map::iterator& i = values.find(keys.front());
+
+// 2: Don't use.
+auto authorizer = LocalAuthorizer::create(acls);
+// Compare with
+Try<Owned<LocalAuthorizer>> authorizer = LocalAuthorizer::create();
+</pre>
+
* Rvalue references.
* Variadic templates.