g++ error: expected nested-name-specifier before 'XXX'

 1 template <typename addrT=int,typename valuT=int,typename stream_addrT=bm_addr,typename stream_sizeT=int64> 

 2 class  stream_chip : public chip<addrT,valuT>{ 

 3 public: 

 4     typedef  typename stream_addrT stream_addr_type; 

 5     typedef  typename stream_sizeT stream_size_type; 

 6  

 7     stream_chip (bus_type * const owner, addr_type addr):chip<addrT,valuT>(owner,addr) 

 8     {} 

 9 public: 

10     virtual stream_size_type write_mem(stream_addr_type dest_addr, void* pValue ,stream_size_type size)=0;  //write board memory 

11     virtual stream_size_type read_mem(void* pValue,stream_size_type size ,stream_addr_type src_addr)=0;        //read bpard memory     

12  

13 };

 


明明全部代码都在VS编译下好好的

把以上public的typename删除就行了。错误就不报了。唉,移植就是ISO标准问题多。各平台的扩展实现也乱七八糟。

references:
http://bbs.csdn.net/topics/370075224
http://stackoverflow.com/questions/5249835/expected-nested-name-specifier-before-const-error-with-typename-const-in-g



你可能感兴趣的:(expect)