Menu

famouso::mw::attributes::detail::RequirementChecker< Prov, Req, compileError, FilteredReq, ReqIter > Struct Template Reference

Checks the given attribute requirement against the given provision. The check result can be accessed using the result type. More...

#include <RequirementChecker.h>

Data Structures

struct  comparatorExtractor
 The comparator used for checking the values of the attributes.
struct  comparatorExtractor< famouso::mw::attributes::Null, dummy >
struct  provision_assertion
struct  provision_assertion< Pr, typename boost::mpl::end< Pr >::type >

Public Types

typedef RequirementChecker type
 This type.
typedef boost::mpl::integral_c_tag tag
typedef bool value_type
typedef boost::mpl::eval_if_c
< (!notContained::value
&&valueFits), nextResult,
boost::mpl::bool_< false >
>::type 
result

Public Member Functions

 operator bool () const

Static Public Attributes

static const bool value = result::value
 The final result for the check of the whole requirement against the given provision.

Detailed Description

template<typename Prov, typename Req, bool compileError = true, typename FilteredReq = typename boost::mpl::filter_view< typename Req::sequence, RequirablePred >::type, typename ReqIter = typename boost::mpl::begin<FilteredReq>::type>
struct famouso::mw::attributes::detail::RequirementChecker< Prov, Req, compileError, FilteredReq, ReqIter >

Checks the given attribute requirement against the given provision. The check result can be accessed using the result type.

It can be configured if this struct should generate a compile error finding the first violated condition. In this case result will always be boost::mpl::bool_<true> of course. However the compile error generation can be turned off just generating warnings in case of a condition violation.

Template Parameters:
Prov The attribute set representing the provision
Req The attribute set representing the requirement
compileError Switch to turn compile errors on and off
ReqIter The iterator to the current requirement attribute, should be left at default from the outside

Member Typedef Documentation

template<typename Prov, typename Req, bool compileError = true, typename FilteredReq = typename boost::mpl::filter_view< typename Req::sequence, RequirablePred >::type, typename ReqIter = typename boost::mpl::begin<FilteredReq>::type>
typedef boost::mpl::eval_if_c< (!notContained::value && valueFits), nextResult, boost::mpl::bool_<false> >::type famouso::mw::attributes::detail::RequirementChecker< Prov, Req, compileError, FilteredReq, ReqIter >::result
template<typename Prov, typename Req, bool compileError = true, typename FilteredReq = typename boost::mpl::filter_view< typename Req::sequence, RequirablePred >::type, typename ReqIter = typename boost::mpl::begin<FilteredReq>::type>
typedef boost::mpl::integral_c_tag famouso::mw::attributes::detail::RequirementChecker< Prov, Req, compileError, FilteredReq, ReqIter >::tag
template<typename Prov, typename Req, bool compileError = true, typename FilteredReq = typename boost::mpl::filter_view< typename Req::sequence, RequirablePred >::type, typename ReqIter = typename boost::mpl::begin<FilteredReq>::type>
typedef RequirementChecker famouso::mw::attributes::detail::RequirementChecker< Prov, Req, compileError, FilteredReq, ReqIter >::type

This type.

!

template<typename Prov, typename Req, bool compileError = true, typename FilteredReq = typename boost::mpl::filter_view< typename Req::sequence, RequirablePred >::type, typename ReqIter = typename boost::mpl::begin<FilteredReq>::type>
typedef bool famouso::mw::attributes::detail::RequirementChecker< Prov, Req, compileError, FilteredReq, ReqIter >::value_type

Member Function Documentation

template<typename Prov, typename Req, bool compileError = true, typename FilteredReq = typename boost::mpl::filter_view< typename Req::sequence, RequirablePred >::type, typename ReqIter = typename boost::mpl::begin<FilteredReq>::type>
famouso::mw::attributes::detail::RequirementChecker< Prov, Req, compileError, FilteredReq, ReqIter >::operator bool (  )  const [inline]

Field Documentation

template<typename Prov, typename Req, bool compileError = true, typename FilteredReq = typename boost::mpl::filter_view< typename Req::sequence, RequirablePred >::type, typename ReqIter = typename boost::mpl::begin<FilteredReq>::type>
const bool famouso::mw::attributes::detail::RequirementChecker< Prov, Req, compileError, FilteredReq, ReqIter >::value = result::value [static]

The final result for the check of the whole requirement against the given provision.

It is true if and only if every attribute of the requirement can be found in the provision and each of these pairs have fitting values.

Referenced by famouso::mw::attributes::detail::RequirementChecker< Prov, Req, compileError, FilteredReq, ReqIter >::operator bool().


The documentation for this struct was generated from the following file: