From c29657e0d6bb707345584ac7a7f5ae5016f37297 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Sun, 28 Dec 2014 14:22:51 +0200 Subject: fdo#84938: convert EXPORT_ #defines to 'enum class' Change-Id: I2ed239fa073b5fa8fb56c1af9d4b0bac89acfacf --- include/o3tl/typed_flags_set.hxx | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'include/o3tl') diff --git a/include/o3tl/typed_flags_set.hxx b/include/o3tl/typed_flags_set.hxx index 4622d41e19f8..501a09a0cc68 100644 --- a/include/o3tl/typed_flags_set.hxx +++ b/include/o3tl/typed_flags_set.hxx @@ -100,6 +100,45 @@ inline typename o3tl::typed_flags::Wrap operator ~( & ~static_cast(rhs)); } +template +inline typename o3tl::typed_flags::Wrap operator ^(E lhs, E rhs) { + assert(static_cast(lhs) >= 0); + assert(static_cast(rhs) >= 0); + return static_cast::Wrap>( + static_cast(lhs) + ^ static_cast(rhs)); +} + +template +inline typename o3tl::typed_flags::Wrap operator ^( + E lhs, typename o3tl::typed_flags::Wrap rhs) +{ + assert(static_cast(lhs) >= 0); + return static_cast::Wrap>( + static_cast(lhs) + ^ static_cast(rhs)); +} + +template +inline typename o3tl::typed_flags::Wrap operator ^( + typename o3tl::typed_flags::Wrap lhs, E rhs) +{ + assert(static_cast(rhs) >= 0); + return static_cast::Wrap>( + static_cast(lhs) + ^ static_cast(rhs)); +} + +template +inline typename o3tl::typed_flags::Wrap operator ^( + typename o3tl::typed_flags::Wrap lhs, + typename o3tl::typed_flags::Wrap rhs) +{ + return static_cast::Wrap>( + static_cast(lhs) + ^ static_cast(rhs)); +} + template inline typename o3tl::typed_flags::Wrap operator &(E lhs, E rhs) { assert(static_cast(lhs) >= 0); -- cgit