[Boost-bugs] [Boost C++ Libraries] #5669: Intel compiler failure to compile duration.hpp

Subject: [Boost-bugs] [Boost C++ Libraries] #5669: Intel compiler failure to compile duration.hpp
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-07-05 07:06:22


#5669: Intel compiler failure to compile duration.hpp
-----------------------------------------------+----------------------------
 Reporter: Edward Rankin <erankin@…> | Owner: viboes
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: chrono
  Version: Boost 1.47.0 | Severity: Problem
 Keywords: |
-----------------------------------------------+----------------------------
 This ticket is to keep track of the issue first surfaced here:
 http://comments.gmane.org/gmane.comp.lib.boost.user/68421

 and continued here:
 http://comments.gmane.org/gmane.comp.lib.boost.user/68784

 In further discussion with Vicente, it turns out that the Intel Compiler
 (12.0 and 12.1 beta) for some strange reason requires an additional set of
 parenthesis around the first operand for the && operator, despite the
 existence of a set of parenthesis.

 Essentially the following snippet won't work,

 bool = (
 (boost::is_convertible<typename Duration::rep,
 typename common_type<typename Duration::rep, Rep2>::type>::value)
 &&
 (boost::is_convertible<Rep2,
 typename common_type<typename Duration::rep, Rep2>::type>::value)
 )

 but

 bool = (
 ((boost::is_convertible<typename Duration::rep,
 typename common_type<typename Duration::rep, Rep2>::type>::value))
 &&
 (boost::is_convertible<Rep2,
 typename common_type<typename Duration::rep, Rep2>::type>::value)
 )
 works.

 This is almost certainly a bug in the Intel Compiler. I will be seeking
 additional advice on the dev ML and Intel Premier Support on this.

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