• The general idea behind minimizing compilation dependencies is to depend on declarations instead of definitions. Two approaches based on this idea are Handle classes and Interface classes.

  • Library header files should exist in full and declaration-only forms. This applies regardless of whether templates are involved.