[過去ログ] Boostを語れゴラァ part4 (1001レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(3): デフォルトの名無しさん [] 2007/04/04(水) 14:09:06 AAS
語って.はぁと part boost::mpl::int_<4>
過去スレ
part 3 2chスレ:tech
part 2 2chスレ:tech
part 1 2chスレ:tech
■関連サイト■
Boost C++ Libraries
http://www.boost.org/
Boost 翻訳プロジェクト
http://boost.cppll.jp/HEAD/
Let's Boost
http://www.kmonos.net/alang/boost/
boost info
http://shinh.skr.jp/boost/
902: デフォルトの名無しさん [sage] 2007/10/09(火) 03:34:13 AAS
>>901
どーだろ。でも、ライブラリ別に.soとか.aができるから、必要な奴だけリンクすることは可能。
だから部分ビルドできるかはあまり関係ない気もするんだが。
903(1): デフォルトの名無しさん [sage] 2007/10/09(火) 04:30:10 AAS
ところで C++0x ではクロージャの機能は入るんですか?
904(1): 903 [sage] 2007/10/09(火) 04:31:35 AAS
すんません、ラムダ式が使えるんですね。
http://ja.wikipedia.org/wiki/C++0x#.E3.83.A9.E3.83.A0.E3.83.80.E9.96.A2.E6.95.B0.E3.81.A8.E3.83.A9.E3.83.A0.E3.83.80.E5.BC.8F
905: デフォルトの名無しさん [sage] 2007/10/09(火) 10:06:11 AAS
>>904
その Wikipedia の記事は、どういう新機能が会議で提案されてるかをかいてるので、どれが実際に C++0x に入りそうかは別個の話だよ。
http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2007/n2389.html
をみたかぎりではλ式は間に合わなさそう。
これ以上はスレ違いなので C++0x スレで。
906: デフォルトの名無しさん [sage] 2007/10/09(火) 10:09:41 AAS
と思って書き込んでからちゃんとよんでみたら、なんとかなりそうなのかな。よくわかりません。失礼しました
907(4): デフォルトの名無しさん [sage] 2007/10/09(火) 17:43:57 AAS
VC++2005EEの環境で>>878のコードをビルドしてみたんですが、リンクエラーが出てしまいます。
ランタイムライブラリをMT,MTd,MD,MDdのそれぞれ1回ずつ、バッチビルドでDebugとReleaseの両方をビルドしてみたんですが、どれもリンクエラーが出ました。
↓はMDdでビルドしたときのエラーです。
------ ビルド開始: プロジェクト: aa, 構成: Release Win32 ------
aa.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char> >
(class std::basic_ostream<char,struct std::char_traits<char> > &,char)"
(__imp_??$?6DU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z)" は未解決です。
aa.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) private: static char const * __cdecl std::basic_string<char,struct std::char_traits<charclass std::allocator<char> >::_Nullstr(void)"
(__imp_?_Nullstr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAPBDXZ)" は未解決です。
aa.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) char const `private: static char const * __cdecl std::basic_string<char,struct std::char_traits<charclass std::allocator<char> >::_Nullstr(void)'::`2'::_C"
(__imp_?_C@?1??_Nullstr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAPBDXZ@4DB)" は未解決です。
aa.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char> >
(class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)"
(__imp_??$?6DU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z)" は未解決です。
908: デフォルトの名無しさん [sage] 2007/10/09(火) 17:46:46 AAS
907の続き
Debugのエラーはあまりにも長いので、とりあえずReleaseだけにしておきます。
どこか設定が間違っているのでしょうか?
お願いします。
909(2): デフォルトの名無しさん [sage] 2007/10/09(火) 18:13:43 AAS
>>907
2005、Boost1.34だが、
31->33行目はoperator()で書き直せば通ったけど?
A[0][0]=1.0; -> A(0,0)=1.0;
910(3): 907 [sage] 2007/10/09(火) 19:49:15 AAS
>>909
A[0][0]=1.0; -> A(0,0)=1.0;に書き換えてみましたが、同じエラーが出てしまいます。
ちなみにboost1.34.0だと、
c:\library\boost_1_34_0\boost\numeric\ublas\detail\config.hpp(174)
: fatal error C1189: #error : Your compiler is unsupported by this verions of uBLAS. Boost 1.32.0 includes uBLAS with support for many old compilers.
というエラーが出てしまうので、1.32.0を入れました。
リンクエラーの意味がわからないので、どうすればいいのかさっぱり・・・。
911(1): 909 [sage] 2007/10/09(火) 20:32:32 AAS
>>910
ランタイムライブラリは
マルチスレッド(デバッグ)?DLL
使わないとエラー大量に出るよ。
lib,includeディレクトリには1つのバージョンのみのBoostだけ入れてよ。
Boost1.34.1
これでもできないならなんか環境ファイルが壊れてるのかもしれん。
912(1): 907 [sage] 2007/10/09(火) 22:44:28 AAS
>>911
1.34.1入れてビルドしてみましたが、やはり>>910に書いたエラーが出てしまいます。
(このエラーが出るということは、コンパイラが1.34.1のublasに対応してないということですよね?)
1.32.0でビルドすれば、コンパイルは通るんですが、
どのラインタイムライブラリでやっても、>>907のリンクエラーかそれよりたくさんのリンクエラーが出てしまいます。
リンクエラーの内容がstd::basic_ostreamとかだったりするのは、
やはり環境変数がちゃんと設定できていないか、壊れているかそのあたりがあやしいですか?
913(1): デフォルトの名無しさん [sage] 2007/10/10(水) 01:38:03 AAS
boost::test::unit_test ってテスト終了時に
メモリリークの検出までやってくれるんだね。
どういう方法でリークを検出しているんだろう。
もしかしてメモリアロケータを標準のものから
置き換えてなにかやってるのかな?
914(1): デフォルトの名無しさん [sage] 2007/10/10(水) 02:44:06 AAS
>>912
通りすがりだけど・・・
#include <ublasのヘッダもろもろ>
int main()
{
// 何も書かない
return 0;
}
でコンパイル通る?
経験則から言うとVC7以上であればublasのバージョンは問題ないと思う
>>913
unit_testのメモリリーク検出良いよね
うっかりポインタ操作をミスしていたのを見つけてくれたことがあるよ
915: 907 [sage] 2007/10/10(水) 04:01:05 AAS
>>914
ヘッダだけのコードを1.32.0でビルドしたら成功しました。(1.34.1は、やはり>>910のエラー)
1.34.1でビルドするとboost/numeric/ublas/detail/config.hppの
// Version 6.0 and 7.0
#if BOOST_MSVC <= 1300
#define BOOST_UBLAS_UNSUPPORTED_COMPILER 1
#endif
の条件に該当してそうです。
コメントアウトでいろいろコードを削って試してみたら、どうもstd::coutを使うとリンクエラーが出るっぽいです。
原因がスレ違いで申し訳ないです。
あとは自分でなんとかします。
レスくれた方々、ありがとうございました。
916: デフォルトの名無しさん [sage] 2007/10/11(木) 02:58:54 AAS
unit_testの話題が出ているので...質問させてください
他のライブラリを使用したコードのテストをするため
unit_testを利用しようとしたところ、リンカで次のエラーを得ました
***.lib(main.obj) : error LNK2019: 未解決の外部シンボル _MAIN__ が関数 _main で参照されました。
unit_testがmain関数を横取りしていることあたりが原因だとは思うのですが
何とか上手く回避できないものでしょうか?
お心当たりのある方はご教示いただけると幸いです
917: デフォルトの名無しさん [sage] 2007/10/11(木) 03:31:31 AAS
unit_testを使わない
boostなんて無理してまでも使うもんじゃない。
918(1): デフォルトの名無しさん [sage] 2007/10/12(金) 07:06:33 AAS
お前ら、ステートマシンはどのライブラリを使っていますか?
Cで書いた糞自作ライブラリから乗り換えようと思ってるんですが。
919: デフォルトの名無しさん [sage] 2007/10/12(金) 07:29:57 AAS
糞自作ライブラリから乗り換えようと思った理由は?
920(1): デフォルトの名無しさん [sage] 2007/10/12(金) 09:11:09 AAS
http://www.boost.org/more/formal_review_schedule.html
Boost.FSM 10/21〜
921: デフォルトの名無しさん [sage] 2007/10/12(金) 09:15:29 AAS
FSMは昔GPGに載ってたAI用のやつをいじって使ってる
922: デフォルトの名無しさん [sage] 2007/10/12(金) 09:32:38 AAS
>>918
Cベースで、状態遷移時のコールバック関数へのポインタが
むき出しだったり、いやなことが多いのと、あのころの
自分を忘れたかったから。
>>920
お、レビューが始まるんですか。
ちょっと前に話題が出てた Property も?
と思ったらこれは Property Map か。。
http://www.boost.org/libs/statechart/doc/index.html
これと比べてどちらを使うべきかについてのアドバイスのような
ページがどっかにあったんだけど、以前読んだ時に結局
判断がつかなくてずっと自作ライブラリ使ってたんだけど、
もう嫌になったから・・・
923: デフォルトの名無しさん [sage] 2007/10/12(金) 20:21:25 AAS
typedef使えばいいような
924(3): デフォルトの名無しさん [sage] 2007/10/13(土) 14:37:13 AAS
テキストエディタ使ってコマンドラインからコンパイルしようとすると
boost関連のincludeが見つからないと怒られたので
vsvars32.batにboostのincludeとlibパスを追加してみたら
今度はfatal error LNK1120: 外部参照 1 が未解決です。と出る
どうしたら良いのでしょうか?
925: 924 [sage] 2007/10/13(土) 14:42:35 AAS
書き忘れ
VC2005EEです。。。
926: デフォルトの名無しさん [sage] 2007/10/13(土) 14:56:29 AAS
具体的に何が見付かりませんと表示されるだろう。
そっち見ないとわからない。たぶんスレ違いの気がするけれど。
927(1): 924 [sage] 2007/10/13(土) 15:02:11 AAS
error LNK2019: 未解決の外部シンボル
"void __cdecl boost::throw_exception(class std::exception const &)"
(?throw_exception@boost@@YAXABVexception@std@@@Z) が関数 "
int __cdecl boost::lexical_cast<int,class std::basic_string<char,struct
std::char_traits<charclass std::allocator<char> > >
(class std::basic_string<char,struct std::char_traits<charclass std::allocator<char> > const &)"
(??$lexical_cast@HV?$basic_string@DU?$char_traits@D@std@@V?
$allocator@D@2@@std@@@boost@@YAHABV?$basic_string@DU?$char_traits@D@std@@
V?$allocator@D@2@@std@@@Z) で参照されました。
boosttest.exe : fatal error LNK1120: 外部参照 1 が未解決です。
長いんでカットしてました
スレ違いならごめんなさい
928: デフォルトの名無しさん [sage] 2007/10/14(日) 19:34:47 AAS
うちはうまくうごいとるよ
929: デフォルトの名無しさん [sage] 2007/10/14(日) 20:12:48 AAS
boostでまだ使えないvc向けのものがあるね
930(1): デフォルトの名無しさん [sage] 2007/10/14(日) 23:32:14 AAS
>>927
VC のオプションの「C++ の例外を有効にする」がいいえになってるか
明示的に BOOST_NO_EXCEPTIONS を定義したのでは?
931: デフォルトの名無しさん [sage] 2007/10/15(月) 15:02:33 AAS
YAMLの実装はありますか?
932: 924 [sage] 2007/10/15(月) 18:11:46 AAS
>>930
遅レスですいません
ビンゴでした
/EHsc オプションつけたらコンパイル通った
ありがとうございました
でも、なにもした覚えはないんだけどな・・・
933: デフォルトの名無しさん [sage] 2007/10/15(月) 18:15:01 AAS
実行時型情報を使うのってあんまり気持ち良くないなぁ。
おまえらは全然抵抗ありませんか?
型に関するあれやこれやはコンパイル時に解決
されているのがC++のいいところだと思ってたんだけど。
あと、これは単なるコーディングスタイルなんだけど、
メンバ変数をアクセスするときに this-> を強制したいなぁ。
あくまで自分が間違えてメンバ変数と同じ名前のローカル変数を
作ってしまうことがあるバカ者だからなんだけどね。
まぁこれは命名規則をきっちり決めておけばいいんだろうけど。
934: デフォルトの名無しさん [sage] 2007/10/15(月) 18:56:28 AAS
boostと何の関係が?
935: デフォルトの名無しさん [sage] 2007/10/15(月) 19:11:01 AAS
RTTIをオフにすると、Boost のなかで使えない
ライブラリが出てくる。どのライブラリが
RTTIを要求するか、例外のサポートを要求するかについての
リストがあれば便利なケースもあるんじゃないかなぁ、とか思いながら。
さすがに組み込みで Boost の全ライブラリのサポートを
要求する人はいないと思うが、どれが使えてどれが使えないか
わかればいいなぁ。
936: デフォルトの名無しさん [sage] 2007/10/15(月) 21:50:35 AAS
独り言うぜぇ
937: デフォルトの名無しさん [sage] 2007/10/15(月) 22:01:11 AAS
つうか、メンバ変数は大抵 xxx_ とか m_xxx でぶつからないだろ
938(1): デフォルトの名無しさん [sage] 2007/10/15(月) 22:56:57 AAS
インテリセンスで使いやすいように _xxx じゃ問題ある?
939(1): デフォルトの名無しさん [sage] 2007/10/15(月) 23:08:43 AAS
>>938
頭にアンダースコアの識別子は標準ライブラリやコンパイラのベンダのためにあるから使っちゃ駄目。
940: デフォルトの名無しさん [sage] 2007/10/15(月) 23:12:26 AAS
>>939
はい、間違いです。規格書読み直してくださいね。
941: デフォルトの名無しさん [sage] 2007/10/16(火) 00:00:50 AAS
>17.4.3.1.2 Global names
>Certain sets of names and function signatures are always reserved to the implementation:
>Each name that contains a double underscore (_ _) or begins with an underscore followed by an uppercase
>letter (2.11) is reserved to the implementation for any use.
>Each name that begins with an underscore is reserved to the implementation for use as a name in the
>global namespace
大文字でないので、メンバに使うのはおkってことか?
なんにせよ俺は使いたくはないな。
942: デフォルトの名無しさん [sage] 2007/10/16(火) 00:51:09 AAS
マクロとぶつかったりするととても悲しいのでやめた方が無難
943: デフォルトの名無しさん [sage] 2007/10/16(火) 08:19:50 AAS
バカかお前。ぶつからねーって回転だろ
944(1): デフォルトの名無しさん [sage] 2007/10/16(火) 19:38:49 AAS
独自のテンプレートライブラリを作るときに
boost::mplを使うときに一々ヘッダでboost::mpl::bindとか完全修飾で書くとみにくいので
namespace mpl = boost::mplとかusingを使いたいんですが
namespace my_lib {
namespace hoge_impl {
}
945(1): 944 [sage] 2007/10/16(火) 19:46:07 AAS
namespace my_lib
{
namespace hogee_impl
{
// *この名前空間でusingやnamespace hoge = foo::bar;を使う
tempalte<class Hoge, class Huga, class Foo> struct impl { typedef ... type; };
} // namespace hoge_impl
tempalte<class Hoge, class Huga, class Foo> struct hogee {
typedef typename hogee_impl<Hoge,Huga,Foo>::type type;
};
} // namespace my_lib
というようにしてhogeeをmy_lib::hogeeとして使えば問題ありませんか?
ADLとかまだよくわからないのでちょっと心配です
946: デフォルトの名無しさん [sage] 2007/10/16(火) 21:56:08 AAS
それってBoostと関係あるのか?
947: デフォルトの名無しさん [sage] 2007/10/16(火) 23:37:09 AAS
>>945
どんなことが起こるのを心配してるの?
見た感じ、好きにすれば、って感じなんだけど。
948(2): デフォルトの名無しさん [sage] 2007/10/17(水) 21:01:27 AAS
struct A{
long a;
};
struct B{
A inner;
explicit B(long n){ inner.a = n;}
};
struct GetB_ : public std::unary_function<B&, A&>{
A& operator()(B& element) const{ return element.inner;}
};
typedef std::vector<B> vectorB;
typedef boost::transform_iterator<GetB_, vectorB::iterator> testIterator;
int main(){
vectorB v;
for(int i=0; i<100; ++i) v.push_back(B(i));
testIterator p2(v.begin(), GetB_());
cout << typeid(p2[0]).name() << endl;
//cout << p2[0].a << endl;←コンパイルエラー
return 0;
}
transform_iteratorについての質問なんですが
p2[0]の型がclass boost::detail::operator_brackets_proxy<class boost::transform_iterator<class GetB_,class std::_Vector_iterator<struct B,class std::allocator<struct B> struct boost::use_default,struct boost::use_default> >
ってなってて、[]演算子だけ変です。これでは使い物になりません。
iterator_facade.hpp見ると、
// A proxy return type for operator[], needed to deal with
// iterators that may invalidate referents upon destruction.
// Consider the temporary iterator in *(a + n)
と書いてありますが、いまいちわかりません。
自分でイテレータ作るしかないんでしょうか…?
949(1): デフォルトの名無しさん [sage] 2007/10/17(水) 23:03:33 AAS
>948
都合により直接メンバアクセスすることはできない。ただし、A& に変換することはできる。
ということで、不格好だけど、static_cast<A&)(p2[0]).a みたいにするか、long& getA(A& a) { return a.a; } を作って getA(p2[0]) みたいにする必要がある。
コメントの部分はこういうことだと思う。
p2[n] が A& を直接返していたとする。
この時返ってくる A& は *(p2 + n) の結果なんだけど、 p2 + n は iterator の一時オブジェクトで既に破棄されていることになる。
iterator によっては自分が破棄された場合に、指し先(この場合返ってきた A&)も無効化するものがあるかもしれない。
ということで、p2 + n に対応する iterator が存在することを保証するために proxy オブジェクトが使用されている。
950(2): デフォルトの名無しさん [sage] 2007/10/18(木) 01:17:26 AAS
>>949
あー、なるほど。
分かりやすい解説ありがとうございます。
確かに、さっきのp2で
cout << (*(p2 + 5)).a << endl;
って添え字演算子と同じことをやると、Visual Studio がアサート失敗を出す。
vectorのイテレータが破棄されちゃうのね…。
>>948は例のためにvector使ったんで、
実は本当にtransform_iterator使いたいのはポインタだからこの問題は起こらない…。
transform_iteratorを継承してoperator[]を隠蔽してみます。
951: デフォルトの名無しさん [sage] 2007/10/18(木) 02:25:28 AAS
>>950
次スレ立てよろしく
952: デフォルトの名無しさん [sage] 2007/10/18(木) 07:59:28 AAS
ほーい
953: デフォルトの名無しさん [sage] 2007/10/18(木) 09:13:20 AAS
>>950
iteratorは継承して作ってはいけない
954: デフォルトの名無しさん [sage] 2007/10/18(木) 13:31:10 AAS
書くの面倒だけど書かないとね。
iterater_facadeとか使って。
955: デフォルトの名無しさん [sage] 2007/10/18(木) 14:02:59 AAS
つーかそれ無しだと書く気が起きない
956: デフォルトの名無しさん [sage] 2007/10/18(木) 17:22:44 AAS
>>781
int | ∞ を表現するのに便利そう。> boost::optional
957(1): デフォルトの名無しさん [sage] 2007/10/18(木) 17:41:53 AAS
次スレ
Boostを語れゴラァ part5
2chスレ:tech
立てたはいいけどここに報告するの忘れてたよ
958(1): デフォルトの名無しさん [sage] 2007/10/19(金) 02:11:15 AAS
> boost::optional
通常処理→戻り値数値
通常処理でない→戻り値NULL
という関数を試作したらNULL値が0として振る舞って失敗した事があった
そのとき代替で使ってみた。良い方法かどうかは知らないけど
959: デフォルトの名無しさん [sage] 2007/10/19(金) 07:21:25 AAS
ワラ
960: デフォルトの名無しさん [sage] 2007/10/19(金) 12:50:05 AAS
まさかこういうことをしたのか・・・。
int hoge() {
return NULL;
}
961: デフォルトの名無しさん [sage] 2007/10/19(金) 12:53:05 AAS
そのレベルでBoost使ってたらいろいろと苦労しそうだね。
962: デフォルトの名無しさん [sage] 2007/10/19(金) 13:50:12 AAS
Win32のことかー
963(1): デフォルトの名無しさん [sage] 2007/10/19(金) 20:01:08 AAS
>>958
例外使うところなのでは?
…それがいやなら結果入れる変数を参照渡し…
964: デフォルトの名無しさん [sage] 2007/10/19(金) 20:03:24 AAS
結果変数を渡すくらいならoptional使えばいいだろ
965: デフォルトの名無しさん [sage] 2007/10/20(土) 10:06:12 AAS
>>963
頭固いねー
966(1): デフォルトの名無しさん [] 2007/10/20(土) 11:39:48 AAS
なにいってるんだ、NULL渡したいならnullptrだろ?
967: デフォルトの名無しさん [sage] 2007/10/20(土) 11:41:52 AAS
optionalあるんだからoptional使えばいいだろ
968: デフォルトの名無しさん [sage] 2007/10/20(土) 12:58:50 AAS
>>966
別に NULL を返したいんじゃなくて、
エラーが識別できれば何でもいいだろう。
まさに optional の適用事例。
969: デフォルトの名無しさん [sage] 2007/10/20(土) 13:28:29 AAS
boost.optionalごときにカリカリしすぎ
970(3): デフォルトの名無しさん [sage] 2007/10/20(土) 14:22:37 AAS
tupleでいいと思うけど人気無いの?
単にエラーコードと結果両方返したいだけなら
tupleどころかstd::pairでもいいと思うけど。
971: デフォルトの名無しさん [sage] 2007/10/20(土) 15:14:09 AAS
>>970
optionalの方が良いから。
972: デフォルトの名無しさん [sage] 2007/10/20(土) 18:26:04 AAS
>>970
それじゃぁ、エラーコードを不用意に無視することができてしまうだろ。
エラーコードを無視させにくくするためには optional みたいな
仕組みがいい。例外もエラーを無視させない仕組みなので、
例外を使ってもいいとは思うけど。故意に無視することができるのは
どちらも同じ。
optional を使ってエラー状態を通知する方法と
例外を使ってエラーの発生を通知する方法の違いは
直情より上の呼び出し元までエラー状態が伝搬するか否か。
973(1): デフォルトの名無しさん [sage] 2007/10/20(土) 18:26:57 AAS
>>970
俺もそう思う
std::map::insert が pair 返すし
tuple は tr1 にあるけど、optional は無いし
974(1): デフォルトの名無しさん [sage] 2007/10/20(土) 18:53:29 AAS
DefaultConstructibleでなくても返せるようにするために
optionalは存在するんだ
もっと勉強しろこのバカチンどもが!
975(1): デフォルトの名無しさん [sage] 2007/10/20(土) 20:42:19 AAS
全然関係ないけど
動的メモリがあまり自由でない環境だと、DefaultConstructibleでない
値ベースの型って、なにげに使い勝手が悪かったりするような
976: デフォルトの名無しさん [sage] 2007/10/21(日) 00:38:49 AAS
>>974
ごめんね、ママ
977: デフォルトの名無しさん [sage] 2007/10/21(日) 00:39:51 AAS
>>973
> tuple は tr1 にあるけど、optional は無いし
はい、スレ否定、来ました。
978(2): デフォルトの名無しさん [sage] 2007/10/21(日) 12:24:18 AAS
>>975
はいはい
boost::value_initialized
979(1): デフォルトの名無しさん [sage] 2007/10/21(日) 13:38:11 AAS
>978
value_initialized ってそういうもんだったっけ?と思ったらやっぱり DefaultConstuctible かどうかを解決なんてしないじゃん。
名前に惑わされてない?
980(1): デフォルトの名無しさん [sage] 2007/10/21(日) 15:48:01 AAS
auto_ptr + aligned_storage = optional
981(1): デフォルトの名無しさん [] 2007/10/21(日) 17:10:15 AAS
>>980
aligned_storageの説明ってどっかにあります?
982: 978 [sage] 2007/10/21(日) 18:17:30 AAS
>>979
すいません。ご指摘のとおり。
default construtibleでない=組み込み型が初期値で初期化されない、
と勘違いしてました。
983: デフォルトの名無しさん [sage] 2007/10/21(日) 18:48:46 AAS
>>981
説明っていっても、指定サイズの char バッファを指定アライメントに置くだけだよ。
BoostにもTR1にも入ってる。
今の実装だと type_with_alignment<> 経由で求まる型を使ってるけど、
C++0x では alignof/alignas あたりを使うようになると思われる。
984: デフォルトの名無しさん [sage] 2007/10/21(日) 21:25:27 AAS
組み込み分野で便利そうだね
今まではマクロ使ってたけど
985: デフォルトの名無しさん [sage] 2007/10/23(火) 16:33:24 AAS
シンビアンとか、Mac OS Xのドライバとか、
組み込みっぽい用途に結構使われてるからね。
986: デフォルトの名無しさん [sage] 2007/10/24(水) 13:42:52 AAS
>>957
乙
987(1): デフォルトの名無しさん [sage] 2007/10/24(水) 23:57:28 AAS
Boostを普通にプロジェクトで使ってる?
988: デフォルトの名無しさん [sage] 2007/10/25(木) 02:23:16 AAS
>>987
全部じゃないけど使っているクラスもある。
たとえば boost::shared_ptr とか boost::auto_array とか。
989: デフォルトの名無しさん [sage] 2007/10/25(木) 03:54:30 AAS
ああ、C++0x の auto がまちどおしい。
型名が長くなりすぎ。推論してくれ・・
990: デフォルトの名無しさん [sage] 2007/10/25(木) 09:53:14 AAS
これ以上コンパイル時間が長くなるのはイヤです
991: デフォルトの名無しさん [sage] 2007/10/25(木) 10:01:22 AAS
そこで8コア並列コンパイル
Linuxのカーネルのビルドもカップ麺ができるまでに終っちゃいます
992(1): デフォルトの名無しさん [sage] 2007/10/25(木) 17:41:23 AAS
VS2005 は、何コアまで対応しているんですか?(コンパイル)
993: デフォルトの名無しさん [sage] 2007/10/25(木) 19:23:57 AAS
>>992
並行してビルドできるプロジェクトは任意に指定できるんじゃね?
994(1): デフォルトの名無しさん [sage] 2007/10/25(木) 21:29:02 AAS
つーか、型推論で速度が遅くはならねぇだろ。
995: デフォルトの名無しさん [sage] 2007/10/25(木) 22:29:18 AAS
いやいやそんな事は無い
996(1): デフォルトの名無しさん [sage] 2007/10/25(木) 22:35:44 AAS
>>994
?コンパイル速度には影響しそうだけど
997: デフォルトの名無しさん [sage] 2007/10/25(木) 23:27:55 AAS
>>996
しっかりしろ。sizeofがある時点で、typeofのようなものは簡単に実装できるなんてわかりそうなもんだろ。
そして、sizeofでコンパイル速度が落ちるか?
998: デフォルトの名無しさん [sage] 2007/10/25(木) 23:33:09 AAS
auto a = hoge();
これでaの型を推論するのに時間がかかるわけがない。
これでコンパイル速度が遅くなるんなら、下の簡単なテンプレート関数でも遅くなるだろ。
template<class T>
void foo(T t){}
foo(hoge());
999: デフォルトの名無しさん [sage] 2007/10/26(金) 07:32:05 AAS
?
1000: デフォルトの名無しさん [sage] 2007/10/26(金) 07:32:50 AAS
(・∀・) 1000 !
次スレ
Boostを語れゴラァ part5
2chスレ:tech
1001: 1001 [] Over 1000 Thread AAS
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.295s*