Back to Arangodb

Reference

3rdParty/boost/1.78.0/libs/contract/doc/html/reference.html

3.12.9.122.5 KB
Original Source

| | Home | Libraries | People | FAQ | More |


Reference

Header <boost/contract.hpp>

Include all header files required by this library at once (for convenience).

All header files boost/contract/*.hpp are independent from one another and can be included one-by-one to reduce the amount of code to compile from this library in user code (but this was measured to not make an appreciable difference in compile-time so boost/contract.hpp can be included directly in most cases). Instead the headers boost/contract/core/*.hpp are not independent from other library headers and they are automatically included by the boost/contract/*.hpp headers (so the boost/contract/core/*.hpp headers are usually not directly included by programmers).

All files under the boost/contract/detail/ directory, names within the boost::contract::detail namespace, names prefixed by boost_contract_detail... and BOOST_CONTRACT_DETAIL... (in any namesapce, including user's code) are reserved for internal use of this library and should never be used directly by programmers.

See Also:

Getting Started

Header <boost/contract/assert.hpp>

Assert contract conditions.

[BOOST\_CONTRACT\_ASSERT](BOOST_CONTRACT_ASSERT.html "Macro BOOST\_CONTRACT\_ASSERT")(cond)[BOOST\_CONTRACT\_ASSERT\_AUDIT](BOOST_CONTRACT_AS_idm33640.html "Macro BOOST\_CONTRACT\_ASSERT\_AUDIT")(cond)[BOOST\_CONTRACT\_ASSERT\_AXIOM](BOOST_CONTRACT_AS_idm33665.html "Macro BOOST\_CONTRACT\_ASSERT\_AXIOM")(cond)

Header <boost/contract/base_types.hpp>

Specify inheritance form base classes (for subcontracting).

[BOOST\_CONTRACT\_BASE\_TYPES](BOOST_CONTRACT_BASE_TYPES.html "Macro BOOST\_CONTRACT\_BASE\_TYPES")(...)

Header <boost/contract/call_if.hpp>

Statically disable compilation and execution of functor calls.

| | Note | |

These facilities allow to emulate C++17 if constexpr statements when used together with functor templates (and C++14 generic lambdas). Therefore, they are not useful on C++17 compilers where if constexpr can be directly used instead.

|

namespaceboost{namespacecontract{template\<boolPred,typenameThen,typenameThenResult=internal\_type\>struct[call\_if\_statement](boost/contract/call_if_statement.html "Struct template call\_if\_statement");template\<typenameThen\>struct[call\_if\_statement](boost/contract/call_if_statement_idm33758.html "Struct template call\_if\_statement<false, Then, internal\_type>")\<false,Then,internal\_type\>;template\<typenameThen\>struct[call\_if\_statement](boost/contract/call_if_statement_idm33861.html "Struct template call\_if\_statement<true, Then, internal\_type>")\<true,Then,internal\_type\>;template\<typenameThen,typenameThenResult\>struct[call\_if\_statement](boost/contract/call_if_statement_idm33902.html "Struct template call\_if\_statement<true, Then, ThenResult>")\<true,Then,ThenResult\>;template\<typenameThen\>struct[call\_if\_statement](boost/contract/call_if_statement_idm34007.html "Struct template call\_if\_statement<true, Then, void>")\<true,Then,void\>;template\<boolPred,typenameThen\>[call\_if\_statement](boost/contract/call_if_statement.html "Struct template call\_if\_statement")\<Pred,Then\>[call\_if\_c](boost/contract/call_if_c.html "Function template call\_if\_c")(Then);template\<typenamePred,typenameThen\>[call\_if\_statement](boost/contract/call_if_statement.html "Struct template call\_if\_statement")\<Pred::value,Then\>[call\_if](boost/contract/call_if.html "Function template call\_if")(Then);template\<boolPred,typenameThen\>bool[condition\_if\_c](boost/contract/condition_if_c.html "Function template condition\_if\_c")(Then,bool=true);template\<typenamePred,typenameThen\>bool[condition\_if](boost/contract/condition_if.html "Function template condition\_if")(Then,bool=true);}}

Header <boost/contract/check.hpp>

RAII object that checks contracts.

namespaceboost{namespacecontract{class[check](boost/contract/check.html "Class check");}}

Header <boost/contract/constructor.hpp>

Program contracts for constructors.

namespaceboost{namespacecontract{template\<typenameClass\>[specify\_old\_postcondition\_except](boost/contract/specify_old_postc_idm35810.html "Class template specify\_old\_postcondition\_except")[constructor](boost/contract/constructor.html "Function template constructor")(Class\*);}}

Header <boost/contract/core/access.hpp>

Allow to declare invariants, base types, etc all as private members.

namespaceboost{namespacecontract{class[access](boost/contract/access.html "Class access");}}

Header <boost/contract/core/check_macro.hpp>

Macros for implementation checks.

[BOOST\_CONTRACT\_CHECK](BOOST_CONTRACT_CHECK.html "Macro BOOST\_CONTRACT\_CHECK")(cond)[BOOST\_CONTRACT\_CHECK\_AUDIT](BOOST_CONTRACT_CHECK_AUDIT.html "Macro BOOST\_CONTRACT\_CHECK\_AUDIT")(cond)[BOOST\_CONTRACT\_CHECK\_AXIOM](BOOST_CONTRACT_CHECK_AXIOM.html "Macro BOOST\_CONTRACT\_CHECK\_AXIOM")(cond)

Header <boost/contract/core/config.hpp>

Configure this library compile-time and run-time behaviours.

[BOOST\_CONTRACT\_DYN\_LINK](BOOST_CONTRACT_DYN_LINK.html "Macro BOOST\_CONTRACT\_DYN\_LINK")[BOOST\_CONTRACT\_STATIC\_LINK](BOOST_CONTRACT_STATIC_LINK.html "Macro BOOST\_CONTRACT\_STATIC\_LINK")[BOOST\_CONTRACT\_HEADER\_ONLY](BOOST_CONTRACT_HEADER_ONLY.html "Macro BOOST\_CONTRACT\_HEADER\_ONLY")[BOOST\_CONTRACT\_DISABLE\_THREADS](BOOST_CONTRACT_DI_idm34640.html "Macro BOOST\_CONTRACT\_DISABLE\_THREADS")[BOOST\_CONTRACT\_MAX\_ARGS](BOOST_CONTRACT_MAX_ARGS.html "Macro BOOST\_CONTRACT\_MAX\_ARGS")[BOOST\_CONTRACT\_BASES\_TYPEDEF](BOOST_CONTRACT_BA_idm34666.html "Macro BOOST\_CONTRACT\_BASES\_TYPEDEF")[BOOST\_CONTRACT\_INVARIANT\_FUNC](BOOST_CONTRACT_IN_idm34685.html "Macro BOOST\_CONTRACT\_INVARIANT\_FUNC")[BOOST\_CONTRACT\_STATIC\_INVARIANT\_FUNC](BOOST_CONTRACT_ST_idm34707.html "Macro BOOST\_CONTRACT\_STATIC\_INVARIANT\_FUNC")[BOOST\_CONTRACT\_PERMISSIVE](BOOST_CONTRACT_PERMISSIVE.html "Macro BOOST\_CONTRACT\_PERMISSIVE")[BOOST\_CONTRACT\_ON\_MISSING\_CHECK\_DECL](BOOST_CONTRACT_ON_idm34756.html "Macro BOOST\_CONTRACT\_ON\_MISSING\_CHECK\_DECL")[BOOST\_CONTRACT\_PRECONDITIONS\_DISABLE\_NO\_ASSERTION](BOOST_CONTRACT_PR_idm34776.html "Macro BOOST\_CONTRACT\_PRECONDITIONS\_DISABLE\_NO\_ASSERTION")[BOOST\_CONTRACT\_ALL\_DISABLE\_NO\_ASSERTION](BOOST_CONTRACT_AL_idm34788.html "Macro BOOST\_CONTRACT\_ALL\_DISABLE\_NO\_ASSERTION")[BOOST\_CONTRACT\_AUDITS](BOOST_CONTRACT_AUDITS.html "Macro BOOST\_CONTRACT\_AUDITS")[BOOST\_CONTRACT\_NO\_CHECKS](BOOST_CONTRACT_NO_CHECKS.html "Macro BOOST\_CONTRACT\_NO\_CHECKS")[BOOST\_CONTRACT\_NO\_PRECONDITIONS](BOOST_CONTRACT_NO_idm34826.html "Macro BOOST\_CONTRACT\_NO\_PRECONDITIONS")[BOOST\_CONTRACT\_NO\_POSTCONDITIONS](BOOST_CONTRACT_NO_idm34839.html "Macro BOOST\_CONTRACT\_NO\_POSTCONDITIONS")[BOOST\_CONTRACT\_NO\_EXCEPTS](BOOST_CONTRACT_NO_EXCEPTS.html "Macro BOOST\_CONTRACT\_NO\_EXCEPTS")[BOOST\_CONTRACT\_NO\_ENTRY\_INVARIANTS](BOOST_CONTRACT_NO_idm34879.html "Macro BOOST\_CONTRACT\_NO\_ENTRY\_INVARIANTS")[BOOST\_CONTRACT\_NO\_EXIT\_INVARIANTS](BOOST_CONTRACT_NO_idm34895.html "Macro BOOST\_CONTRACT\_NO\_EXIT\_INVARIANTS")[BOOST\_CONTRACT\_NO\_INVARIANTS](BOOST_CONTRACT_NO_idm34911.html "Macro BOOST\_CONTRACT\_NO\_INVARIANTS")[BOOST\_CONTRACT\_NO\_OLDS](BOOST_CONTRACT_NO_OLDS.html "Macro BOOST\_CONTRACT\_NO\_OLDS")[BOOST\_CONTRACT\_NO\_CONSTRUCTORS](BOOST_CONTRACT_NO_idm34946.html "Macro BOOST\_CONTRACT\_NO\_CONSTRUCTORS")[BOOST\_CONTRACT\_NO\_DESTRUCTORS](BOOST_CONTRACT_NO_idm34970.html "Macro BOOST\_CONTRACT\_NO\_DESTRUCTORS")[BOOST\_CONTRACT\_NO\_PUBLIC\_FUNCTIONS](BOOST_CONTRACT_NO_idm34988.html "Macro BOOST\_CONTRACT\_NO\_PUBLIC\_FUNCTIONS")[BOOST\_CONTRACT\_NO\_FUNCTIONS](BOOST_CONTRACT_NO_idm35008.html "Macro BOOST\_CONTRACT\_NO\_FUNCTIONS")[BOOST\_CONTRACT\_NO\_CONDITIONS](BOOST_CONTRACT_NO_idm35029.html "Macro BOOST\_CONTRACT\_NO\_CONDITIONS")[BOOST\_CONTRACT\_NO\_ALL](BOOST_CONTRACT_NO_ALL.html "Macro BOOST\_CONTRACT\_NO\_ALL")

Header <boost/contract/core/constructor_precondition.hpp>

Program preconditions for constructors.

namespaceboost{namespacecontract{template\<typenameClass\>class[constructor\_precondition](boost/contract/constructor_precondition.html "Class template constructor\_precondition");}}

Header <boost/contract/core/exception.hpp>

Handle contract assertion failures.

namespaceboost{namespacecontract{class[assertion\_failure](boost/contract/assertion_failure.html "Class assertion\_failure");class[bad\_virtual\_result\_cast](boost/contract/bad_virtual_result_cast.html "Class bad\_virtual\_result\_cast");class[exception](boost/contract/exception.html "Class exception");enum[from](boost/contract/from.html "Type from");typedefboost::function\<void(from)\>[from\_failure\_handler](boost/contract/from_failure_handler.html "Type definition from\_failure\_handler");typedefboost::function\<void()\>[failure\_handler](boost/contract/failure_handler.html "Type definition failure\_handler");failure\_handlerconst&[set\_check\_failure](boost/contract/set_check_failure.html "Function set\_check\_failure")(failure\_handlerconst&);failure\_handler[get\_check\_failure](boost/contract/get_check_failure.html "Function get\_check\_failure")();void[check\_failure](boost/contract/check_failure.html "Function check\_failure")();from\_failure\_handlerconst&[set\_precondition\_failure](boost/contract/set_precondition_failure.html "Function set\_precondition\_failure")(from\_failure\_handlerconst&);from\_failure\_handler[get\_precondition\_failure](boost/contract/get_precondition_failure.html "Function get\_precondition\_failure")();void[precondition\_failure](boost/contract/precondition_failure.html "Function precondition\_failure")(from);from\_failure\_handlerconst&[set\_postcondition\_failure](boost/contract/set_postcondition_failure.html "Function set\_postcondition\_failure")(from\_failure\_handlerconst&);from\_failure\_handler[get\_postcondition\_failure](boost/contract/get_postcondition_failure.html "Function get\_postcondition\_failure")();void[postcondition\_failure](boost/contract/postcondition_failure.html "Function postcondition\_failure")(from);from\_failure\_handlerconst&[set\_except\_failure](boost/contract/set_except_failure.html "Function set\_except\_failure")(from\_failure\_handlerconst&);from\_failure\_handler[get\_except\_failure](boost/contract/get_except_failure.html "Function get\_except\_failure")();void[except\_failure](boost/contract/except_failure.html "Function except\_failure")(from);from\_failure\_handlerconst&[set\_old\_failure](boost/contract/set_old_failure.html "Function set\_old\_failure")(from\_failure\_handlerconst&);from\_failure\_handler[get\_old\_failure](boost/contract/get_old_failure.html "Function get\_old\_failure")();void[old\_failure](boost/contract/old_failure.html "Function old\_failure")(from);from\_failure\_handlerconst&[set\_entry\_invariant\_failure](boost/contract/set_entry_invaria_idm35602.html "Function set\_entry\_invariant\_failure")(from\_failure\_handlerconst&);from\_failure\_handler[get\_entry\_invariant\_failure](boost/contract/get_entry_invaria_idm35625.html "Function get\_entry\_invariant\_failure")();void[entry\_invariant\_failure](boost/contract/entry_invariant_failure.html "Function entry\_invariant\_failure")(from);from\_failure\_handlerconst&[set\_exit\_invariant\_failure](boost/contract/set_exit_invariant_failure.html "Function set\_exit\_invariant\_failure")(from\_failure\_handlerconst&);from\_failure\_handler[get\_exit\_invariant\_failure](boost/contract/get_exit_invariant_failure.html "Function get\_exit\_invariant\_failure")();void[exit\_invariant\_failure](boost/contract/exit_invariant_failure.html "Function exit\_invariant\_failure")(from);from\_failure\_handlerconst&[set\_invariant\_failure](boost/contract/set_invariant_failure.html "Function set\_invariant\_failure")(from\_failure\_handlerconst&);}}

Header <boost/contract/core/specify.hpp>

Specify preconditions, old values copied at body, postconditions, and exception guarantees.

Preconditions, old values copied at body, postconditions, and exception guarantees are all optionals but, when they are specified, they need to be specified in that order.

namespaceboost{namespacecontract{class[specify\_except](boost/contract/specify_except.html "Class specify\_except");class[specify\_nothing](boost/contract/specify_nothing.html "Class specify\_nothing");template\<typenameVirtualResult=void\>class[specify\_old\_postcondition\_except](boost/contract/specify_old_postc_idm35810.html "Class template specify\_old\_postcondition\_except");template\<typenameVirtualResult=void\>class[specify\_postcondition\_except](boost/contract/specify_postcondi_idm35905.html "Class template specify\_postcondition\_except");template\<typenameVirtualResult=void\>class[specify\_precondition\_old\_postcondition\_except](boost/contract/specify_precondit_idm35978.html "Class template specify\_precondition\_old\_postcondition\_except");}}

Header <boost/contract/core/virtual.hpp>

Handle virtual public functions with contracts (for subcontracting).

namespaceboost{namespacecontract{class[virtual\_](boost/contract/virtual_.html "Class virtual\_");}}

Header <boost/contract/destructor.hpp>

Program contracts for destructors.

namespaceboost{namespacecontract{template\<typenameClass\>[specify\_old\_postcondition\_except](boost/contract/specify_old_postc_idm35810.html "Class template specify\_old\_postcondition\_except")[destructor](boost/contract/destructor.html "Function template destructor")(Class\*);}}

Header <boost/contract/function.hpp>

Program contracts for (non-public) functions.

namespaceboost{namespacecontract{[specify\_precondition\_old\_postcondition\_except](boost/contract/specify_precondit_idm35978.html "Class template specify\_precondition\_old\_postcondition\_except")[function](boost/contract/function.html "Function function")();}}

Header <boost/contract/old.hpp>

Handle old values.

[BOOST\_CONTRACT\_OLDOF](BOOST_CONTRACT_OLDOF.html "Macro BOOST\_CONTRACT\_OLDOF")(...)
namespaceboost{namespacecontract{template\<typenameT\>struct[is\_old\_value\_copyable](boost/contract/is_old_value_copyable.html "Struct template is\_old\_value\_copyable");class[old\_pointer](boost/contract/old_pointer.html "Class old\_pointer");template\<typenameT\>class[old\_ptr](boost/contract/old_ptr.html "Class template old\_ptr");template\<typenameT\>class[old\_ptr\_if\_copyable](boost/contract/old_ptr_if_copyable.html "Class template old\_ptr\_if\_copyable");class[old\_value](boost/contract/old_value.html "Class old\_value");template\<typenameT\>struct[old\_value\_copy](boost/contract/old_value_copy.html "Struct template old\_value\_copy");[old\_value](boost/contract/old_value.html "Class old\_value")[null\_old](boost/contract/null_old.html "Function null\_old")();[old\_pointer](boost/contract/old_pointer.html "Class old\_pointer")[make\_old](boost/contract/make_old_idm36489.html "Function make\_old")([old\_value](boost/contract/old_value.html "Class old\_value")const&);[old\_pointer](boost/contract/old_pointer.html "Class old\_pointer")[make\_old](boost/contract/make_old_idm36517.html "Function make\_old")([virtual\_](boost/contract/virtual_.html "Class virtual\_")\*,[old\_value](boost/contract/old_value.html "Class old\_value")const&);bool[copy\_old](boost/contract/copy_old_idm36554.html "Function copy\_old")();bool[copy\_old](boost/contract/copy_old_idm36570.html "Function copy\_old")([virtual\_](boost/contract/virtual_.html "Class virtual\_")\*);}}

Header <boost/contract/override.hpp>

Handle public function overrides (for subcontracting).

[BOOST\_CONTRACT\_NAMED\_OVERRIDE](BOOST_CONTRACT_NA_idm36634.html "Macro BOOST\_CONTRACT\_NAMED\_OVERRIDE")(type_name, func_name)[BOOST\_CONTRACT\_OVERRIDE](BOOST_CONTRACT_OVERRIDE.html "Macro BOOST\_CONTRACT\_OVERRIDE")(func_name)[BOOST\_CONTRACT\_OVERRIDES](BOOST_CONTRACT_OVERRIDES.html "Macro BOOST\_CONTRACT\_OVERRIDES")(...)

Header <boost/contract/public_function.hpp>

Program contracts for public functions (including subcontracting).

The different overloads handle public functions that are static, virtual void, virtual non-void, overriding void, and overriding non-void.

namespaceboost{namespacecontract{template\<typenameClass\>[specify\_precondition\_old\_postcondition\_except](boost/contract/specify_precondit_idm35978.html "Class template specify\_precondition\_old\_postcondition\_except")[public\_function](boost/contract/public_function_idm36700.html "Function template public\_function")();template\<typenameClass\>[specify\_precondition\_old\_postcondition\_except](boost/contract/specify_precondit_idm35978.html "Class template specify\_precondition\_old\_postcondition\_except")[public\_function](boost/contract/public_function_idm36726.html "Function template public\_function")(Class\*);template\<typenameClass\>[specify\_precondition\_old\_postcondition\_except](boost/contract/specify_precondit_idm35978.html "Class template specify\_precondition\_old\_postcondition\_except")[public\_function](boost/contract/public_function_idm36760.html "Function template public\_function")([virtual\_](boost/contract/virtual_.html "Class virtual\_")\*,Class\*);template\<typenameVirtualResult,typenameClass\>[specify\_precondition\_old\_postcondition\_except](boost/contract/specify_precondit_idm35978.html "Class template specify\_precondition\_old\_postcondition\_except")\<VirtualResult\>[public\_function](boost/contract/public_function_idm36806.html "Function template public\_function")([virtual\_](boost/contract/virtual_.html "Class virtual\_")\*,VirtualResult&,Class\*);template\<typenameOverride,typenameF,typenameClass,typename...Args\>[specify\_precondition\_old\_postcondition\_except](boost/contract/specify_precondit_idm35978.html "Class template specify\_precondition\_old\_postcondition\_except")[public\_function](boost/contract/public_function_idm36863.html "Function template public\_function")([virtual\_](boost/contract/virtual_.html "Class virtual\_")\*,F,Class\*,Args&...);template\<typenameOverride,typenameVirtualResult,typenameF,typenameClass,typename...Args\>[specify\_precondition\_old\_postcondition\_except](boost/contract/specify_precondit_idm35978.html "Class template specify\_precondition\_old\_postcondition\_except")\<VirtualResult\>[public\_function](boost/contract/public_function_idm36937.html "Function template public\_function")([virtual\_](boost/contract/virtual_.html "Class virtual\_")\*,VirtualResult&,F,Class\*,Args&...);}}

Header <boost/contract_macro.hpp>

Allow to disable contracts to completely remove their compile-time and run-time overhead.

This header automatically includes all header files boost/contract/*.hpp necessary to use its macros.

Almost all the macros defined in this header file are variadic macros. On compilers that do not support variadic macros, programmers can manually code #ifndef BOOST_CONTRACT_NO_... statements instead (see Disable Contract Compilation).

[BOOST\_CONTRACT\_PRECONDITION](BOOST_CONTRACT_PR_idm37029.html "Macro BOOST\_CONTRACT\_PRECONDITION")(...)[BOOST\_CONTRACT\_POSTCONDITION](BOOST_CONTRACT_PO_idm37056.html "Macro BOOST\_CONTRACT\_POSTCONDITION")(...)[BOOST\_CONTRACT\_EXCEPT](BOOST_CONTRACT_EXCEPT.html "Macro BOOST\_CONTRACT\_EXCEPT")(...)[BOOST\_CONTRACT\_OLD](BOOST_CONTRACT_OLD.html "Macro BOOST\_CONTRACT\_OLD")(...)[BOOST\_CONTRACT\_OLD\_PTR](BOOST_CONTRACT_OLD_PTR.html "Macro BOOST\_CONTRACT\_OLD\_PTR")(...)[BOOST\_CONTRACT\_OLD\_PTR\_IF\_COPYABLE](BOOST_CONTRACT_OL_idm37198.html "Macro BOOST\_CONTRACT\_OLD\_PTR\_IF\_COPYABLE")(...)[BOOST\_CONTRACT\_INVARIANT](BOOST_CONTRACT_INVARIANT.html "Macro BOOST\_CONTRACT\_INVARIANT")(...)[BOOST\_CONTRACT\_INVARIANT\_VOLATILE](BOOST_CONTRACT_IN_idm37284.html "Macro BOOST\_CONTRACT\_INVARIANT\_VOLATILE")(...)[BOOST\_CONTRACT\_STATIC\_INVARIANT](BOOST_CONTRACT_ST_idm37315.html "Macro BOOST\_CONTRACT\_STATIC\_INVARIANT")(...)[BOOST\_CONTRACT\_CONSTRUCTOR](BOOST_CONTRACT_CONSTRUCTOR.html "Macro BOOST\_CONTRACT\_CONSTRUCTOR")(...)[BOOST\_CONTRACT\_CONSTRUCTOR\_PRECONDITION](BOOST_CONTRACT_CO_idm37391.html "Macro BOOST\_CONTRACT\_CONSTRUCTOR\_PRECONDITION")(...)[BOOST\_CONTRACT\_DESTRUCTOR](BOOST_CONTRACT_DESTRUCTOR.html "Macro BOOST\_CONTRACT\_DESTRUCTOR")(...)[BOOST\_CONTRACT\_FUNCTION](BOOST_CONTRACT_FUNCTION.html "Macro BOOST\_CONTRACT\_FUNCTION")()[BOOST\_CONTRACT\_STATIC\_PUBLIC\_FUNCTION](BOOST_CONTRACT_ST_idm37505.html "Macro BOOST\_CONTRACT\_STATIC\_PUBLIC\_FUNCTION")(...)[BOOST\_CONTRACT\_PUBLIC\_FUNCTION](BOOST_CONTRACT_PU_idm37543.html "Macro BOOST\_CONTRACT\_PUBLIC\_FUNCTION")(...)[BOOST\_CONTRACT\_PUBLIC\_FUNCTION\_OVERRIDE](BOOST_CONTRACT_PU_idm37611.html "Macro BOOST\_CONTRACT\_PUBLIC\_FUNCTION\_OVERRIDE")(...)

| | Copyright © 2008-2019 Lorenzo Caminiti

Distributed under the Boost Software License, Version 1.0 (see accompanying file LICENSE_1_0.txt or a copy at http://www.boost.org/LICENSE_1_0.txt)

|