>>Delta

typename宣言

2011年4月21日

typename宣言

最近C++を真面目に使い始めたおかげでSTLの便利さを体感しているCASPAR003です、こんばんは。

今日はテンプレートクラスを作っている最中に
warning C4346: '...' : 依存名は型ではありません。
という警告が出て困っていましたが、モルタルコのプログラマ日記によると

要するにテンプレート引数template<class T>を使ったとき,T::xを使用したときにコンパイラがそれが型なのか関数なのか瞬時に判断できないので,型であることを知らせるためにtypename C::xとしてくれという話。

という理由で、typename宣言が必要な場合があるようです。

書いている方は、完全に型名だと信じ込んで書いているから、文脈からは型かどうかを判定できない場合がある、ということに指摘されるまで気がつきませんでしたね。typename宣言の必要性をようやっと理解した、そんな1日。

投稿者 CASPAR003
投稿時刻 23:24
カテゴリー 雑記
コメント 0 件
トラックバック 0 件
記事へのリンク http://www.caspar003.info/delta/archive/2011/04/21/2324.html
コメント
投稿者
コメント
トラックバック
  • トラックバック

ブログ情報

カレンダー
2018年2月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28
最近のエントリー
最近のコメント
コメントを頂いたエントリー
コメントをくださった方一覧
コピー用紙の裏表
でった☆
CASPAR003
あのー
CASPAR003
amumo
CASPAR003
mariko
kazu
お仕事で青ざめた話
iun
iun
CASPAR003
AcrobatでPDFの一括印刷
Caesar
CASPAR003
Shadeのレンダラー仕様メモ
iun
CASPAR003
ブログ同盟本 C87 3日目 東S-04b
CON$
CASPAR003
Ca3 Post_Effector 2.0
sisioumaru
CASPAR003
sisioumaru
CASPAR003
Shade15について雑感
iun
CASPAR003
iun
色について
iun
CASPAR003
Lv67
iun
CASPAR003
雪まつり行ってきたよ
iun
CASPAR003