metafunction which simplifies building SocketPolicy instantiations. It takes any number (ok, up
to a maximum of 6) of policy classes as an argument (in any order). It will sort these arguments
into the SocketPolicy template arguments. If for some axis no class is specified, it's slot will
- be filled with \c Unspecified \e Axis. Additionally, the first Argument may optionally be ab
+ be filled with \c Unspecified \e Axis. Additionally, the first Argument may optionally be an
arbitrary SocketPolicy. It will provide default values for unspecified axis</dd>
<dt>\c template \c SocketPolicyIsBaseOf < \e base, \e derived ></dt> <dd>This template
The \c connect member in this example will only be enabled, it the communication policy of the
socket handle is ConnectedCommunicationPolicy (or a derived type). See <a
- href="http://www.boost.org/libs/utility/enable_if.html">Boost.Enable_If</a> for a discussion of
- the third argument (\c senf::ConnectedCommunicationPolicyIs is based on the \c boost::enable_if
- template).
+ href="http://www.boost.org/doc/libs/release/libs/utility/enable_if.html">Boost.Enable_If</a>
+ for a discussion of the third argument (\c senf::ConnectedCommunicationPolicyIs is based on
+ the \c boost::enable_if template).
\see \ref extend_policy \n
- <a href="http://www.boost.org/libs/utility/enable_if.html">The Boost enable_if utility</a> \n
- <a href="http://www.boost.org/libs/mpl/doc/index.html">The Boost.MPL library</a> \n
- <a href="http://www.boost.org/libs/preprocessor/doc/index.html">The Boost.Preprocessor library</a>
+ <a href="http://www.boost.org/doc/libs/release/libs/utility/enable_if.html">The Boost enable_if utility</a> \n
+ <a href="http://www.boost.org/doc/libs/release/libs/mpl/doc/index.html">The Boost.MPL library</a> \n
+ <a href="http://www.boost.org/doc/libs/release/libs/preprocessor/doc/index.html">The Boost.Preprocessor library</a>
\idea We could combine all the \e Axis \c Is templates into a single template. Since the \e
trait argument will automatically specify the axis to be used, it is not necessary to specify
// Custom includes
//#include "SocketPolicy.mpp"
-///////////////////////////////hh.p////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
namespace senf {
/// \addtogroup policy_group
- /// @{
+ //\{
// This may be adapted to change the supported policies (however, ClientSocketHandle and
// ServerSocketHandle will probably have to be adjusted accordingly)
/** \brief Enable template overload depending on policy value
This template is an example of the \c If \e Axis \c Is family of templates. It is used like
- <a href="http://www.boost.org/libs/utility/enable_if.html">Boost.enable_if</a> to enable a
- templated overload only, if the AddressingPolicy of \e Axis is compatible with \c Trait
- (that is the AddressingPolicy of \c Policy is derived from \c Trait).
+ <a href="http://www.boost.org/doc/libs/release/libs/utility/enable_if.html">Boost.enable_if</a>
+ to enable a templated overload only, if the AddressingPolicy of \e Axis is compatible with
+ \c Trait (that is the AddressingPolicy of \c Policy is derived from \c Trait).
\see policy_group
*/
SocketHandle with policy \c Base).
The metafunction will return true (that is inherits from \c boost::true_type, see the <a
- href="http://www.boost.org/libs/mpl/doc/index.html">Boost.MPL</a> library documentation for
+ href="http://www.boost.org/doc/libs/release/libs/mpl/doc/index.html">Boost.MPL</a> library documentation for
more information) if each policy class in \c Base is a baseclass of (or the same as) the
corresponding policy class in \c Derived.
# endif
- /// @}
+ //\}
}
-//////////////////////////////hh.e////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
#include "SocketPolicy.ih"
//#include "SocketPolicy.cci"
#include "SocketPolicy.ct"