[Boost-bugs] [Boost C++ Libraries] #6910: [Fusion] Add tr1_result_of specialization

Subject: [Boost-bugs] [Boost C++ Libraries] #6910: [Fusion] Add tr1_result_of specialization
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-05-17 15:01:03


#6910: [Fusion] Add tr1_result_of specialization
-------------------------------------+--------------------------------------
 Reporter: michel | Owner: djowel
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: fusion
  Version: Boost Development Trunk | Severity: Problem
 Keywords: |
-------------------------------------+--------------------------------------
 To make `result_of` and `tr1_result_of` equivalent, we have to add
 specialization of `tr1_result_of`.
 (Boost.Fusion already has specialization of `result_of`.)

 Also, it would be nice to avoid specialization of `result_of`, when we use
 decltype-based `result_of`.
 (As for `tr1_result_of`, it should be specialized even when decltype-based
 `result_of` is used.)

 So, instead of
 {{{
 template <...>
 struct result_of<F()>
 {
     typedef XXXX type;
 };
 }}}
 we should write
 {{{
 #if !defined(BOOST_RESULT_OF_USE_DECLTYPE) || defined(BOOST_NO_DECLTYPE)
 template <...>
 struct result_of<F()>
 {
     typedef XXXX type;
 };
 #endif

 template <...>
 struct tr1_result_of<F()>
 {
     typedef XXXX type;
 };
 }}}

 A quick grep said the following files specialize `result_of`.
 * fusion/functional/adapter/unfused.hpp
 * fusion/functional/adapter/unfused_typed.hpp

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/6910>
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:09 UTC