Forked from
agnumpde / dune-tectonic
388 commits behind the upstream repository.
-
Elias Pipping authoredElias Pipping authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
enum_parser.cc 573 B
// Copyright Carsten Graeser 2012
#include <dune/common/exceptions.hh>
#include <dune/common/typetraits.hh>
template <class EnumType> struct StringToEnum : public Dune::NotImplemented {};
template <class EnumType>
typename Dune::enable_if<
!Dune::IsBaseOf<Dune::NotImplemented, StringToEnum<EnumType>>::value,
std::istream &>::type
operator>>(std::istream &lhs, EnumType &e) {
std::string s;
lhs >> s;
try {
e = StringToEnum<EnumType>::convert(s);
}
catch (typename Dune::Exception) {
lhs.setstate(std::ios_base::failbit);
}
return lhs;
}