Of course people still "can" distributed the sources under the
LGPLv3. However we provide COPYING.LESSER with additional grants.
Solution: specify these grants in the header of each source file.
* There is no clear reason why the map should hold const std::strings
* This class is never derived, there doesn't seem to be a compelling
reason to ever do so, so no need to make virtual members
* In general const member data is an anti-pattern, the *only* reason
is to prevent assignability, and the accepted idiom for that is to
to declare the assigment operator private. This change does so, and
also prevents copy construction.
Updated:
src/metdata.hpp: Remove explicit "const" from key of std::map<>
because the key is implicitly const already (see
http://en.cppreference.com/w/cpp/container/map and
http://www.cplusplus.com/reference/map/map/).
On some platforms (such as z/OS UNIX System Services) explicitly
declaring the map key as "const" causes template expansion errors
as it tries to create separate allocators for "const const std::string"
and "const std::string" only to find that they clash. (Presumably
some compilers collapse these into one earlier.)
There are no template expansion errors if the map key is left to be
implicitly const.