Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/generic_types/generic_types.tex

    r6a8ac0b r8f16086  
    10201020While \CC provides good backwards compatibility with C, it has a steep learning curve for many of its extensions.
    10211021For example, polymorphism is provided via three disjoint mechanisms: overloading, inheritance, and templates.
    1022 The overloading is restricted because resolution does not using the return type, inheritance requires learning object-oriented programming and coping with a restricted nominal-inheritance hierarchy, templates cannot be separately compiled resulting in compilation/code bloat and poor error messages, and determining how these mechanisms interact and which to use is confusing.
     1022The overloading is restricted because resolution does not use the return type, inheritance requires learning object-oriented programming and coping with a restricted nominal-inheritance hierarchy, templates cannot be separately compiled resulting in compilation/code bloat and poor error messages, and determining how these mechanisms interact and which to use is confusing.
    10231023In contrast, \CFA has a single facility for polymorphic code supporting type-safe separate-compilation of polymorphic functions and generic (opaque) types, which uniformly leverage the C procedural paradigm.
    10241024The key mechanism to support separate compilation is \CFA's \emph{explicit} use of assumed properties for a type.
Note: See TracChangeset for help on using the changeset viewer.