summaryrefslogtreecommitdiff log msg author committer range
blob: 2908daaeee0afedbc8edecb649e8aa3ac537aea1 (plain)
 ```1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 ``` ``````/*! @file Forward declares `boost::hana::symmetric_difference`. @copyright Louis Dionne 2013-2017 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_HANA_FWD_SYMMETRIC_DIFFERENCE_HPP #define BOOST_HANA_FWD_SYMMETRIC_DIFFERENCE_HPP #include #include BOOST_HANA_NAMESPACE_BEGIN //! Returns the symmetric set-theoretic difference of two sets. //! @relates hana::set //! //! Given two sets `xs` and `ys`, `symmetric_difference(xs, ys)` is a new //! set containing all the elements of `xs` that are not contained in `ys`, //! and all the elements of `ys` that are not contained in `xs`. The //! symmetric difference of two sets satisfies the following: //! @code //! symmetric_difference(xs, ys) == union_(difference(xs, ys), difference(ys, xs)) //! @endcode //! //! //! @param xs, ys //! Two sets to compute the symmetric difference of. //! //! //! Example //! ------- //! @include example/symmetric_difference.cpp #ifdef BOOST_HANA_DOXYGEN_INVOKED constexpr auto symmetric_difference = [](auto&& xs, auto&& ys) { return tag-dispatched; }; #else template struct symmetric_difference_impl : symmetric_difference_impl> { }; struct symmetric_difference_t { template constexpr auto operator()(Xs&& xs, Ys&& ys) const; }; constexpr symmetric_difference_t symmetric_difference{}; #endif BOOST_HANA_NAMESPACE_END #endif // !BOOST_HANA_FWD_SYMMETRIC_DIFFERENCE_HPP ``````