Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.
PrevUpHomeNext

Macro BOOST_CONTRACT_INVARIANT_FUNC

BOOST_CONTRACT_INVARIANT_FUNC — Define the name of the class invariant member function (invariant by default).

Synopsis

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

BOOST_CONTRACT_INVARIANT_FUNC

Description

This macro expands to the name of the const and const volatile member functions that check class invariants and volatile class invariants respectively:

class u {
    friend class boost::contract::access;

    void BOOST_CONTRACT_INVARIANT_FUNC() const {
        BOOST_CONTRACT_ASSERT(...);
        ...
    }
    
    void BOOST_CONTRACT_INVARIANT_FUNC() const volatile {
        BOOST_CONTRACT_ASSERT(...);
        ...
    }

    ...
};

When used this way, users can redefine this macro if the invariant functions must have a name different from invariant (because of name clashes in user code, etc.).

[Note] Note

C++ does not allow to overload member functions based on the static classifier, so this macro must always be defined to be different than the function name defined for BOOST_CONTRACT_STATIC_INVARIANT_FUNC.

See Also:

Class Invariants, Volatile Public Functions


PrevUpHomeNext