I am the OP for the question: [Extending a class](https://stackoverflow.com/questions/20999263/extending-a-class) in which I received an excellent answer. However, as I try to compile the code (reworked slightly for my project) I received the following message (line no. changed to reflect following sample code):

```
except.h: | 09 | expected nested-name-specifier before ‘handler_t1’

```

along with many more which seem to stem from this line. I am brand new to C++, and my research into the answer (and the forthcoming problem) has yielded this fact: Microsoft's compiler seems to accept the code, but standards compliant ones do not.

The code as I currently have it is as follows:

```
#include <vector>
namespace except
{
  // several other classes and functions which compile and work already
  // (tested and verified) have been snipped out. Entire code is over
  // 1000 lines.

  class Error_Handler
  {
    public:
      using handler_t1 = bool (*)(except::Logic const&);
      std::vector<handler_t1> logic_handlers;

      // a lot more removed because the error has already happened ...
  }
}

```

A read through of the code in the linked question indicates to me (with my limited knowledge) that it should all work.

My question therefore is: What do I need to change in this declaration/definition to enable this to compile with gcc (4.6.3 64 bit linux compiling with -std=C++0x)?