diff options
author | Frediano Ziglio <fziglio@redhat.com> | 2018-02-06 22:28:23 +0000 |
---|---|---|
committer | Frediano Ziglio <fziglio@redhat.com> | 2018-02-08 14:26:10 +0000 |
commit | 5088afb05a63d1e4b087b631278a64fecfcd5cd6 (patch) | |
tree | 9ef479b67d30019b3d573359c2f31f4a4303f00c /docs | |
parent | c2faefc2e107d9d6037080918e3aa0746d3d5c06 (diff) |
style: Update style to include some C++ element
This style is used by other SPICE projects like spice-streaming-agent.
See discussion "Coding style and naming conventions for C++" at
https://lists.freedesktop.org/archives/spice-devel/2018-January/041562.html.
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Lukáš Hrázký <lhrazky@redhat.com>
Diffstat (limited to 'docs')
-rw-r--r-- | docs/spice_style.txt | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/docs/spice_style.txt b/docs/spice_style.txt index f5d13642..6fdba48c 100644 --- a/docs/spice_style.txt +++ b/docs/spice_style.txt @@ -380,3 +380,55 @@ Also in source (no header) files you must include `config.h` at the beginning so #include "spice_server.h" ---- + +C++ +--- +C\++ style follows C style if not specified otherwise. +The C+\+11 dialect is assumed by default. No attempts will be made to +restrict the code to older variants of C+\+. +For compatibility reasons don't use more recent C++ dialects. + +Method names +~~~~~~~~~~~~ + +Method names should use lower case and separate words with +underscores. + + +Namespaces +~~~~~~~~~~ + +Namespaces should use lower case and separate words with underscores. +Namespace blocks should not increase indentation. +Namespaces can be nested. Namespace closing brackets for nested +namespaces can be placed together on the same line, but for +readability reasons the closure should specify the namespace with a +comment. + +[source,cpp] +---- +namespace spice { +namespace streaming_agent { + +class ClassInsideNamespace { +... +}; + +}} // namespace spice::streaming_agent +---- + +The `using namespace` construct should never be used in headers. It should +be used sparingly in source files, and only within the body of short +functions. + +Preferred alternatives to `using namespace` include: + +* using declarations ++ +[source,cpp] +using spice::streaming_agent::some_class; ++ +* namespace aliases ++ +[source,cpp] +namespace ssa = spice::streaming_agent; |