Like this article? We recommend
Notes and References
-  In subtype or inclusion polymorphism, an object can be viewed as belonging to different classes. Signature-based polymorphism allows these classes to be fully disjoint.
-  Steve Vinoski, "A Time for Reflection."
-  Gerald Baumgartner and Vincent Russo, "Signatures: A Language Extension for Improving Type Abstraction and Subtype Polymorphism in C++."
-  Gamma, Helm, Johnson, Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software (GoF), Addison-Wesley, 1994.
-  "Technical Report on C++ Performance."
-  Todd Veldhuizen, "Techniques for Scientific C++."
-  "Type Abstraction Using Signatures."
-  Chris Cleeland, Douglas C. Schmidt and Timothy H. Harrison, "External Polymorphism: An Object Structural Pattern for Transparently Extending C++ Concrete Data Types."
-  Christopher Diggins, "C++ with Interfaces," CUJ vol 22 no 9.
-  http://brew.qualcomm.com.
-  D. Vandevoorde and N. M. Josuttis, C++ Templates: The Complete Guide, Addison-Wesley, 2002.
-  J. Järvi, J.Willcock, H. Hinnant, and A. Lumsdaine, "Function overloading based on arbitrary properties of types," C/C++ Users Journal, 21(6):25–32, June 2003.