12 #ifndef BOOST_MPL11_FIELD_HPP
13 #define BOOST_MPL11_FIELD_HPP
22 namespace boost {
namespace mpl11 {
23 template <
typename Left,
typename Right,
typename>
24 struct Field : false_ { };
27 struct instantiate<Field> {
28 template <
typename Left,
typename Right = Left>
31 template <
typename Datatype>
32 struct with<Datatype> : true_ {
33 template <
typename x,
typename y>
34 using quot_impl = mult<box<x>, recip<box<y>>>;
37 using recip_impl = quot<one<Datatype>, box<x>>;
41 template <
typename x,
typename y>
44 typename datatype<typename x::type>::type,
45 typename datatype<typename y::type>::type
46 >::template quot_impl<typename x::type, typename y::type>
51 Field<typename datatype<typename x::type>::type>::
52 template recip_impl<typename x::type>
56 #endif // !BOOST_MPL11_FIELD_HPP
Forward declares the Field typeclass.
Multiplicative inverse of x.
Definition: field.hpp:50
Multiplication of x by the multiplicative inverse of y.
Definition: field.hpp:42
Forwards to boost/mpl11/integer.hpp.
Forward declares the Ring typeclass.