AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > VC编程

转:从VC++到GCC移植:谈两者语法差异

51自学网 2015-08-30 http://www.wanshiok.com

  作者:许式伟 (版权声明

  类型引用

以下是引用片段:
  template 
  class Foo
  {
  typedef T::SomeType SomeType;
  };

  这段代码在VC++中一点问题也没有,但是GCC并不允许,因为它不知道T::SomeType是什么。你需要改为:

以下是引用片段:
  template 
  class Foo
  {
  typedef typename T::SomeType SomeType;
  };

  通过typename T::SomeType告诉GCC,SomeType是一个类型名,而不是其他东西。

  当然,这种情况不只是出现在typedef中。例如:

以下是引用片段:
  template 
  void visit(const Container& cont)
  {
  for (Container::const_iterator it = cont.begin(); it != cont.end(); ++it)
  ...
  }

  这里的Container::const_iterator同样需要改为typename Container::const_iterator。

<

 

 

 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
上一篇:Windows按键突破专家的原理  下一篇:Visual&nbsp;C++编译器常用选项设置