Changes between Version 18 and Version 19 of FAQ

Show
Ignore:
Timestamp:
05/22/09 16:21:37 (4 years ago)
Author:
mloskot
Comment:

A: What the heck is concept?

Legend:

Unmodified
Added
Removed
Modified
  • FAQ

    v18 v19  
    1616As mentioned above, GGL is a general purpose geometry library and as such it does not implement the [http://www.opengeospatial.org/standards/ OpenGIS Simple Features Specifications] exactly and completely. There are many ''differences''. Please, check the [http://geometrylibrary.geodan.nl/ogc.html OGC page] in documentation to find detailed explanation. 
    1717 
    18  
    19  
    2018== What does GGL stand for? == 
    2119 
     
    2826== What the heck is concept? == 
    2927 
    30 The term ''concept'' is often used in GGL documentation. It is one of fundamental terms. 
     28The term ''concept'' is often used in GGL documentation. It is one of the fundamentals of generic programming in C++ where class and function template parameters are used to represent abstract data types, and these types usually must satisfy a set of requirements. 
     29 
     30[http://www.boost.org/users/people/dave_abrahams.html David Abrahams] and [http://www.boost.org/users/people/jeremy_siek.html Jeremy Siek] from [http://www.boost.org/ Boost] project explained the idea of ''concept'' very well in [http://www.boost.org/community/generic_programming.html Generic Programming Techniques] article: 
     31 
     32 ''A concept is a set of requirements consisting of valid expressions, associated types, invariants, and complexity guarantees. A type that satisfies the requirements is said to model the concept.'' 
     33 
     34GGL uses [http://www.boost.org/doc/libs/release/libs/concept_check/concept_check.htm Boost Concept Check Library (BCCL)] to define concept checking classes, specify and verify concept requirements. The mechanism of concepts use standard C++ and introduce no run-time overhead as it is compile-time technique. 
    3135 
    3236== Why multipoint, multiline and multipolygon live in separated module? ==