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

Frediano Ziglio fziglio at redhat.com
Thu Feb 8 14:35:04 UTC 2018


> 
> > On 8 Feb 2018, at 15:16, Lukáš Hrázký <lhrazky at redhat.com> wrote:
> > 
> > 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.
> 
> I notice you have C++, C\++ and C+\+ within a few lines from one another. Not
> sure why. I thought you needed to escape + only if at the beginning of a
> line.
> 

I though too... but for some reasons code kept doing weird stuff, looks
like the ++ is also some kind of code block quotation so something like

test ++code whatever++ end

is formatting the "code whatever" using monospace fonts.

But if you quote any of the + in the single "C++" (header) for
some reasons the backslash is taken verbatim!

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

Frediano


More information about the Spice-devel mailing list