#### strand::require

Forward a requirement to the underlying executor.

    template<
        typename Property>
    constraint< can_require< const Executor &, Property >::value &&!is_convertible< Property, execution::blocking_t::always_t >::value, strand< typename decay< typename require_result< const Executor &, Property >::type >::type > >::type require(
        const Property & p) const;

Do not call this function directly. It is intended for use with the `require` customisation point.

For example:

    asio::strand<my_executor_type> ex1 = ...;
    auto ex2 = asio::require(ex1,
        asio::execution::blocking.never);