2016-06-30 7 views
1

このコードを考えてみましょう:エイリアスタイプにエイリアステンプレートをキャスティング

struct foo {/* stuff */}; 

template <typename T> 
using bar = foo; 

// Elsewhere 
bar<int> A; 
auto &B = static_cast<foo&>(A); 

は法的Bを使用していますか?

+4

私には理由が分かりません。 'foo'と' bar 'は同じタイプの名前です。 'foo&B = A;'、 'auto&B = A;' [Demo](http://rextester.com/MIFCW3704)というキャストは必要ありません。 –

答えて

4

はい、そうです。 bar<T>は、いずれもTの場合はfooとまったく同じタイプです。

関連する問題