2008-10-02
テンプレートのインスタンス化のタイミングが分からない><
namespace ns { struct B {}; } template <typename T> struct A { void f0(T b) { f(b); } }; int main() { A<ns::B> a; a.f0(ns::B()); // ここで A::f0 のインスタンス化が必要になって return 0; } // この時点で A::f0 がインスタンス化される namespace ns { void f(B b) {} }
なので、 A::f0 インスタンス化時点で、 ns::f は見えない気がするのですが><
なんで、コンパイル通るんだろう><
トラックバック - http://d.hatena.ne.jp/amachang/20081002/1222913230
リンク元
- 492 http://blog.livedoor.jp/ikiradio/archives/51043067.html
- 344 http://d.hatena.ne.jp/HolyGrail/20081001/1222880038
- 331 http://reader.livedoor.com/reader/
- 306 http://b.hatena.ne.jp/hotentry
- 232 http://d.hatena.ne.jp/
- 185 http://anond.hatelabo.jp/20081002025403
- 98 http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/amachang/20081001/1222869238
- 79 http://www.google.com/reader/view/
- 63 http://blog.livedoor.jp/ikiradio/
- 55 http://www.google.co.jp/reader/view/
