2011-02-26 (土)
*boost勉強会 #4
土曜日はいつも寝て過ごしてしまうので,boost勉強会行ってみる.気軽に参加したら,朝10時からとか….eldeshがいた.
boostあまり使わないので普通に面白い話が多いな.
個人的にはboostで実装されてるような機能は,言語レベルでのサポートが欲しいと思う.それかテンプレートよりも自然な形で文法を拡張できる機能が言語に備わってれば良いのになぁ.
なんとなく,C++0xの様子を見るために,gccとVC++とBCC32で色々書いてたのだけど,BCCが0x以前のところで色々手ごわい気がする.
#include <iostream> using namespace std; class Foo { public: void a(){} void a(int a){cout << "hello!" << a << endl;} }; template<typename T> class Bar : public Foo { public: using Foo::a; void a(){} }; int main() { Bar<int> a; a.a(123); return 0; }
このコードはBCC32でコンパイルできない.どうもテンプレート内でのusingで「コンパイラ内部のエラー」というエラーになるようなのだけど,C++にそんな制約あるんだっけか.それにしてもBCCのエラーメッセージは情報量が少ないですね.
僕のC++の教科書はVC++とgccなので,本来の仕様を良く知らない.