Re: [Boost-bugs] [Boost C++ Libraries] #12085: (a - b) === (!b >> a) does not hold in X3

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #12085: (a - b) === (!b >> a) does not hold in X3
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-03-28 16:48:08


#12085: (a - b) === (!b >> a) does not hold in X3
-----------------------------------+---------------------
  Reporter: mikhail.strelnikov@… | Owner: djowel
      Type: Bugs | Status: new
 Milestone: To Be Determined | Component: spirit
   Version: Boost 1.61.0 | Severity: Problem
Resolution: | Keywords:
-----------------------------------+---------------------

Comment (by mikhail.strelnikov@…):

 I think all this can be minimized to -
 {{{
 static_assert(traits::is_substitute<fusion::deque<char, std::string>,
 std::string>::value == 1, "");
 }}}
 or even simpler
 {{{
 static_assert(traits::is_substitute<char, std::string>::value == 1, "");
 }}}
 Which is kind of makes sense - if we have a char, we can put it to a
 string.

 If this compiles, then test passes. I've tried this by adding
 specialization

 {{{
 template <typename T, typename Attribute>
     struct is_substitute<T, Attribute, typename
 enable_if<is_container<Attribute> >::type>
         : is_substitute<typename mpl::eval_if
             <
                 fusion::traits::is_sequence<T>,
                 fusion::result_of::front<T>,
                 mpl::identity<T>
>::type, typename container_value<Attribute>::type> {};
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/12085#comment:4>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:19 UTC