Must interface with old code written in C, old C libraries, and earlier versions of C++.
Examples of legacy problem
- Use of libraries - standard I/O library
- Use of preprocessor to create symbolic definded constant rather than const variable.
- Use of simple string functions that manipulate arrays of character values rather than using newer string data type
- Use of various different names and implementation techniques for boolean values: c.f. bool
- Overuse of global variables: c.f. encapsulation
- Use of various different container libraries: c.f. Standard Template Library
- Use of various techniques to circumvent type system interfering with general purpose containers: c.f. Templates