http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50864

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|ice-on-invalid-code         |ice-on-valid-code
             Status|WAITING                     |NEW
                 CC|                            |jason at gcc dot gnu.org
            Summary|SFINAE bug                  |[4.6/4.7 Regression] ICE
                   |                            |with decltype and "declval"
                   |                            |from another namespace

--- Comment #6 from Paolo Carlini <paolo.carlini at oracle dot com> 2011-10-25 
17:04:41 UTC ---
Ok, this way at least part of the issue is more clear: the below doesn't parse,
remove the impl namespace and it works:

/////////////////

namespace impl
{
  template <class T> T create();
}

template < class lhs, class rhs >
struct is_arrow_operable_impl
{
  template <class T, class U,
        class = decltype(impl::create<T>() -> impl::create<U>())>
  void test();
};

Reply via email to