Modernize DetDesc
- mixture: move validity checks on parameters to a location prior to where they can generate a SIGFPE
- replace std::unique_ptr with boost::optional
- add (UN)LIKELY hints
- remove commented out code
- prefer boost::string_ref over const std::string&
- prefer lambda
- reduce duplication
- remove SVN/CVS keywords
- less verbose line spacing
- prefer implicit destructors
- prefer direct member initialization
- remove commented out code
- add final
- prefer non-virtual destructor if possible
- prefer std::make_unique
- prefer '\n' over std::endl
- do not do explicit cleanup in destructor if it will be done implicitly
- prefer range-based for loops