Go to the documentation of this file.
36 #ifndef __POINTMATCHER_PARAMETRIZABLE_H
37 #define __POINTMATCHER_PARAMETRIZABLE_H
44 #include <boost/lexical_cast.hpp>
46 #define BOOST_ASSIGN_MAX_PARAMS 6
47 #include <boost/assign/list_inserter.hpp>
53 template<
typename Target>
57 return std::numeric_limits<Target>::infinity();
58 else if (arg ==
"-inf")
59 return -std::numeric_limits<Target>::infinity();
60 else if (arg ==
"nan")
61 return std::numeric_limits<Target>::quiet_NaN();
63 return boost::lexical_cast<Target>(arg);
67 template<
typename Target>
70 return lexical_cast_scalar_to_string<Target>(
std::string(arg));
75 template<
typename Target,
typename Source>
78 return boost::lexical_cast<Target>(arg);
94 return lexical_cast<std::string>(value);
113 return lexical_cast<S>(a) < lexical_cast<S>(b);
179 #endif // __POINTMATCHER_PARAMETRIZABLE_H
friend std::ostream & operator<<(std::ostream &o, const Parametrizable &p)
Dump the documentation of this object to a stream.
LexicalComparison comp
pointer to comparison function
Parametrizable()
Construct a documentation of parameters from a description in the source.
std::string toParam(const S &value)
Return the a string value using lexical_cast.
const ParametersDoc parametersDoc
documentation of parameters
std::string doc
short documentation
ParametersUsed parametersUsed
parameters whose value has actually been read
S get(const std::string ¶mName)
Return the value of paramName, lexically-casted to S.
std::ostream & operator<<(std::ostream &o, const Parametrizable::ParameterDoc &p)
Dump the documentation of this parameter to a stream.
friend std::ostream & operator<<(std::ostream &o, const ParameterDoc &p)
Dump the documentation of this parameter to a stream.
std::set< std::string > ParametersUsed
Parameters whose value has been read.
bool(* LexicalComparison)(std::string a, std::string b)
A function that returns whether a is smaller than b.
Target lexical_cast_scalar_to_string(const std::string &arg)
A lexical casting function that is an improvements over boost::lexical_cast that can handle "inf",...
std::vector< ParameterDoc > ParametersDoc
The documentation of all parameters.
std::string defaultValue
default value
Parameters parameters
parameters with their values encoded in string
ParameterDoc(const std::string &name, const std::string &doc, const std::string &defaultValue, const std::string &minValue, const std::string &maxValue, LexicalComparison comp)
Construct a parameter documentation with bounds.
std::string maxValue
if bounds are checked, maxmimu value
static bool Comp(std::string a, std::string b)
Return whether a < b, lexically casted to S.
An exception thrown when one tries to fetch the value of an unexisting parameter.
std::string getParamValueString(const std::string ¶mName)
Get the value of a parameter, as a string.
virtual ~Parametrizable()
Virtual destructor, do nothing.
InvalidParameter(const std::string &reason)
Construct an invalid-parameter exception.
std::string Parameter
alias
The superclass of classes that are constructed using generic parameters. This class provides the para...
The documentation of a parameter.
Target lexical_cast(const Source &arg)
General case of lexical cast, use boost.
Functions and classes that are not dependant on scalar type are defined in this namespace.
std::string minValue
if bounds are checked, minimum value
const std::string className
name of the class
std::map< std::string, Parameter > Parameters
Parameters stored as a map of string->string.
mp2p_icp
Author(s):
autogenerated on Fri Dec 20 2024 03:45:59