- 655 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 00:55:41 ]
- >>654
標準準拠のコンパイラでは、 そのコードでは、nnn::good<char>()も0を返すはずです。 というのは、point of instantiationの文脈で名前解決を行うためには、 unqualifiedな関数呼び出しで(これはOK)、かつADLを介する必要があります。 しかし、charにはassociated namespaceがないため、ADLが行われません。 その結果、point of definitionの文脈で名前解決が行われます。 というのを昔、>>643の中の人(多分)にどこかのスレッドで教えてもらった記憶があります。 ちなみに、>>643に対する一つの解決法として 現在、boost.rangeなどで使われているものがあります。 lazyoverloadによる結果と違うのは、 fundamental type用のフックが定義できるかどうかということでしょうか。
|

|