[Spice-devel] [PATCH spice-server v3] style: Update style to include some C++ element

Lukáš Hrázký lhrazky at redhat.com
Thu Feb 8 14:16:58 UTC 2018


On Thu, 2018-02-08 at 14:03 +0000, Frediano Ziglio wrote:
> 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 at redhat.com>
> ---
>  docs/spice_style.txt | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 52 insertions(+)
> 
> Changes in v3:
> - fix commit message grammar.
> 
> Changes in v2:
> - more details for namespace usages;
> - specify C++ dialect;
> - fix class indentation.
> diff --git a/docs/spice_style.txt b/docs/spice_style.txt
> index f5d13642..29c1756f 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\++ follows C style if not specified otherwise.

Sorry, one more grammar improvement:
"C\++ style follows the C style"

> +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;

Let's get it in, further improvements welcome.

Acked-by: Lukáš Hrázký <lhrazky at redhat.com>


More information about the Spice-devel mailing list