general.hpp File Reference

General plans for the concepts module. More...

Go to the source code of this file.


namespace  OKlib::Concepts

Concept definitions and accompanying generic tests.

namespace  OKlib

All components of the OKlibrary.

Detailed Description

General plans for the concepts module.

Everything here will be moved to their own modules (in respective concepts-subdirectories).
Move special concepts to their new local places

Would be good to have refactoring-tools ready for the necessary renamings.

Cannibalise the approach from 200203: Transfer if appropriate concepts from OKsolver/Experimental/AllgKlassen200203/ConceptDefinitions.hpp, and once finished, mark this file to be obsolete.
Develop concepts:
  • atomic conditions
  • literals
  • partial assignments
  • active clause-sets
  • clauses and clause-sets.
Develop a general strategy for creating generic tests:
  • In the current scheme with basic tests for one, two, three objects:
    • Shouldn't there be a template parameter for the number of objects?
    • Where is the syntax check applied?
    • In general, how to avoid overlapping tests (or should this be ignored in general, and handled only in special cases?!) ?
  • As proposed somewhere in the specific concept (test) files, should the specific parts of the test-names (for example, the concept to be tested) become namespaces? Similar for the concept-tags and archetypes? Thus having new sub-namespaces (e.g.)
    • Concepts::tags
    • Concepts::archetypes
    • Concepts::tests::special_concept
Warnings: Eliminate all warnings.
Tests: Move to the new test system.
Technical problems when formulating concepts:
  • What is the difference for example between
     bool b = static_cast<bool>(e); 
     bool b = e; 
    ?! I would assume that here there is none. And in general?
Complete the concepts and tests belonging to the standard:

Definition in file general.hpp.