A static C++ object-oriented programming (SCOOP) paradigmc mixing benefits of traditional OOP and generic programming
Nicolas Burrus · Alexandre Duret-Lutz · Thierry Géraud · David Lesage · Raphaël Poss
Object-oriented and generic programming are both supported in C++. OOP provides high expressiveness whereas GP leads to more efficient programs by avoiding dynamic typing. This paper presents SCOOP, a new paradigm which enables both classical OO design and high performance in C++ by mixing OOP and GP. We show how classical and advanced OO features such as virtual methods, multiple inheritance, argument covariance, virtual types and multimethods can be implemented in a fully statically typed model, hence without run-time overhead.