5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Boostを語れゴラァ part4

1 :デフォルトの名無しさん:2007/04/04(水) 14:09:06
語って.はぁと part boost::mpl::int_<4>

過去スレ
part 3 http://pc11.2ch.net/test/read.cgi/tech/1158991211/
part 2 http://pc8.2ch.net/test/read.cgi/tech/1139313234/
part 1 http://pc8.2ch.net/test/read.cgi/tech/1091198276/

■関連サイト■
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/

952 :デフォルトの名無しさん:2007/10/18(木) 07:59:28
ほーい

953 :デフォルトの名無しさん:2007/10/18(木) 09:13:20
>>950
iteratorは継承して作ってはいけない

954 :デフォルトの名無しさん:2007/10/18(木) 13:31:10
書くの面倒だけど書かないとね。
iterater_facadeとか使って。

955 :デフォルトの名無しさん:2007/10/18(木) 14:02:59
つーかそれ無しだと書く気が起きない

956 :デフォルトの名無しさん:2007/10/18(木) 17:22:44
>>781
int | ∞ を表現するのに便利そう。> boost::optional

957 :デフォルトの名無しさん:2007/10/18(木) 17:41:53
次スレ
Boostを語れゴラァ part5
http://pc11.2ch.net/test/read.cgi/tech/1192662575/


立てたはいいけどここに報告するの忘れてたよ

958 :デフォルトの名無しさん:2007/10/19(金) 02:11:15
> boost::optional
通常処理→戻り値数値
通常処理でない→戻り値NULL
という関数を試作したらNULL値が0として振る舞って失敗した事があった
そのとき代替で使ってみた。良い方法かどうかは知らないけど

959 :デフォルトの名無しさん:2007/10/19(金) 07:21:25
ワラ

960 :デフォルトの名無しさん:2007/10/19(金) 12:50:05
まさかこういうことをしたのか・・・。

int hoge() {
return NULL;
}

961 :デフォルトの名無しさん:2007/10/19(金) 12:53:05
そのレベルでBoost使ってたらいろいろと苦労しそうだね。

962 :デフォルトの名無しさん:2007/10/19(金) 13:50:12
Win32のことかー

963 :デフォルトの名無しさん:2007/10/19(金) 20:01:08
>>958

例外使うところなのでは?
…それがいやなら結果入れる変数を参照渡し…


964 :デフォルトの名無しさん:2007/10/19(金) 20:03:24
結果変数を渡すくらいならoptional使えばいいだろ

965 :デフォルトの名無しさん:2007/10/20(土) 10:06:12
>>963
頭固いねー

966 :デフォルトの名無しさん:2007/10/20(土) 11:39:48
なにいってるんだ、NULL渡したいならnullptrだろ?

967 :デフォルトの名無しさん:2007/10/20(土) 11:41:52
optionalあるんだからoptional使えばいいだろ

968 :デフォルトの名無しさん:2007/10/20(土) 12:58:50
>>966
別に NULL を返したいんじゃなくて、
エラーが識別できれば何でもいいだろう。
まさに optional の適用事例。

969 :デフォルトの名無しさん:2007/10/20(土) 13:28:29
boost.optionalごときにカリカリしすぎ

970 :デフォルトの名無しさん:2007/10/20(土) 14:22:37
tupleでいいと思うけど人気無いの?
単にエラーコードと結果両方返したいだけなら
tupleどころかstd::pairでもいいと思うけど。

971 :デフォルトの名無しさん:2007/10/20(土) 15:14:09
>>970
optionalの方が良いから。

972 :デフォルトの名無しさん:2007/10/20(土) 18:26:04
>>970
それじゃぁ、エラーコードを不用意に無視することができてしまうだろ。
エラーコードを無視させにくくするためには optional みたいな
仕組みがいい。例外もエラーを無視させない仕組みなので、
例外を使ってもいいとは思うけど。故意に無視することができるのは
どちらも同じ。

optional を使ってエラー状態を通知する方法と
例外を使ってエラーの発生を通知する方法の違いは
直情より上の呼び出し元までエラー状態が伝搬するか否か。

973 :デフォルトの名無しさん:2007/10/20(土) 18:26:57
>>970
俺もそう思う
std::map::insert が pair 返すし
tuple は tr1 にあるけど、optional は無いし

974 :デフォルトの名無しさん:2007/10/20(土) 18:53:29
DefaultConstructibleでなくても返せるようにするために
optionalは存在するんだ

もっと勉強しろこのバカチンどもが!

975 :デフォルトの名無しさん:2007/10/20(土) 20:42:19
全然関係ないけど
動的メモリがあまり自由でない環境だと、DefaultConstructibleでない
値ベースの型って、なにげに使い勝手が悪かったりするような

976 :デフォルトの名無しさん:2007/10/21(日) 00:38:49
>>974
ごめんね、ママ

977 :デフォルトの名無しさん:2007/10/21(日) 00:39:51
>>973
> tuple は tr1 にあるけど、optional は無いし

はい、スレ否定、来ました。

978 :デフォルトの名無しさん:2007/10/21(日) 12:24:18
>>975
はいはい
boost::value_initialized

979 :デフォルトの名無しさん:2007/10/21(日) 13:38:11
>978
value_initialized ってそういうもんだったっけ?と思ったらやっぱり DefaultConstuctible かどうかを解決なんてしないじゃん。
名前に惑わされてない?

980 :デフォルトの名無しさん:2007/10/21(日) 15:48:01
auto_ptr + aligned_storage = optional

981 :デフォルトの名無しさん:2007/10/21(日) 17:10:15
>>980
aligned_storageの説明ってどっかにあります?

982 :978:2007/10/21(日) 18:17:30
>>979
すいません。ご指摘のとおり。
default construtibleでない=組み込み型が初期値で初期化されない、
と勘違いしてました。

983 :デフォルトの名無しさん:2007/10/21(日) 18:48:46
>>981
説明っていっても、指定サイズの char バッファを指定アライメントに置くだけだよ。
BoostにもTR1にも入ってる。

今の実装だと type_with_alignment<> 経由で求まる型を使ってるけど、
C++0x では alignof/alignas あたりを使うようになると思われる。

984 :デフォルトの名無しさん:2007/10/21(日) 21:25:27
組み込み分野で便利そうだね
今まではマクロ使ってたけど

985 :デフォルトの名無しさん:2007/10/23(火) 16:33:24
シンビアンとか、Mac OS Xのドライバとか、
組み込みっぽい用途に結構使われてるからね。

986 :デフォルトの名無しさん:2007/10/24(水) 13:42:52
>>957


987 :デフォルトの名無しさん:2007/10/24(水) 23:57:28
Boostを普通にプロジェクトで使ってる?

988 :デフォルトの名無しさん:2007/10/25(木) 02:23:16
>>987
全部じゃないけど使っているクラスもある。
たとえば boost::shared_ptr とか boost::auto_array とか。

989 :デフォルトの名無しさん:2007/10/25(木) 03:54:30
ああ、C++0x の auto がまちどおしい。
型名が長くなりすぎ。推論してくれ・・

990 :デフォルトの名無しさん:2007/10/25(木) 09:53:14
これ以上コンパイル時間が長くなるのはイヤです

991 :デフォルトの名無しさん:2007/10/25(木) 10:01:22
そこで8コア並列コンパイル
Linuxのカーネルのビルドもカップ麺ができるまでに終っちゃいます

992 :デフォルトの名無しさん:2007/10/25(木) 17:41:23
VS2005 は、何コアまで対応しているんですか?(コンパイル)

993 :デフォルトの名無しさん:2007/10/25(木) 19:23:57
>>992
並行してビルドできるプロジェクトは任意に指定できるんじゃね?

994 :デフォルトの名無しさん:2007/10/25(木) 21:29:02
つーか、型推論で速度が遅くはならねぇだろ。

995 :デフォルトの名無しさん:2007/10/25(木) 22:29:18
いやいやそんな事は無い

996 :デフォルトの名無しさん:2007/10/25(木) 22:35:44
>>994
?コンパイル速度には影響しそうだけど

997 :デフォルトの名無しさん:2007/10/25(木) 23:27:55
>>996
しっかりしろ。sizeofがある時点で、typeofのようなものは簡単に実装できるなんてわかりそうなもんだろ。

そして、sizeofでコンパイル速度が落ちるか?

998 :デフォルトの名無しさん:2007/10/25(木) 23:33:09
auto a = hoge();

これでaの型を推論するのに時間がかかるわけがない。
これでコンパイル速度が遅くなるんなら、下の簡単なテンプレート関数でも遅くなるだろ。

template<class T>
void foo(T t){}

foo(hoge());

999 :デフォルトの名無しさん:2007/10/26(金) 07:32:05
?

1000 :デフォルトの名無しさん:2007/10/26(金) 07:32:50
(・∀・) 1000 !

次スレ

Boostを語れゴラァ part5
http://pc11.2ch.net/test/read.cgi/tech/1192662575/

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

229 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)