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@xxxxxxxxxx> > --- > 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@xxxxxxxxxx> _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel