Document Type





C++, flexibility, programming language enhancement, overload operators




Programming Languages and Compilers


C++ has gained broad acceptance as an object-oriented evolutionary extension to the C language, but it severely constrains methods for operating on class objects by forcing all data manipulation through an interface which assumes that all basic operations can be implemented as they are written: as unary or binary operators. C++ allows great flexibility in the creation of complex data structures which can perform the same functionality as built-in types of many other languages, but unfortunately it does not allow an equivalent level of flexibility so that operators acting on those data types can achieve the same level of efficiency as their counterparts in language-level implementations. This limitation becomes even more pronounced on high-performance computers whose advanced features require considerable cooperation between the algorithm, the compiler, and the architecture for maximum performance. This paper describes a language enhancement proposal: a special member function which interacts with overload operators as complete expressions.



To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.