週に一回は書きますよ 月に4つ記事を書けばノルマは満たされます。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

てきとうに書いてコンパイル.

$ g++ -Wall -lgtest -lgtest_main -DEmptyQ=EmptyMPLVectorQueue tqueue_test.cc
In file included from /usr/include/boost/config/platform/linux.hpp:14,
                 from /usr/include/boost/config.hpp:53,
                 from /usr/include/boost/mpl/aux_/config/msvc.hpp:19,
                 from /usr/include/boost/mpl/aux_/config/adl.hpp:17,
                 from /usr/include/boost/mpl/aux_/adl_barrier.hpp:17,
                 from /usr/include/boost/mpl/bool_fwd.hpp:17,
                 from /usr/include/boost/mpl/bool.hpp:17,
                 from /usr/include/boost/mpl/aux_/na.hpp:17,
                 from /usr/include/boost/mpl/vector.hpp:19,
                 from tmplqueue.h:4,
                 from tqueue.h:161,
                 from tqueue_test.cc:1:
/usr/include/c++/4.3/cstdlib:107: error: ‘::div_t’ has not been declared
/usr/include/c++/4.3/cstdlib:108: error: ‘::ldiv_t’ has not been declared
/usr/include/c++/4.3/cstdlib:110: error: ‘::abort’ has not been declared

なぜcstdlibがコンパイルに失敗するんでしょうwww->変なnamespaceの中でincludeしているのが原因でした。これはひどい。

さらにエラー

tmplqueue.h: In instantiation of ‘TLAZY::IsEmpty<TLAZY::MPLVectorQueue<boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> > >’:
tqueue_test.cc:21:   instantiated from here
tmplqueue.h:12: error: invalid use of incomplete type ‘struct boost::mpl::empty<boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/empty_fwd.hpp:20: error: declaration of ‘struct boost::mpl::empty<boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >’

#include <boost/mpl/empty.hpp>を忘れていました。使う関数全て別々にインクルードしないといけないようです。面倒ですね。

上のエラーからvectorの実装が垣間見えます。これは遅くなりそうな予感。

スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://gusmachine.blog49.fc2.com/tb.php/458-fbf7b1eb
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。