【发布时间】:2014-01-10 04:11:23
【问题描述】:
我是这个问题的 OP:Extending a class 我收到了一个很好的答案。但是,当我尝试编译代码时(为我的项目稍作修改),我收到了以下消息(行号已更改以反映以下示例代码):
except.h: | 09 | expected nested-name-specifier before ‘handler_t1’
还有更多似乎源于这条线的东西。我是 C++ 的新手,我对答案(以及即将出现的问题)的研究得出了这样一个事实:微软的编译器似乎接受代码,但符合标准的编译器不接受。
我目前的代码如下:
#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 ...
}
}
通读链接问题中的代码向我表明(以我的有限知识)它应该都可以工作。
因此,我的问题是:我需要在此声明/定义中进行哪些更改以使其能够使用 gcc 进行编译(使用 -std=C++0x 编译的 4.6.3 64 位 linux)?
【问题讨论】:
-
我对 C++11 了解不多,但这有帮助吗? en.cppreference.com/w/cpp/language/type_alias
标签: c++ c++11 compiler-errors gcc4.6