我意识到那里有更好的编译器,但我更喜欢坚持使用 vc6,每隔一段时间,我就会发现奇怪的侥幸,想知道这个是本地化到我的安装还是每个人的安装。
请记住,有问题的编译器是:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
(链接器等不相关,因为这个问题似乎不涉及它们)
尝试声明一个从 std::vector 继承的类,它工作正常,除非您还尝试具体定义第二个模板参数:
10: class foo : public std::vector<LPTSTR,std::allocator<LPTSTR>>
11: {
12: public:
13: foo();
14: ~foo();
15: };
不编译并给出此错误: c:\foo\foo.h(10) : error C2143: syntax error : missing '>' before '{'
现在,真正的问题是,为什么这是合法的:
10: class foo : public std::vector<LPTSTR,std::allocator<LPTSTR>>>
11: {
12: public:
13: foo();
14: ~foo();
15: };
>
请注意第10 行末尾的额外内容......我想知道的是:
- 我做错了什么吗?
- 这只发生在我的安装中吗?
- 我应该避免使用解决方法,因为它可能会在以后以某种方式导致问题吗?
我尝试尽可能多地对此进行研究,但大多数程序员都知道在线搜索并不那么容易,因为搜索引擎似乎远远受限,甚至没有正则表达式搜索,它就会成为命中或未命中和/或人气竞赛(是足够受欢迎的感兴趣的话题,可以在谷歌等上排名)。
我非常感谢您对此的提示(甚至不提示)回复。我尝试向他人回答问题,即使这对我来说似乎很容易,并尝试记住知识总是从缺乏知识开始。