decltypeについていろいろ調べていて
decltype(t)::U hoge;
みたいなのができないか試したところ、gccでもVC++でもできませんでした。
webでいろいろ調べてみたところ、将来的にはこれはできるようになるらしいですね。今のところ実装されているコンパイラは存在しないようです。
ちなみに
class T
{
public:
U get_u();
};
decltype( t.get_u() ) hoge;
は使えました。宣言のみでtemplateに型を渡すというテクニックは確かModerDesignC++にも載っていたようなきがします(うろ覚え)。