// $Id$
//
-// Copyright (C) 2008
+// Copyright (C) 2008
// Fraunhofer Institute for Open Communication Systems (FOKUS)
// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
#include <boost/bind.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/at.hpp>
+#include "senf/Utils/IgnoreValue.hh"
-// ///////////////////////////mpp.p////////////////////////////////////////
-#elif BOOST_PP_IS_ITERATING // ////////////////////////////////////////////
-// ////////////////////////////////////////////////////////////////////////
+//-///////////////////////////mpp.p////////////////////////////////////////
+#elif BOOST_PP_IS_ITERATING //-////////////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
// Local Macros
#define mpp_ArgTypeN(n) BOOST_PP_CAT(BOOST_PP_CAT(arg, BOOST_PP_INC(n)), _type)
#define mpp_BindArgs_(z,n,d) BOOST_PP_CAT( _, BOOST_PP_INC(BOOST_PP_INC(n)))
#define mpp_TrailingBindArgs() BOOST_PP_ENUM_TRAILING( BOOST_PP_ITERATION(), mpp_BindArgs_, _ )
-// ////////////////////////////////////////////////////////////////////////
-#if BOOST_PP_ITERATION_FLAGS()==1 // //////////////////////////////////////
-// ////////////////////////////////////////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
+#if BOOST_PP_ITERATION_FLAGS()==1 //-//////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
// Header file (.hh)
private:
ParsedCommandOverload(Function fn);
- virtual void v_execute(boost::any & rv, std::ostream & os, ParseCommandInfo const & command)
+ virtual void v_execute(boost::any & rv, std::ostream & os, ParseCommandInfo const & command)
const;
Function function_;
private:
ParsedCommandOverload(Function fn);
- virtual void v_execute(boost::any & rv, std::ostream & os, ParseCommandInfo const & command)
+ virtual void v_execute(boost::any & rv, std::ostream & os, ParseCommandInfo const & command)
const;
Function function_;
};
-// ////////////////////////////////////////////////////////////////////////
-#elif BOOST_PP_ITERATION_FLAGS()==2 // ////////////////////////////////////
-// ////////////////////////////////////////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
+#elif BOOST_PP_ITERATION_FLAGS()==2 //-////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
// inline template implementation (.cti)
senf::console::ParsedCommandOverload<FunctionTraits, ReturnValue, BOOST_PP_ITERATION() >::
arg() const
{
- return static_cast< detail::ArgumentInfo<
+ return static_cast< detail::ArgumentInfo<
typename boost::mpl::at_c<arg_types, n>::type > & >(arg(n));
}
prefix_
senf::console::ParsedCommandOverload<FunctionTraits, ReturnValue, BOOST_PP_ITERATION()>::
ParsedCommandOverload(Function fn)
- : function_ (fn)
+ : function_ (fn)
{
# define mpp_l(z,n,d) addParameter< mpp_ArgTypeN(n) >();
BOOST_PP_REPEAT( BOOST_PP_ITERATION(), mpp_l, _ )
senf::console::ParsedCommandOverload<FunctionTraits, void, BOOST_PP_ITERATION() >::
arg() const
{
- return static_cast< detail::ArgumentInfo<
+ return static_cast< detail::ArgumentInfo<
typename boost::mpl::at_c<arg_types, n>::type > & >(arg(n));
}
prefix_
senf::console::ParsedCommandOverload<FunctionTraits, void, BOOST_PP_ITERATION() >::
ParsedCommandOverload(Function fn)
- : function_ (fn)
+ : function_ (fn)
{
# define mpp_l(z,n,d) addParameter< mpp_ArgTypeN(n) >();
BOOST_PP_REPEAT( BOOST_PP_ITERATION(), mpp_l, _ )
# undef mpp_l
}
-// ////////////////////////////////////////////////////////////////////////
-#elif BOOST_PP_ITERATION_FLAGS()==3 // ////////////////////////////////////
-// ////////////////////////////////////////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
+#elif BOOST_PP_ITERATION_FLAGS()==3 //-////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
// non-inline template implementation (.ct)
if ( nArgs > BOOST_PP_ITERATION() )
throw SyntaxErrorException("invalid number of arguments");
int nDefaults ( BOOST_PP_ITERATION() - nArgs );
- (void) nDefaults;
+ senf::IGNORE( nDefaults );
typedef typename boost::range_reverse_iterator<const ParseCommandInfo::ArgumentsRange>::type
riterator;
ArgumentTraits< mpp_ArgTypeN(n) >::parse( *(i++), mpp_ArgN(n) ); \
}
# define mpp_l_(z,n,d) mpp_l(z, BOOST_PP_SUB(BOOST_PP_DEC(BOOST_PP_ITERATION()), n), d)
- BOOST_PP_REPEAT( BOOST_PP_ITERATION(), mpp_l_, _ )
+ BOOST_PP_REPEAT( BOOST_PP_ITERATION(), mpp_l_, _ )
# undef mpp_l
# undef mpp_l_
if ( nArgs > BOOST_PP_ITERATION() )
throw SyntaxErrorException("invalid number of arguments");
int nDefaults ( BOOST_PP_ITERATION() - nArgs );
- (void) nDefaults;
+ senf::IGNORE( nDefaults );
typedef typename boost::range_reverse_iterator<const ParseCommandInfo::ArgumentsRange>::type
riterator;
ArgumentTraits< mpp_ArgTypeN(n) >::parse( *(i++), mpp_ArgN(n) ); \
}
# define mpp_l_(z,n,d) mpp_l(z, BOOST_PP_SUB(BOOST_PP_DEC(BOOST_PP_ITERATION()), n), d)
- BOOST_PP_REPEAT( BOOST_PP_ITERATION(), mpp_l_, _ )
+ BOOST_PP_REPEAT( BOOST_PP_ITERATION(), mpp_l_, _ )
# undef mpp_l
# undef mpp_l_
function_(os mpp_TrailingArgs());
}
-// ////////////////////////////////////////////////////////////////////////
-#elif BOOST_PP_ITERATION_FLAGS()==4 // ////////////////////////////////////
-// ////////////////////////////////////////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
+#elif BOOST_PP_ITERATION_FLAGS()==4 //-////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
// CreateParsedCommandOverload
};
-// ////////////////////////////////////////////////////////////////////////
-#elif BOOST_PP_ITERATION_FLAGS()==5 // ////////////////////////////////////
-// ////////////////////////////////////////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
+#elif BOOST_PP_ITERATION_FLAGS()==5 //-////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
// Create keyword arg forwarding functions
-template <BOOST_PP_ENUM_PARAMS( BOOST_PP_ITERATION(), class A ) >
+template <BOOST_PP_ENUM_PARAMS( BOOST_PP_ITERATION(), class A ) >
next_type arg ( BOOST_PP_ENUM_BINARY_PARAMS( BOOST_PP_ITERATION(), A, const & a ),
typename arg_params::match< BOOST_PP_ENUM_PARAMS( BOOST_PP_ITERATION(), A ) >::type
kw = arg_params()) {
return argInfo( kw(BOOST_PP_ENUM_PARAMS( BOOST_PP_ITERATION(), a )) );
}
-// ////////////////////////////////////////////////////////////////////////
-#endif // /////////////////////////////////////////////////////////////////
-// ////////////////////////////////////////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
+#endif //-/////////////////////////////////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
// Undefine local Macros
#undef mpp_TrailingBindArgs
#undef mpp_ArgN
#undef mpp_ArgTypeN
-// ////////////////////////////////////////////////////////////////////////
-#endif // /////////////////////////////////////////////////////////////////
-// ///////////////////////////mpp.e////////////////////////////////////////
+//-////////////////////////////////////////////////////////////////////////
+#endif //-/////////////////////////////////////////////////////////////////
+//-///////////////////////////mpp.e////////////////////////////////////////
\f
// Local Variables: