【初心者歓迎】C/C++室 Ver.45【環境依存OK】 at TECH
[2ch|▼Menu]
522:デフォルトの名無しさん
07/12/19 10:00:51
>>520
typename std::list<T>::iterator MoveListItr(std::list<T> *pLst)
って書けばいいんじゃないかな。

いわゆる特殊化ってやつがあるせいで、classname<T>::hogeという記述だけでは、
hogeが値なのか型名なのか断定できない。
そういう場合、「これは型名ですよ」というのをコンパイラに教えるために、typenameを書く。

今回のVC7と8の違いは、「ここは関数の戻り値の型を書く場所だから、型名に決まってるよな」
とコンパイラが判断したか否か、の違いだと思うんだけど、
VC7の気が利いているのか、VC8が「VC7が無視した何らかの可能性」を見て断定を避けたのか、
どっちなのかは俺にはわからないや。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4991日前に更新/246 KB
担当:undef