[過去ログ] Boostを語れゴラァ part3 (1001レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
647: 2007/01/20(土)11:19 AAS
引数指定が間違ってるんだろう。consとかいるぞ
そもそもgetのシグニチャーは公開されてないと思われるので書いてはいけない。
要は君の::getが主役で、boost::getはシンタックスシュガーだ
関数オブジェクトがつねに偉いのだ
648
(1): 2007/01/21(日)20:32 AAS
bindで結合されたオブジェクトをfor_eachで適用するとき,適用されたオブジェクトを取り出すには
for_eachの結果を何に代入すればいいのでしょうか?

struct fn1
{
double sum;
void operator()(double &t )
{sum += t;}
}

fn1.sum=0;

何に代入したらオブジェクトfn1を取り出せる?
=for_each(ar.begin(),ar.end(),
boost::bind( fn1,
boost::bind(fn2,_1 ))
);

代入しないと
fn1.sum==0
となる
649
(2): 2007/01/21(日)20:41 AAS
>>648
bind() された関数オブジェクトの型は決められていないから、無理。
かわりに、結果の書き込み先を参照で持たせるのがいいんじゃない?

総和なら std::accumulate() 使えばいいんだけどね。

ソース貼るならコンパイルできるかどうか見直せよ。
650
(1): 2007/01/21(日)20:48 AAS
boost::bind(boost::ref(fn1),
651: 2007/01/21(日)20:52 AAS
>>650
できました
感謝
652: 2007/01/22(月)01:40 AAS
lambda
のtestコード
algorithm_test.cpp
がMSVC8でコンパイル通らない
653: 2007/01/22(月)03:06 AAS
>>649←恥ずかしい人ハケン
654: 2007/01/22(月)06:14 AAS
よかったね。毎日が発見の連続だね。
655: 649 2007/01/22(月)07:01 AAS
ん?何か変なこと言ったか?
656: 2007/01/22(月)16:11 AAS
みなさん、boost::FileSystemって使ってます?
日本語対応してないとかmingwで一部テストがエラーとか、ちょっと使うのに二の足踏んでます。

でも移植性のある他の代替選択肢もなさそうだしなぁ・・・。
657: 2007/01/22(月)16:39 AAS
>> でも移植性のある他の代替選択肢もなさそうだしなぁ・・・。

boost以外のポータブルなライブラリを使えばよいのでは。
ファイルシステム関連でMBCS/WCSに対応してないって、実用上論外だと思うが。
Shift_JIS環境では使い物にならないし、Win32のFindFirstFileA()って
パス長に思いっきり制限あるし。
658: 2007/01/22(月)17:16 AAS
CVSから1.34拾ってこい。
659: 2007/01/22(月)17:47 AAS
がらっと変わってるよね
念願の basic_path 化とか他盛りだくさん

外部リンク[htm]:boost.cvs.sourceforge.net
660: 2007/01/22(月)19:35 AAS
1.34 早くリリースされないかな?
661
(1): 2007/01/22(月)21:28 AAS
1.35は大変なことになるというか、もう別の言語というか
Fusion, MPI, Asio, Interprocessなどなど

ライブラリに関しては、標準が何かするべきではないと思う
標準は、発表の場を提供することに予算を使うべきだ。
そして、その場所を標準として定義すべきだ(とか言ってしまおう)
実際stlportが泥を被っているわけだしな
BoostがなければC++は死んでたよ
662: 2007/01/22(月)22:11 AAS
>>661
すまんが言いたいことがよくわからん。
もうちょっと具体的 and/or 他人に理解できるようにお願い。
663
(1): 2007/01/22(月)22:40 AAS
signalを関数objectとしてfor_eachに渡す方法はないのでしょうか?

struct obj1
{
void operator()(double &t) const
{std::cout << "obj1:" << t << " " ;}
};
struct obj2
{
void operator()(double &t) const
{std::cout << "obj2:" << t << " " ;}
};

boost::signal1< void ,double> sig;
sig.connect(obj1());
sig.connect(obj2());

std::vector<double > ar;

std::for_each(ar.begin(),ar.end(),sig)

err sigのプライベートメンバーにアクセスできません
となってfor_eachに渡せません
単にobj1,2を両方使いたいだけなんだけど
664: 663 2007/01/22(月)22:56 AAS
自己解決しました
std::for_each(ar.begin(),ar.end(),boost::bind<void>(boost::ref(sig), _1));
でできました
665
(2): 2007/01/24(水)09:21 AAS
gil::transform_channels(pixel1,pixel2,pixel3, ( 1.0/(boost::lambda::_1 - boost::lambda::_2) ) );
がコンパイルエラーになるのですが、
何か見落としているのでしょうか?
666: 665 2007/01/24(水)09:51 AAS
エラーの原因
gil::transform_channels(pixel1, pixel2, pixel3
を使ってるはずが lambdaを使ったとたん
gil::transform_channels(const pixel1,const pixel2, pixel3
に入れ替わってしまうことが原因のようです
667: 665 2007/01/24(水)09:52 AAS
gil::transform_channels(pixel1,pixel2,pixel3, std::plus<double>() );
とするとコンパイルは通ります
668
(3): 2007/01/24(水)10:50 AAS
MSVC++7.1, boost1.33.1の環境です。
外部リンク[txt]:kansai2channeler.hp.infoseek.co.jp
のコードを実行すると、自分の環境では
boost::regex_search()で例外が発生してしまいます。
("Memory exhausted").

これはboost:regexのバグでしょうか。対処方法はありますか。
別にやっていること自体は大したことでは無いはずです。
(このパターンはこの入力に対してはマッチしません)。
C#, Java, JScript, ICU, 鬼車, 等々で、全く同じ正規表現と入力を用いて
同等のパターンマッチを試みても、何の問題も発生しないことは確認済みです。
669: 2007/01/24(水)12:43 AAS
そんなことより文章のほうに目がいった
670: 2007/01/24(水)13:00 AAS
エロかとおもったら三四郎じゃないすか
671
(1): 2007/01/24(水)22:55 AAS
boost のヘッダは <boost/...hpp> と "boost/...hpp" と、どちらがお勧めですか?
672
(1): 2007/01/24(水)23:14 AAS
後者は書かないことをすすめる
673
(2): 2007/01/24(水)23:20 AAS
>>672
なんで? <...> は標準ヘッダでしょ?
boost は標準じゃないから "..." だと思うよ。
674: 2007/01/25(木)00:02 AAS
>>673
くだすれC言語(初心者用)
2chスレ:tech
675: 2007/01/25(木)00:03 AAS
>>673
<>と""の違いは、ファイル探索順の違いしかないと思ったが。
676
(1): 668 2007/01/25(木)00:05 AAS
えーと、つまり俺の問題は俺の環境のみで起きるのであって、そんなもん
知るかヴォケ、悔しかったらboost::regexなんぞに頼らず
テメェがDFAとかNFAとか書きやがれ。

ということでよろしいでしょうか。
このタイプの正規表現で、入力量の大きい時にコケる、という印象なのですが。
1-
あと 325 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.012s