| Home | Libraries | People | FAQ | More

## Macro BOOST_CONTRACT_NO_ALL

BOOST_CONTRACT_NO_ALL — Automatically defined by this library when contracts are not checked at all (neither for specifications nor for implementations).

## Synopsis

    // In header: <boost/contract/core/config.hpp>

    BOOST_CONTRACT_NO_ALL

## Description

This macro is not a configuration macro and this library will generate a compile-time error if users try to define it directly. This library will automatically define this macro when users define all `BOOST_CONTRACT_NO_INVARIANTS`, `BOOST_CONTRACT_NO_PRECONDITIONS`, `BOOST_CONTRACT_NO_POSTCONDITIONS`, `BOOST_CONTRACT_NO_EXCEPTS`, and `BOOST_CONTRACT_NO_CHECKS`. For example, users can manually program `#ifndef` statements in their code using this macro to avoid including the `boost/contract.hpp` header all together:

    #include <boost/contract/core/config.hpp>
    #ifndef BOOST_CONTRACT_NO_ALL
        #include <boost/contract.hpp>
    #endif

Or, use the `boost/contract_macro.hpp` header and related macros instead (because the `boost/contract_macro.hpp` header is already optimized to not include other headers from this library when contracts are not checked, but recommended only for applications where it is truly necessary to completely remove contract code compilation from production code).

See Also:

Disable Contract Compilation