#include "boost/concept/assert.hpp"
BOOST_CONCEPT_ASSERT((concept checking class template specialization));
Эффекты:вызывает сбой компиляции, если концепция не удовлетворена. Примечание:Этот макрос может использоваться в глобальном, классовом или функциональном диапазоне.
#include "boost/concept/requires.hpp"
template <…template parameters…>
BOOST_CONCEPT_REQUIRES(
((concept checking class template specialization1))
((concept checking class template specialization2))…
((concept checking class template specializationn)),
(function return type)
) function_template_name(…function parameters…)
Эффекты:вызывает сбой компиляции, если данные понятия не удовлетворены. Примечание:этот макрос предназначен для использования вместо возвращаемого типа шаблона функции.
#include "boost/concept_check.hpp"
template <class Func, class Return>
struct Generator;
template <class Func, class Return, class Arg>
struct UnaryFunction;
template <class Func, class Return, class First, class Second>
struct BinaryFunction;
template <class Func, class Arg>
struct UnaryPredicate;
template <class Func, class First, class Second>
struct BinaryPredicate;
template <class Func, class First, class Second>
struct Const_BinaryPredicate;
template <class Func, class Return>
struct AdaptableGenerator;
template <class Func, class Return, class Arg>
struct AdaptableUnaryFunction;
template <class Func, class First, class Second>
struct AdaptableBinaryFunction;
template <class Func, class Arg>
struct AdaptablePredicate;
template <class Func, class First, class Second>
struct AdaptableBinaryPredicate;
#include "boost/concept_archetype.hpp"
template <class T = int>
class null_archetype; // A type that models no concepts.
template <class Base = null_archetype>
class default_constructible_archetype;
template <class Base = null_archetype>
class assignable_archetype;
template <class Base = null_archetype>
class copy_constructible_archetype;
template <class Base = null_archetype>
class equality_comparable_archetype;
template <class T, class Base = null_archetype>
class convertible_to_archetype;
#include "boost/concept_archetype.hpp"
template <class Arg, class Return>
class unary_function_archetype;
template <class Arg1, class Arg2, class Return>
class binary_function_archetype;
template <class Arg>
class predicate_archetype;
template <class Arg1, class Arg2>
class binary_predicate_archetype;
<function_requires()>был обесценен в пользу<BOOST_CONCEPT_ASSERT>. Это означает, что<function_requires< Concept>();>становится<BOOST_CONCEPT_ASSERT((Concept));>(не забудьте<#include "boost/concept/assert.hpp">).
Для каждого из задокументированных здесь понятий библиотека включает идентичный класс проверки понятий, название которого оканчивается на «<Concept>». Например, помимо<RandomAccessIterator>, библиотека определяет шаблон класса<RandomAccessIteratorConcept>.
Статья Boost Concept Checking Reference раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.