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

Elias Pipping <pipping at exherbo dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pipping at exherbo dot org

--- Comment #18 from Elias Pipping <pipping at exherbo dot org> ---
I'm a bit confused here. Please consider the following piece of code:

<<SNIP

template <typename T> struct A {
  typedef int type;
};

template <typename T> struct B : public A<T> {
  using typename A<T>::type;
  static const int block_size = type::block_size;
};

<<SNAP

Compiling it with gcc 4.8.2 yields

  foo.hh:9:33: error: ‘type’ is not a class, namespace, or enumeration

whereas clang 3.4 will happily accept it(*).

At a first glance, this bug appears to address issues such as this, so that gcc
4.8.2 should be fine. This does not seem to be the case, however -- the test
case provided by Jim Apple compiles but the one above does not; I'll have to
assume the bug was only partly fixed?


(*) I orginally thought this was not valid and filed a clang bug:
http://llvm.org/bugs/show_bug.cgi?id=18574

Reply via email to