C++ Feature Whitelist/Blacklist

Brendan Higgins brendanhiggins at google.com
Wed Nov 2 10:09:25 AEDT 2016


At the OpenBMC meetup last week we discussed creating an authoritative C++
style guide as well as a feature whitelist/blacklist. I am going to try to
get an early style guide out fairly soonish (this week or next) that we can
discuss, but while I do that I would like to bring up the topic of
explicitly supported/unsupported features to discuss on the mailing list.
First off, I think it is something that would have much more discussion and
stronger opinions that would be convenient on gerrit/I would like to start
the discussion earlier. I also think that there will probably only be a few
things on that list, so discussion via email should not be overly
burdensome.

At the meeting Patrick brought up two features to blacklist:

   - Streams and stream style operators.
   - Virtual functions/runtime polymorphism

In the case of virtual functions, I get the sense that the use is more
discouraged rather than completely forbidden.

For the whitelist, the only current candidate is:

   - exceptions

In general, I suppose the notion of a whitelist is rather silly, but
exceptions have historically been a controversial feature of C++, so I
figured it best to explicitly call out.

I do not want to mischaracterize the arguments in favor of this proposal;
it also does not seem fair to offer up a viewpoint with little explanation
and critique it in the same breath, so instead I will post a follow up
email with what I propose for the whitelist/blacklist.

Cheers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20161101/c38ae57e/attachment.html>


More information about the openbmc mailing list