トップページ⇒tech
1001コメント285KB

Boostを語れゴラァ part3

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/09/23(土) 15:00:11
語って.はぁと part boost::mpl::int_<3> 

前スレ
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/ ;
0232デフォルトの名無しさん2006/10/30(月) 22:42:28
>>231
作者がboostに提案したか否かだろ
0233デフォルトの名無しさん2006/10/30(月) 23:51:16
>>230
発表された頃に斜め読みした限りでは
プログラマとデザイナで仕事を分離するという程度の内容だったような?
0234デフォルトの名無しさん2006/10/31(火) 01:39:42
>>232
どの記事だったか忘れたけど

>vigraのほうが好きだけど,vigraは作者が一人だし、gilが採択されたら
>その作者がんばるだろうからいいじゃん
とか書いてあった
02352342006/10/31(火) 01:41:27
>>234
http://lists.boost.org/Archives/boost/2006/10/112316.php
これこれ
0236デフォルトの名無しさん2006/10/31(火) 03:07:04
やる気のない実装を見るとRejectされそうだけどな
0237デフォルトの名無しさん2006/10/31(火) 12:11:48
http://lists.boost.org/Archives/boost/2006/10/112534.php
VC7.1でコンパイルとおらねえじゃねえかよ
同じとこでこけやがる
0238デフォルトの名無しさん2006/10/31(火) 18:46:57
LinuxのGCCでワイド文字全般がうまく機能しないです。
gcc3.3.6
libstdc++3.3.6

boostでなんとかなりませんか?

wcout << L"てれれのレ";
[****@ **] (沈黙)
0239デフォルトの名無しさん2006/10/31(火) 18:51:43
端末の文字コードが間違っているなんてこと無いよね?
0240デフォルトの名無しさん2006/10/31(火) 19:18:04
ないです。
0241デフォルトの名無しさん2006/10/31(火) 19:24:22
出力をパイプでod -tx1に流して16進で見ても、やはり

[****@ **]./a.out | od -tx1
0000000 (沈黙)
0242デフォルトの名無しさん2006/10/31(火) 19:41:44
http://pc8.2ch.net/test/read.cgi/tech/1143375639/294-304
これと同じ問題?
0243デフォルトの名無しさん2006/10/31(火) 19:52:16
gccのバージョン上げろ
0244デフォルトの名無しさん2006/10/31(火) 20:25:51
つまり L をコンパイラがまともに処理してくれていない?
0245デフォルトの名無しさん2006/10/31(火) 20:58:26
そうだよ。-Sでアセンブラ出力みてみ。
0246デフォルトの名無しさん2006/10/31(火) 21:14:59
バージョンの問題なのか?
0247デフォルトの名無しさん2006/10/31(火) 21:39:46
>>2.4.6
--input-charsetが3.4からだから、そうだと思うんだけど。
0248デフォルトの名無しさん2006/10/31(火) 21:40:21
あかん、アンカーがorz
0249デフォルトの名無しさん2006/10/31(火) 23:02:31
>>248 誰がうまいこと言えと
0250デフォルトの名無しさん2006/11/01(水) 01:37:53
function<int (int)> hohe(int x)
{
return boost::lambda::_1 +x;
}
でxを延命させるうまい方法はありますか? 別途関数を作ってbindとか、
plus<int>()にbindあたりはナシで。
0251デフォルトの名無しさん2006/11/01(水) 01:48:57
>>250
延命も何も、λ式に保持されるのはその時点でのxの値で、
xへの参照ではないから、xの寿命を気にする必要はない。
0252デフォルトの名無しさん2006/11/01(水) 04:26:38
gcc3.4 gcc4.0.2で試したらワイド文字関係がすこぶる正常。
結局バージョンの問題か。
0253デフォルトの名無しさん2006/11/01(水) 09:28:50
もう少し前は日本語のみのワイド文字対応が入っていたんだけど、
3.3→3.4辺りで国際化した。あなたの使ったのは狭間の具合い悪いバージョン。
0254デフォルトの名無しさん2006/11/01(水) 10:49:17
GUIライブラリのboost取り込みってどうなった?
0255デフォルトの名無しさん2006/11/01(水) 11:27:37
そんな激しくプラットフォーム依存な物を
標準ライブラリに入れようとしているのか。
もしかして curses みたいなものか?
0256デフォルトの名無しさん2006/11/01(水) 11:55:13
boost mailing listで
さっきbug fixしてupした
とかいってるやつはcvsのバージョンのことなのかな
0257デフォルトの名無しさん2006/11/01(水) 17:30:47
lexical_cast.hppを見てみたら、半年くらい前に見たときと
大幅に違ってるんだけど、何か変わったの?
0258デフォルトの名無しさん2006/11/01(水) 21:59:04
カレントプロセスのカレントディレクトリを取得する方法
ってありますか?
GetCurrentDirectoryみたいなやつ。
0259デフォルトの名無しさん2006/11/01(水) 22:09:37
>>255
お前の中でThreadやfilesystemは一体なんなの?
0260デフォルトの名無しさん2006/11/01(水) 22:57:40
そんなには激しくないプラットフォーム依存な物
0261デフォルトの名無しさん2006/11/02(木) 01:13:53
>>258 boost::filesystem::current_path()
0262デフォルトの名無しさん2006/11/02(木) 01:30:36
それLinuxだと実行ファイルのパスじゃなくて
userのカレントディレクトリを返しちゃうん
だよね。

これLinuxの仕様くさいから仕方ないか。
0263デフォルトの名無しさん2006/11/02(木) 01:35:20
>>262
どこから実行ファイルのパスの話が出てきたんだ?
0264デフォルトの名無しさん2006/11/02(木) 01:37:59
>>262
こいつアホすぎww
0265デフォルトの名無しさん2006/11/02(木) 11:06:53
>>262
Windowsも似たようなもの
>>258の意図は知らないがcurrent_pathはたいてい役に立たない
0266デフォルトの名無しさん2006/11/02(木) 11:07:31
>>257
最適化
数字は自前でパースするようになった
0267デフォルトの名無しさん2006/11/02(木) 11:33:40
他Cスレで聞いても誰も答えてくれなかった

Cで行列演算といえば
LAPCK
boost::numeric::ublas
あたりが定番だけど

統計計算でお勧めは?
今boostで審査中や過去にrejectされたものでもいいので誰か教えて

使いたい機能は

単純に共分散行列を計算
正規分布に関係したいろいろな計算

できれば

kai^2 test
t-test

とかちょっと高度なこともしたい。
0268デフォルトの名無しさん2006/11/02(木) 12:49:28
>>266
でも未だに1e+10とかは扱えないんだなw
0269デフォルトの名無しさん2006/11/02(木) 12:57:56
boost::serialization で NaN (+inf とか -inf とかも)を
シリアライズできないのは痛い。
0270デフォルトの名無しさん2006/11/02(木) 14:18:37
boostのclass名が
ClassName
じゃなくて
class_name
になってるのが気持ち悪い
なんでこんな命名規則になった
0271デフォルトの名無しさん2006/11/02(木) 14:28:12
C++の標準ライブラリと同様の命名規則を採用したから。
0272デフォルトの名無しさん2006/11/02(木) 16:40:38
識別子をなんでもかんでも小文字にしたくなって困る
0273デフォルトの名無しさん2006/11/02(木) 17:13:19
>>267
boostじゃないけど
liboctave
libRmath
libgsl
あたり
0274デフォルトの名無しさん2006/11/02(木) 23:31:11
次期標準でも concept 名だけは大文字になりそうだな
0275デフォルトの名無しさん2006/11/02(木) 23:32:09
>>273
thx

liboctave はmatlab使いには便利そう

libRmath
本当の統計屋さんはやっぱりRを使うのだろうか
R使ったことない

liggsl
こんなのあったんだね。
でも多項式演算関係以外は既存libとかぎりなく一緒
0276デフォルトの名無しさん2006/11/03(金) 02:10:07
>>270
おまえさんは標準C++ライブラリも気持ち悪いって言うんだろうな。
実際そういう人が結構多いようだ。
0277デフォルトの名無しさん2006/11/03(金) 03:05:14
Javaに毒されすぎ
0278デフォルトの名無しさん2006/11/03(金) 03:20:37
このスレ的には C++ に毒されてる連中が多いから
Java のメソッド名ナニアレ気持ちわるーい、となるのが正しい
0279デフォルトの名無しさん2006/11/03(金) 03:40:40
むしろHaskellやPythonなんだが
0280デフォルトの名無しさん2006/11/03(金) 03:47:52
HaskellもPythonもClassNameだな。
0281デフォルトの名無しさん2006/11/03(金) 03:50:44
すべて小文字な命名法はlispを思わせる。
0282デフォルトの名無しさん2006/11/03(金) 04:31:57
lispはハイフン区切りで全部大文字(CLASS-NAME)だろ。
0283デフォルトの名無しさん2006/11/03(金) 08:11:55
というか(強制した時以外)大文字小文字の区別がない。> Lispのシンボル
0284デフォルトの名無しさん2006/11/03(金) 12:34:11
正確には「Common Lispは・・・」と言うべきだろう
0285デフォルトの名無しさん2006/11/05(日) 03:31:58
boostって Subversionではアクセスできないの?
cvsのみ?
0286デフォルトの名無しさん2006/11/05(日) 03:35:19
>>285
前から話は出てるんだけどねぇ。
次のリリースの後にしようとして、リリースが延び延びになってる気配。
ちゃんと ML 漁れば、他に理由があるのかもしれないけど。
0287デフォルトの名無しさん2006/11/05(日) 19:38:50
lambda_functor<U>のアドレスってどうしたらえられますか。
02882872006/11/05(日) 19:40:40
たとえば
(_1+_2)のようなラムダがあった場合
このlambda_functorのアドレスが知りたいのです。
0289デフォルトの名無しさん2006/11/05(日) 19:43:31
そんなものは存在しません
0290デフォルトの名無しさん2006/11/05(日) 20:40:51
>>289
無理か。諦めます。レスありがとう。
0291デフォルトの名無しさん2006/11/05(日) 21:10:34
md5やsha1を計算するライブラリありますか?
crcはあるようですが
0292デフォルトの名無しさん2006/11/05(日) 21:26:13
md5はそのままソース引っこ抜いて使えるようになってた。
この手の参照透過性のある関数を
特にパラメタライズするメリットは感じないが。
0293デフォルトの名無しさん2006/11/05(日) 21:28:38
MD5はRFCにあるソースはK&R式の関数宣言なんでC++としてコンパイルしようとすると失敗するはず。
0294デフォルトの名無しさん2006/11/05(日) 21:28:43
>md5はそのままソース引っこ抜いて使えるようになってた。
どこ?
0295デフォルトの名無しさん2006/11/05(日) 21:30:11
RFC
0296デフォルトの名無しさん2006/11/05(日) 21:30:37
>>295
ありがとう
0297デフォルトの名無しさん2006/11/05(日) 21:34:49
Boost には無いので
http://sourceforge.net/projects/cryptopp/
とか
http://botan.randombit.net/
とか
http://opensource.adobe.com/classadobe_1_1md5__t.html
http://opensource.adobe.com/group__adobe__sha.html
あたりで
0298デフォルトの名無しさん2006/11/05(日) 21:38:29
>>293

コンパイルはそのまま通ったと思う。
数年前のことなので記憶が不鮮明だが、GNUのbinutilsから引っこ抜いた気がする。
0299デフォルトの名無しさん2006/11/06(月) 00:37:42
>>293
そんなの1分で直せるじゃん
0300デフォルトの名無しさん2006/11/06(月) 14:32:48
まだ特定してないんだけど、spiritのどこかで
using namespace std; の記述があるみたいですね。
(std::coutが名前空間を指定せずに使えてしまった)
これってちょっと問題あるような…。
0301デフォルトの名無しさん2006/11/06(月) 14:40:05
$ grep -FR "using namespace std;" .
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./fusion/sequence/detail/manip.hpp: using namespace std;
./iterator/impl/file_iterator.ipp:using namespace std;
./phoenix/closures.hpp: using namespace std;
0302デフォルトの名無しさん2006/11/06(月) 14:42:18
>>267
>>273
>>275
こんなのあったんだね

Boost.MathToolkit
http://www.johnmaddock.co.uk/toolkit
http://lists.boost.org/Archives/boost/2006/10/111114.php
0303デフォルトの名無しさん2006/11/06(月) 15:26:41
>>300
>>301
>./iterator/impl/file_iterator.ipp
これがまずい.
他の使い方は関数内なので問題ないし,意図的というか必要な using directive.
0304デフォルトの名無しさん2006/11/06(月) 15:30:51
boost mailing list に
新しいライブラリーをaccept するかのreviewが投稿されてるけど

ただのユーザーとしてのreviewを投稿してもいいのかな?
0305デフォルトの名無しさん2006/11/06(月) 17:21:32
boostの中に
ClassNameって命名規則つかってるの1つもないのかな
例外なく
class_name
に修正されるのかな
0306デフォルトの名無しさん2006/11/06(月) 17:25:32
大文字って、そこだけ目立つから、見にくくなる。
あと長すぎるシンボルも関数の引数のところで行が折り返して見にくくなる。

boostってほどほどで良い感じ。
0307デフォルトの名無しさん2006/11/06(月) 17:34:22
ublas があるのに
boost.glasとかわけわかんね
http://glas.sourceforge.net/doc/papers/introduction/index.html
0308デフォルトの名無しさん2006/11/06(月) 20:27:15
>>305
Boost にはガイドラインがあって、そこでコーディングルールはある程度決まってる。
http://boost.org/more/lib_guide.htm

・クラス名や、メソッド名は class_name や method_name みたいにすること。
・テンプレートパラメータは TemplateParameter みたいにすること。
・分かりやすい名前にすること。
・マクロは MACRO_NAME みたいにすること。
0309デフォルトの名無しさん2006/11/06(月) 20:29:55
間違えた。
×マクロは MACRO_NAME みたいにすること。
○マクロは、すべて大文字で、BOOST_ からはじめること。
だな。
0310デフォルトの名無しさん2006/11/06(月) 22:27:44
>>304
投稿するのは自由だろう。「ただのユーザーとして」というのはちょっと引っかかるが。
不満を述べるだけじゃなくて、代案か、代案が出せないと考える理由を出すべきだろうね。

まぁ筋が通ってなければスルーされるだけ。何か考えがあるなら投稿しとけばいいと思うよ。
0311デフォルトの名無しさん2006/11/07(火) 08:21:16
「ただのユーザーとして」
っていう表現にどんな意味がこもっているかにもよるよね。

何となく
「恥かきそうだったり辛そうだったりしたら、いつでも綺麗にバッくれて
俺の人生においてすべてを"なかったこと"にできる道を確保したまま」
という意味な気がするんで、同じく引っかかる。
0312デフォルトの名無しさん2006/11/07(火) 08:58:36
>>311 は一生引っかかっていればいいと思うよ。
何かに。
0313デフォルトの名無しさん2006/11/07(火) 09:29:40
ドンピシャなら絶対噛み付いてくるだろうなと期待はしていたけどw
0314デフォルトの名無しさん2006/11/07(火) 09:31:05
>>312に言葉の重みを感じてちょっとワロタ
0315デフォルトの名無しさん2006/11/07(火) 10:55:34
まぁよっぽど悔しかったんだろ。
0316デフォルトの名無しさん2006/11/07(火) 19:41:42
>>226
GIL has been accepted as a boost library.
http://lists.boost.org/Archives/boost/2006/11/112896.php
0317デフォルトの名無しさん2006/11/07(火) 19:51:41
>>316
通ったのか!
0318デフォルトの名無しさん2006/11/07(火) 22:12:22
>>300 の問題は Spirit 1.84 だと修正されてた.
0319デフォルトの名無しさん2006/11/08(水) 01:18:37
>>316
accepted
なのはいいけど肝心の GILのホームページが見れない
0320デフォルトの名無しさん2006/11/08(水) 10:03:45
>>319
今は見れるようになってるね
0321gil2006/11/08(水) 11:30:18
acceptの感動で気絶してました。
0322デフォルトの名無しさん2006/11/08(水) 12:06:06
>>321 そのわりには Latest news が更新されていないじゃないか。
http://opensource.adobe.com/gil/
0323デフォルトの名無しさん2006/11/08(水) 12:29:56
gil頻繁に更新されてるみたいだけど
どこが変わったか書いてないんだよね
0324デフォルトの名無しさん2006/11/09(木) 01:40:50
GILをVS2003で早速使ってるけど
fatal error C1204: コンパイラの制限 : 内部構造がオーバーフローしました。
とかおきるのはVS2005に乗り換えればなんとかなるのかねえ
0325デフォルトの名無しさん2006/11/09(木) 10:16:50
で、1.34 はいつリリースなのかね?
0326デフォルトの名無しさん2006/11/09(木) 10:32:21
今店出ました
0327デフォルトの名無しさん2006/11/09(木) 11:56:38
延びないうちによろしく。
0328デフォルトの名無しさん2006/11/09(木) 14:18:57
boost::filesystem::pathのコンストラクタではパスを表す
文字列を与えますが、windowでドライブ名を含めたパスを
扱うにはどうすればよいでしょうか?
単純に
path("C:\hoge");
とすると落ちてしまいます。
0329デフォルトの名無しさん2006/11/09(木) 14:28:15
\\
0330デフォルトの名無しさん2006/11/09(木) 14:51:34
path::default_name_check( &native );
0331デフォルトの名無しさん2006/11/09(木) 16:09:25
name_check関数を設定すればえがったんですね。
ありがとうごぜーますた。
■ このスレッドは過去ログ倉庫に格納されています