12 #ifndef BOOST_MPL11_GROUP_HPP
13 #define BOOST_MPL11_GROUP_HPP
22 namespace boost {
namespace mpl11 {
24 struct instantiate<Group> {
25 template <
typename Left,
typename Right = Left>
28 template <
typename Datatype>
29 struct with<Datatype> : true_ {
30 template <
typename x,
typename y>
31 using minus_impl = plus<box<x>, negate<box<y>>>;
34 using negate_impl = minus<zero<Datatype>, box<x>>;
44 namespace boost {
namespace mpl11 {
45 template <
typename Left,
typename Right,
typename>
46 struct Group : false_ { };
48 template <
typename x,
typename y>
51 typename datatype<typename x::type>::type,
52 typename datatype<typename y::type>::type
53 >::template minus_impl<typename x::type, typename y::type>
58 Group<typename datatype<typename x::type>::type>::
59 template negate_impl<typename x::type>
63 #endif // !BOOST_MPL11_GROUP_HPP
Forward declares the Core module.
Forward declares the Group typeclass.
Forwards to boost/mpl11/fwd/integer.hpp.
Forward declares the Monoid typeclass.
Forwards to boost/mpl11/integer.hpp.