template< typename T, typename V = typename std::remove_cv < typename std::remove_reference < decltype (std::declval <T> ().value ())>::type >::type> V getFieldByValue( SField const& field) const;