#ifndef SRC_ENUMPARSER_HH #define SRC_ENUMPARSER_HH // Copyright Carsten Graeser 2012 #include <dune/common/typetraits.hh> #include <dune/solvers/solvers/solver.hh> #include "enums.hh" template <class Enum> struct StringToEnum : public Dune::NotImplemented {}; template <> struct StringToEnum<Config::FrictionModel> { static Config::FrictionModel convert(std::string const &s); }; template <> struct StringToEnum<Config::stateModel> { static Config::stateModel convert(std::string const &s); }; template <> struct StringToEnum<Config::scheme> { static Config::scheme convert(std::string const &s); }; template <> struct StringToEnum<Solver::VerbosityMode> { static Solver::VerbosityMode convert(std::string const &s); }; template <class Enum> typename Dune::enable_if< !Dune::IsBaseOf<Dune::NotImplemented, StringToEnum<Enum>>::value, std::istream &>::type operator>>(std::istream &lhs, Enum &e); #endif