This issue gives an example, and shows how to get the intended effect. Don't forget to emulate as natural a syntax as possible for the client code. Some languages, including the emerging SQL3 standard, continue to struggle with the decision of whether to support single or multiple inheritance. This GotW invites you to consider the issues. Here's an exercise that demonstrates why and how to use typename , using an idiom that's common in the standard library.
Forward declarations are a great way to eliminate needless compile-time dependencies.
Contrary to popular opinion, the keyword inline is not some sort of magic bullet. It is, however, a useful tool when employed properly. The answer is determined by name lookup, but you're almost certain to find some of the details surprising . Your mission, should you choose to accept it, is to write one. The Fast Pimpl Idiom.