Dear all,

I would like to start "allowing" the use of modern C++ (by which I mean C++
11/14) in the RDKit. I think this is an important step both for code
quality in the toolkit itself and for allowing us (the developers) to
continue to learn and use modern tools. Who knows, it may even help with
performance. :-)

This move would, of course, break compatibility with some older compilers.
Here's one view of compiler support for C++11 and some of C++14:

It looks like g++ 4.8+ and VC++ 2013 are both fine with most/all C++11
VC++ 2015 does even better and g++5 is very solid. Clang, which is the
default on the Mac and available for both windows and linux, has great

The thing I am most concerned about is that RHEL6 only includes g++ 4.4.
RHEL7 is fine, but I would guess that most large organizations aren't that
up-to-date yet. I know of at least one (ahem) that is hasn't even finished
the move to RHEL6. It looks like an "enterprise" alternative here is to use
the RedHat Developer Toolset, but I don't have personal experience with
that yet. Clang is always an option, but it something people will have to
install on their own.

Here's how I would propose that we proceed:
 - If no fundamental objections come up here, we'll create a document
listing the C++ features that should not be used (yet) due to compiler
compatibility. We'll also agree on a new baseline version of Boost that can
be assumed to be present.
 - I will create a compatibility branch based on the current master. Bug
fixes will be ported back onto this branch for the next release or two, but
new features will not be added.
 - We can start using modern C++ on master.

One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.;117567292;y
Rdkit-devel mailing list

Reply via email to