いつの間にか gcc 4.8 に Inheriting constructors が実装されていた
lingr で聞かれて調べていたんですが、いつの間にか gcc 4.8 に Inheriting constructors が実装されていました。
と、いうことでここから gcc 4.8 のバイナリを落としてきて試しました。
[ソース]
struct base{ constexpr base(int value) : value(value){} constexpr int get_value() const{ return value; } private: int value; }; struct X : base{ using base::base; }; int main(){ constexpr X x{42}; static_assert(x.get_value() == 42, ""); return 0; }
おー動いた動いた。
Inheriting constructors 要らない子扱いされていますが、オブジェクト指向なフレームワークを扱っている場合は結構欲しい気がする。