// $Id$
//
-// Copyright (C) 2007
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
//
// This program is free software; you can redistribute it and/or modify
namespace senf {
namespace mpl {
- /** \defgroup senfmpl Low-level template meta programming helpers
+ /** \defgroup senfmpl Template meta programming helpers
*/
/** \brief Marker class for empty default values etc.
to mark missing arguments
\note Don't use this as an empty base class. We may add some informative members to this.
+ \ingroup senfmpl
*/
struct nil {};
never called.
This number is than forwarded as template argument to \c select which is specialized for
- each case. Therefore, <tt>choice<A></tt> has a \c frobble() member whereas
- <tt>choice<B></tt> has a \c dazzle() member.
+ each case. Therefore, <tt>choice\<A\></tt> has a \c frobble() member whereas
+ <tt>choice\<B\></tt> has a \c dazzle() member.
\see \ref SENF_MPL_RV
\ingroup senfmpl
*/
template <class _> struct take_class {};
+#ifndef SENF_MPL_SLOT_NOEXPAND
+
/** \brief Define MPL slot
The slot macros \ref SENF_MPL_SLOT_DEF(), \ref SENF_MPL_SLOT_SET() and \ref
# define SENF_MPL_SLOT_GET(name) \
SENF_MPL_SLOT_I_GET(name)
+#endif
+
}}
///////////////////////////////hh.e////////////////////////////////////////