o rdkit gains a RDKit::common_properties namespace that contains common string value properties
o Dict.h and below gain getPropIfPresent that attempts to retrieve a property and returns
true/false on success or failure. This is used to optimize access.
o rdkit learns how to pass property keys by reference, not value.
A new namespace has been added to RDKit, common_properties
that contains the std::string values for commonly used
properties. This helps to avoid typos in string values
but also avoids a creation of std::strings from character
values. All accessors (has/get/clear and getPropIfPresent) now pass
the key by reference.
Additionally, getPropIfPresent removes the double lookup
of hasProp/getProp which can be a significant speedup
in the smiles and smarts parsers (10-20%)
instead of using the property map interface.
A nice side-effect is that the wart of having to use property maps to loop over bonds or atom neighbors
is now gone.
This potentially breaks lots of client C++ code.
Conformer.cpp: make sure we don't ask for space for zero atoms.
Kekulize.cpp: don't complain about marked bonds if we aren't removing markers.
molopstest.cpp: bad smiles corrected in one test.exe
ROMol.cpp, RWMol.cpp: extra preconditions added (should have been there all along)
Wrap/MolOps.cpp: docs for replacesubstructs.