You get link or bind errors from symbols being defined multiple times.
The template instantiation needs to include the type declarations it received as arguments. Your header files containing type declarations used in template classes might automatically be included several times.
Verify that you did not define functions in the header files that declare types used in templates. If you did, you must move them from the header file into a separate source file or make them inline.
Introduction
to the Collection Classes
Overall
Implementation Structure
Possible Implementation
Paths
Choosing One of the
Provided Implementation Variants
Instantiating the
Collection Classes