>>3 C++ is inconsistent in its design and its corner-cases have its own corner-cases and thousands of little intricate details that create incompatibilities between types, templates and class inheritance(sometimes all three at same time).
Are you sure its not the quickest way to end up insane?