VC.STL Newsgroup Good Questions(
二
)
???
使用
Templated Member Function
時
C2664
編譯錯誤,
Why?
Article last modified on 2002-5-29
----------------------------------------------------------------
The information in this article applies to:
-
???????
Microsoft Visual C++, 32-bit Editions, version 6.0, SP5
----------------------------------------------------------------
?
Question:
下面的代碼編譯時報告
C2664
錯誤:
Error C2664: '__thiscall std::list<int,class std::allocator<int> >::std::list<int,class std::allocator<int> >(unsigned int,const int &,const class std::allocator<int> &)' : cannot convert parameter 1 from 'class std::istream_iterator<int,char,struct std::char_traits<char> > (__cdecl *)(void)' to 'unsigned int'
???????
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
代碼如下:
istream_iterator<int> intFileEnd;
list<int> intList(intFileBegin, intFileEnd);
|
?
Answer:
當
VC6
的庫文件剛發(fā)布的時候,編譯器還不支持
Templated Member Function
。這樣,
Templated List Constructor
無法得到
Non-List Iterators
。
現在編譯器雖然支持
Templated Member Function
,但要想編譯通過,你還是需要一個新的標準庫。前面的代碼應該在以下環(huán)境中可以編譯通過:
n
???????
VC 7
n
???????
VC6 with Dinkumware library upgrade
n
???????
VC6 with STLport
?
如果你沒有這樣的編譯環(huán)境,那還是不要使用
Templated Member Function
。你可以這么做:
istream_iterator<int> intFileEnd;
list<int> intList;
copy(intFileBegin,intFileEnd,back_inserter(intList));
?
這樣同樣可以把
istream
中的東西導入到
list
中。
|
?
(To be Continued)
?
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12674
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
