Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Programming language concepts and paradigms
Programming language concepts and paradigms
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
ML for the working programmer
Eiffel: the language
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Covariance and contravariance: conflict without a cause
ACM Transactions on Programming Languages and Systems (TOPLAS)
Typechecking and modules for multimethods
ACM Transactions on Programming Languages and Systems (TOPLAS)
Controllable morphing of compatible planar triangulations
ACM Transactions on Graphics (TOG)
The STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library
The STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library
PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Proceedings of the 2003 Eurographics/ACM SIGGRAPH symposium on Geometry processing
Compile time symbolic derivation with C++ templates
COOTS'98 Proceedings of the 4th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 4
Editorial message: special track on the programming languages
Proceedings of the 2004 ACM symposium on Applied computing
Simple and safe SQL queries with c++ templates
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Simple and safe SQL queries with C++ templates
Science of Computer Programming
Hi-index | 0.00 |
We present a programming technique for implementing type safe covariance in C++. In a sense, we implement most of Bruce's matching approach to the covariance dilemma in C++. The appeal in our approach is that it relies on existing mechanisms, specifically templates, and does not require any modification to the existing language. The practical value of the technique was demonstrated in its successful incorporation in a large software body. We identify the ingredients of a programming language required for applying the technique, and discuss extensions to other languages.