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