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

Boostを語れゴラァ part3

レス数が1000を超えています。これ以上書き込みはできません。
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/ ;
0002デフォルトの名無しさん2006/09/23(土) 15:01:35
■関連書籍■
Boost C++ Libraryプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4798007862/

Beyond The C++ Standard Library
http://www.amazon.co.jp/exec/obidos/ASIN/0321133544/

C++ Template Metaprogramming
http://www.amazon.co.jp/exec/obidos/ASIN/0321227255/

The Boost Graph Library
http://www.amazon.co.jp/exec/obidos/ASIN/0201729148/

■関連スレ■
C++相談室 part46
http://pc8.2ch.net/test/read.cgi/tech/1136690107/

【C++】STL(Standard Template Library)相談室 4
http://pc8.2ch.net/test/read.cgi/tech/1130680264/

BOOTSを語れゴラァ part2
http://pc8.2ch.net/test/read.cgi/tech/1139266461/
0003デフォルトの名無しさん2006/09/23(土) 15:03:31
Loki
http://sourceforge.net/projects/loki-lib/

JTC1/SC22/WG21 - The C++ Standards Committee
http://www.open-std.org/jtc1/sc22/wg21/

POCO, the C++ Portable Components 
http://www.appinf.com/poco/info/
http://sourceforge.net/projects/poco/

The unofficial BCB Boost patches
http://bcbboost.sourceforge.net/
0004デフォルトの名無しさん2006/09/23(土) 15:04:37
> 1.34 では Pointer Container のシリアライザも用意されるみたいだね 
http://boost.cvs.sourceforge.net/boost/boost/boost/ptr_container/ptr_vector.hpp?view=log

Unresolved Issues: CVS-RC_1_34_0 
http://engineering.meta-comm.com/boost-regression/CVS-RC_1_34_0/developer/issues_release_.html ; 
0005デフォルトの名無しさん2006/09/23(土) 15:19:51
>>4 のリンクがうまくはれていないので修正。
Unresolved Issues: CVS-RC_1_34_0
http://engineering.meta-comm.com/boost-regression/CVS-RC_1_34_0/developer/issues_release_.html
>>1 乙
0006デフォルトの名無しさん2006/09/23(土) 20:09:13
乙
ところで前スレはどういう流れだったっけ
0007デフォルトの名無しさん2006/09/23(土) 20:19:46
コレ、まだ残ってたのかw↓
BOOTSを語れゴラァ part2
http://pc8.2ch.net/test/read.cgi/tech/1139266461/
0008デフォルトの名無しさん2006/09/23(土) 20:43:09
>>7
そこはどう見ても履き物についてのスレだw
0009デフォルトの名無しさん2006/09/23(土) 20:59:44
板違いスレか、服飾系板に強引に立てたネタスレかと思ったら素で間違えてんのかw
0010デフォルトの名無しさん2006/09/23(土) 21:39:37
ずいぶんと懐かしいな
0011デフォルトの名無しさん2006/09/23(土) 22:48:14
>>7
ホンマにブーツの話してるしw
0012デフォルトの名無しさん2006/09/24(日) 00:08:55
>>11
間違いは間違いとして、その後で内容のほうを合わせようという建設的な態度は評価できるな
0013デフォルトの名無しさん2006/09/24(日) 00:23:34
そういえば、自らの国家や民族に固執する(ry じゃなくて、C#スレを立てようとした 1 が
スレタイに半角の # が使えないことを知らなくてスレタイから # が消えて、
そのまんま C 言語のスレになったってのもあったな。
0014デフォルトの名無しさん2006/09/24(日) 00:49:11
1のリンク先のレッツブーストつぶれちょる?
version134ていつでるんでしょうか、10月中にはでます?
0015デフォルトの名無しさん2006/09/24(日) 01:31:11
>>14

いや、ちゃんとあるよ。
>>1のURLから最後の空白を削ってみろ
0016デフォルトの名無しさん2006/09/24(日) 05:09:00
うむむ、なぜか空白が追加されてるね、末尾に。
>>1 のリンクって。
0017デフォルトの名無しさん2006/09/24(日) 06:18:04
boost::filesystem の directory_iterator って、
いわゆるコンテナクラスライブラリのイテレータとは書式が違うね。
0018デフォルトの名無しさん2006/09/24(日) 09:10:31
違わない。
0019デフォルトの名無しさん2006/09/24(日) 09:40:14
あ、ごめん、begin() とか end() とか無いね、
って言う意味だった。
0020デフォルトの名無しさん2006/09/24(日) 09:45:17
それはコンテナの方の特徴だな。
begin()/end()を持っている方が少数派。
例えばiostream。
0021デフォルトの名無しさん2006/09/24(日) 17:51:52
Visutl Studio 2005 Express Edition で Boost をインストールしようとしたのですが
ワーニングがいっぱいでて1時間以上まって エラーも5個でて、

regexp の例題をコンパイルしてもエラーでだめでした。(エピステーメさんのHPの)

Boost を 2005 EE にインストールする方法を書いてあるHPがありましたが教えてください。

よろしくおねがします。
0022デフォルトの名無しさん2006/09/24(日) 18:03:18
有ったのか無かったのかどっちやねん
0023デフォルトの名無しさん2006/09/24(日) 19:49:32
boost_1_33_1 は変な文字コードがまざってるから、VC++ 2005 だと警告が出ますね。
該当コメントを削除しちゃえば出なくなりますよ。

Copyright 宣言もあるから、削除したのを再配布するのはよくないね。

boost_1_33_1/boost/filesystem/exception.hpp
boost_1_33_1/boost/filesystem/directory.hpp
boost_1_33_1/libs/filesystem/src/exception.cpp
boost_1_33_1/libs/filesystem/src/operations_posix_windows.cpp
(c) と、Dietmar なんちゃらって人の名前。

boost_1_33_1/boost/lexical_cast.hpp
boost_1_33_1/boost/type_traits/is_base_and_derived.hpp
Terje なんちゃらって人の名前。

boost_1_33_1/libs/regex/src/regex_traits_defaults.cpp
キャラクタテーブルのコメント。いぱーい。
0024デフォルトの名無しさん2006/09/24(日) 20:23:11
>>23 Unicode で保存し直すとかでも回避できたっけ?
0025デフォルトの名無しさん2006/09/24(日) 20:34:16
>>21
何をして何のエラーが出たのか書いてよ。

PlatformSDK Build Environment
vcvars32.bat
boost/regex/user.hpp ->例題によってはこれの設定必要
bjam
の順で自分はやってるけど?
0026デフォルトの名無しさん2006/09/24(日) 22:09:10
なんで lexical_cast<std::wstring> はあるのに、
lexical_cast<std::string> は無いんだろう。
0027デフォルトの名無しさん2006/09/24(日) 23:07:45
使えるけど...

#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp>

int main()
{
std::string s1 = boost::lexical_cast<std::string>(1234);
std::string s2 = boost::lexical_cast<std::string>(3.14);
std::cout << s1 << std::endl << s2 << std::endl;
return 0;
}
0028デフォルトの名無しさん2006/09/25(月) 10:33:45
auto_ptr から shared_ptr に所有権を移しかえられますか?

boost::shared_ptr<T> sp;
std::auto_ptr<T> ap(new T);
sp = ap;

この後、sp を使って当該オブジェクトを弄り回したいんですが、
ap はきちんと所有権を失っていてくれることが保証されていますか?
つまり ap も所有権を主張していて、スコープを外れた途端に
いきなりデストラクタを呼び出しに行ったりしませんか?
0029デフォルトの名無しさん2006/09/25(月) 10:51:52
>>28
ttp://boost.cppll.jp/HEAD/libs/smart_ptr/shared_ptr.htm
0030デフォルトの名無しさん2006/09/25(月) 10:54:55
気になるなら明示的にrelease()すればいいんじゃね
0031デフォルトの名無しさん2006/09/25(月) 10:57:53
>>28
何故自分で試さない?
0032デフォルトの名無しさん2006/09/25(月) 11:37:05
>>29
リンク先の「タイプ量(コード量)を減らそうとして...」ての知らなかたよ。
0033デフォルトの名無しさん2006/09/25(月) 12:26:03
eps_p(P)でPにセマンティックアクション付けられないの?
0034デフォルトの名無しさん2006/09/26(火) 12:54:58
>>21
多分一部のlibコンパイルに失敗してる
奇遇にも昨日EEへの導入したときに同じヘマしたので俺の場合の解決手順を書いとこう 
EEインスコの自動設定以外の(SDKとかへの)パスは通してない

set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include
C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat をDOS窓に投げて実行
bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install

事前にDOS窓の高さバッファ9999にするとか
--prefix をわざとD:\Prog.. ってして作業内容把握できるようにすると判りやすいかも
0035デフォルトの名無しさん2006/09/26(火) 21:33:46
>>33
eps_p(p) >> p[f] ではだめなのか?
0036デフォルトの名無しさん2006/09/26(火) 23:04:56
>>35
ちょっと量が多すぎてvectorにpush_backじゃ厳しいから
まずPにマッチする行数をincrement_aでカウントした後一気にメモリー確保して、
その後でdetailed_Pで実際にパースしようとしてるんだわ。
そうしたらマッチしてるのにセマンティックアクションが動かなくてさ。
うまくいかないからとりあえず普通にPでマッチさせて、そこからもう一回
bindでparse呼んでるんだけど、これが正しい解なのか悩んでる。
0037デフォルトの名無しさん2006/09/27(水) 02:19:48
ドキュメントに書いてあるんだが。

http://www.boost.org/libs/spirit/doc/epsilon.html
0038デフォルトの名無しさん2006/09/30(土) 00:11:40
|ω・)  1_34は〜まだかな〜
0039デフォルトの名無しさん2006/09/30(土) 20:11:48
1.34はコードの量が倍くらいになるんじゃないか
0040デフォルトの名無しさん2006/09/30(土) 22:40:11
bcc5.5 日本語でboost のビルドは
無理なんでよね?^^;
0041デフォルトの名無しさん2006/09/30(土) 23:45:34
日本語でビルドってどういう意味だ?
0042デフォルトの名無しさん2006/09/30(土) 23:48:41
ライブラリの構築、ぐらいでいいんじゃね?
0043デフォルトの名無しさん2006/10/01(日) 00:16:46
「構築する」
0044デフォルトの名無しさん2006/10/01(日) 00:32:57
んじゃコンパイルは
0045デフォルトの名無しさん2006/10/01(日) 00:45:35
>>44
元来の英語の意味は「蒐集する、編纂する」というニュアンス。
コンピュータ用語としては「コンパイル」が広く普及しているので、そのままで桶。
0046デフォルトの名無しさん2006/10/01(日) 00:50:42
コンパイルは、過労働で疲労困憊する、ってことかと思ってました。
0047デフォルトの名無しさん2006/10/01(日) 00:51:40
あれだろ。サイレントメビウス書いた人の漫画
0048デフォルトの名無しさん2006/10/01(日) 01:17:53
関数を書くときに
OptionalとExpressionTemplate使って辺値を
数式と計算に分離できるようにできるかな?

できたら数式のままいろんな計算できそうなんだけども。
0049デフォルトの名無しさん2006/10/01(日) 01:20:59
のーみそこねこね
0050デフォルトの名無しさん2006/10/01(日) 01:52:05
最近ハートが付いて復活したな…
0051デフォルトの名無しさん2006/10/01(日) 06:59:28
1.34 全裸正座待ち中
0052デフォルトの名無しさん2006/10/01(日) 08:43:49
CVSで最新取って来ればいいのに
0053デフォルトの名無しさん2006/10/01(日) 09:28:27
プレイだから
0054デフォルトの名無しさん2006/10/01(日) 16:40:13
日本人は低能知能なのには呆れますね。
私達中華人民はあなたたちの掲示板を拝見して笑ってみてますよ。ではありがとうございました。
0055デフォルトの名無しさん2006/10/01(日) 17:01:27
ありがとう!
0056デフォルトの名無しさん2006/10/01(日) 17:18:50
礼儀正しい方だね
0057デフォルトの名無しさん2006/10/02(月) 00:49:04
こころゆくまで拝見してください
0058拝して見るのはあくまで自分な2006/10/02(月) 12:19:15
>>57
日本語でどうぞ。
0059デフォルトの名無しさん2006/10/02(月) 12:22:28
>54を見れ
0060デフォルトの名無しさん2006/10/02(月) 12:58:34
自敬表現も日本語だろ。
0061デフォルトの名無しさん2006/10/02(月) 19:30:53
中華人民は煽りも丁寧だな。さすが中華
0062デフォルトの名無しさん2006/10/02(月) 23:41:17
うむ、我々もこういった物腰を見習わなければならんね。
0063デフォルトの名無しさん2006/10/03(火) 00:51:37
他のスレでもやってたけど、ここでも塩撒いとこうぜ。
六四事件 天安門
0064デフォルトの名無しさん2006/10/03(火) 06:57:16
台湾独立万歳!
0065デフォルトの名無しさん2006/10/04(水) 12:38:27
まあ俺らがこのスレでやってることは彼らが2000年位前にすでに通った道だからな
0066デフォルトの名無しさん2006/10/04(水) 12:43:21
>>65
そうそう。今では見る影もないけどね。>彼ら
0067デフォルトの名無しさん2006/10/04(水) 15:53:11
じゃあ、俺たちもいずれ・・・
0068デフォルトの名無しさん2006/10/08(日) 01:51:46
boost::operators見てこんな書き方が出来るの初めて知ったよ…

struct foo {
friend bool operator+(const int &lhs, const foo &rhs) {
//...
};
};
0069デフォルトの名無しさん2006/10/08(日) 02:01:04
割と基本的なことだな
0070デフォルトの名無しさん2006/10/08(日) 02:01:39
Barton-Nackman Trick
その本来の目的で使われることが無くなった、
興味深いworkaroundのコード。
テンプレート関数のオーバーロードができなかった時代に考案されたという……。
ADLの助けを借りずしてその関数を呼び出すことは不可能とされている。

民明書房「黎明期の貧弱なコンパイラとその制約」より
0071デフォルトの名無しさん2006/10/08(日) 04:05:12
wserializationって、もしかしてまだ準備中?
Boostを導入しようと思ったきっかけが
シリアライズが楽にできそう、なんで、いきなり挫折しそう
0072デフォルトの名無しさん2006/10/08(日) 23:41:59
特に問題はないと思うが。
ただ大域locale(std::locale::global)の設定をしないとうまくいかない場合があるはず。
0073デフォルトの名無しさん2006/10/09(月) 19:16:27
>>72
よかった、頑張ってみます
さんくす
0074デフォルトの名無しさん2006/10/10(火) 00:04:36
boost::filesystem::wpath
1.34 わくわく
0075デフォルトの名無しさん2006/10/10(火) 09:41:46
てか、まだ 1.34 のレグレッションテストぜんぜん通ってないよ。
0076デフォルトの名無しさん2006/10/10(火) 20:07:44
vc8 + STLport5.0.2 + Boost1.33.1の組み合わせを実行している人っていますか?
0077デフォルトの名無しさん2006/10/10(火) 22:07:18
残念。
俺はvc8 + STLport5.1.0 + Boost1.33.1だ。
0078デフォルトの名無しさん2006/10/10(火) 23:31:01
1.34て今年中には出るのか!?
0079762006/10/11(水) 12:53:48
>77さん
よろしければ その時のBOOSTのインストール方法をお教えいただけますか?
0080デフォルトの名無しさん2006/10/11(水) 19:00:27
>>68
というか、「出来ないんじゃないか」と考える理由の方がわからんが?
0081732006/10/11(水) 20:35:01
あれから、ワイド文字を使わないシリアライズはできるようになりました
しかし、wchar_t文字列のシリアライズコードを書いてみたのですが動作しません
コードは25行なんですが、コードに関する質問は
質問スレのほうに書いたほうがよいでしょうか
0082デフォルトの名無しさん2006/10/11(水) 20:37:58
ここでしなかったらスレが無駄過ぎる
0083732006/10/11(水) 20:47:31
そうですね、では

現在、コンパイルすると次のエラーがでます
C2027: 認識できない型 'boost::STATIC_ASSERTION_FAILURE<x>' が使われています
↑コンパイル時の展開関係などがわかるようなデバッガがほしい・・

以下コード。
#include <tchar.h>
#include <locale>
#include <iostream>
//#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_woarchive.hpp>
//#define BOOST_LIB_NAME boost_serialization
#define BOOST_LIB_NAME boost_wserialization
#include <boost/config/auto_link.hpp>

class test{
 wchar_t* str;
 template <class Archive>
 void serialize(Archive& ar, const unsigned int version){
  ar & str;
 }
 test(){_tcscpy_s(str,(sizeof(_T("TEST"))+1)*2,_T("TEST"));}
};
int main(){
 test te();
 std::locale::global(std::locale("japanese"));
 boost::archive::text_woarchive oa(std::wcout);
 //boost::archive::text_oarchive oa(std::cout);
 oa & te;
 return 0;
}
0084732006/10/11(水) 20:53:31
あ、メモリ確保してない^^;
0085デフォルトの名無しさん2006/10/11(水) 22:08:27
>>83
C2027ってことはVisual C++だろ。
出力の中から、エラーを起こしたテンプレートがどこから実体化されたのか辿れるようになっている。
0086732006/10/11(水) 22:21:21
>>85
まじすか、情報ありがとうございます!

あの後、組み込み型での実行は諦めてwstringバージョンを作りました
一応ちゃんと動作しますが、#elifディレクティブのほうは文字化けします

#include <tchar.h>
#include <string>
#include <iostream>
#include <fstream>
#include <locale>
#include <boost/archive/text_woarchive.hpp>
#include <boost/archive/text_wiarchive.hpp>
#include <boost/serialization/string.hpp>
#define BOOST_LIB_NAME boost_serialization
#include <boost/config/auto_link.hpp>
0087732006/10/11(水) 22:23:10
class Test{
public:
 Test(std::wstring s):str(s){};
 std::wstring str;
private:
 friend class boost::serialization::access;
 template<class Archive> void serialize(Archive& ar, const unsigned int version){
  ar & str;
 }
};

int main(int, char**){
 std::wcout.imbue(std::locale(""));
 Test te(_T("日本語文字列の入力テスト"));
#if 1
 std::wofstream ofs(_T("out.txt"));
 boost::archive::text_woarchive oa(ofs);
 oa & te;
 ofs.close();
 std::wifstream ifs(_T("out.txt"));
 boost::archive::text_wiarchive ia(ifs);
 ia & te;
 ifs.close();
 std::wcout << te.str << std::endl;
#elif 1
 boost::archive::text_woarchive ar(std::wcout);
 ar & te;
#endif
 return 0;
}
0088772006/10/11(水) 22:23:11
>>79
まずはbjam.exeをゲットしてboostのフォルダに入れておく。
それから、次のようなバッチファイルを作って、実行。

cd "boostのフォルダ"
set INCLUDE=STLportのヘッダのフォルダ;%INCLUDE%
set LIB=STLportのライブラリのフォルダ;%LIB%
call "C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
bjam -sTOOLS=vc8_0 --prefix="ライブラリの生成先フォルダ" install

深くは使ってないんで、完璧にうまくいってるかは分からないけど。
0089762006/10/12(木) 13:23:24
77さん書き込みありがとうございます。
その方法でやってみるとBoostとSTLportがVC8上で共存できませんでした。

>bjam -sTOOLS=vc8_0 --prefix=
ではなく
bjam -sTOOLS=vc8_0-stlport --prefix=
が公式HP上で出るのを待つしかないのでしょうか??
0090デフォルトの名無しさん2006/10/12(木) 15:28:52
>>89
ぐぐったらでてきた
http://d.hatena.ne.jp/Hossy/20060926
0091772006/10/12(木) 18:42:34
普通に使えてるけど……
0092デフォルトの名無しさん2006/10/12(木) 20:51:42
もはやboost無しでは生きていけない。
cygwinにboostのパッケージが用意されていて助かった。
0093デフォルトの名無しさん2006/10/12(木) 21:01:59
じゃぁ死ね
0094デフォルトの名無しさん2006/10/12(木) 21:07:00
>>93
何だとゴルァ!
0095デフォルトの名無しさん2006/10/12(木) 21:32:05
C++をどっぷりやってる人のblogとかは
boost使ってない事が無いな
0096デフォルトの名無しさん2006/10/12(木) 21:36:26
boost禁止のプロジェクトにアサインされて死ねばぁ
0097デフォルトの名無しさん2006/10/12(木) 21:58:03
つうかboostOKのプロジェクトなんてそうないだろ

0098デフォルトの名無しさん2006/10/12(木) 22:02:52
>>95
んなこたない。boost使ってない奴はC++にどっぷりじゃないと思ってるだけだろ
0099デフォルトの名無しさん2006/10/12(木) 23:26:17
>>98
つまり>>95にとって「C++どっぷり」と「boost使う」が同値なわけか
0100デフォルトの名無しさん2006/10/12(木) 23:30:55
C++に詳しい奴がboost使うと思ってるんだろ。
実際は逆なんだけどな。
0101デフォルトの名無しさん2006/10/12(木) 23:36:14
ああ、本当にC++に詳しい奴はBoostを作る、だからな。
0102デフォルトの名無しさん2006/10/12(木) 23:37:59
>>100
逆っていうか、相関性はあまりない気が
詳しいかどうかじゃなくて、便利だから使うだけだしな
0103デフォルトの名無しさん2006/10/12(木) 23:38:10
>>100-101
激しく同意
0104デフォルトの名無しさん2006/10/12(木) 23:56:51
どっぷりというか魅せられた奴が多いとは思う
0105デフォルトの名無しさん2006/10/13(金) 00:10:38
>>95
アイディアとかは参考にするし、似たようなもの実装することもあるし、
既に似たようなもの作ってたりとかだなあ。
スレッドとかファイルシステムとかのライブラリって結局自前じゃないと
いろいろ融通が利かなくって、他人のはめんどくさい気がするんだよなあ。
ちょっとずれるけど、C++もCPANみたいにFTPとかXMLとか応用的なライブラリが
まとまって管理されたりするといいなあとか思うな
0106デフォルトの名無しさん2006/10/13(金) 00:35:18
GILみたいになんでもかんでもboostに投げればいいんじゃないかな?
0107デフォルトの名無しさん2006/10/13(金) 07:54:25
大したことない自前ライブラリ使ってるから投げられないと思われ
0108デフォルトの名無しさん2006/10/13(金) 08:55:25
まあ新しいライブラリとかが出たときは、いつでも「なんでもできるし、
もう自分で作る必要はない」とか売り文句がついてくるんだけどさ。
OWLとかMFCもATLもそうだったけど、そういうのの上位に作るとさ、その
ライブラリの衰退と共に自分のコードも死んじゃうんだよね。
あと、自前はたいしたことなくていいんだよ。必要なときに必要な箇所を
実装すればいいんだからさ。
0109デフォルトの名無しさん2006/10/13(金) 09:12:12
Boostはその特性からして、衰退するときはC++と同時だと思うが。
0110デフォルトの名無しさん2006/10/13(金) 09:29:40
それはそうかもね。MFCとかよりはだいぶ標準よりだろうし。
まあ、boostの場合は衰退の前にもっと繁栄しないとかなと。。
0111デフォルトの名無しさん2006/10/13(金) 10:17:36
今は、C++からの逃げ道としてC#やjavaが用意されている時代です。
0112デフォルトの名無しさん2006/10/13(金) 12:16:24
>>101
boostの開発者は自分で使いたいから作ったんじゃないの?
自分では使わないけれど他人に使わせるために作ってるわけ?
105の言うとおりに同等品を既に作ってあるとかなら別だけど。
0113デフォルトの名無しさん2006/10/13(金) 12:37:39
人は何故mplを作るのか?
そこにテンプレートメタプログラミングがあるからだ。
0114デフォルトの名無しさん2006/10/13(金) 12:42:21
>>112
ただboostを使ってるだけの連中は、boostを作ってる連中に比べれば全然C++に詳しくない。
って話だろ?
0115デフォルトの名無しさん2006/10/13(金) 12:44:10
プロジェクトで使えなくとも、Boost のヘッダ見て部分的に移植するのは
いろいろと勉強になって楽しいけどな
特に detail/ 以下漁るといろんなモノ発掘できて楽しいw
0116デフォルトの名無しさん2006/10/13(金) 12:48:55
>>114
ただC++コンパイラを使っているだけの連中は、C++コンパイラを作っている連中に比べれば(ry
0117デフォルトの名無しさん2006/10/13(金) 19:18:21
>>115
たしかに。lightweight_mutex (shared_ptr で使用)だの、
phoenix (spirt で使用) だのは、ブラッシュアップして表に出して欲しいくらい。
0118デフォルトの名無しさん2006/10/13(金) 22:14:55
でも、同等機能が複数あるのはやだなあ。統一してほしいものだ。
phoenixはlambdaと統合中とかどこかでみたような。。
0119デフォルトの名無しさん2006/10/14(土) 13:11:22
>>105
順番の問題じゃない?下位のクラスが安定してきたらそのうちできるでしょ。
spirit使えばXMLパーサの実装も理屈的にはBNFを移すだけになるしさ。
0120デフォルトの名無しさん2006/10/14(土) 16:27:50
C++ の場合は空間効率と実行効率の要求が分野によって全然違う上に、
そこをいくらでもチューンナップできる自由度もあるので、
なかなか汎用的な低レベル層を作るのは難しいという気がする。

で、それをテンプレートポリシー化によって汎用的にしすぎると
今度はコンパイル時間が許容できなくなったり、言語非互換の壁に
ぶちあたったりするという罠。
0121デフォルトの名無しさん2006/10/16(月) 17:59:04
伸びないねこのスレ

C++は詳しくないけど面白そうなのでboost::spiritを学び始めた
どういったことに使おうかなーって思って
BNFの具体的な使われ方を調べようと思ったんだが
ググっても基本的な使い方ばっかりがヒットするorz

正規表現雑技のページとかが理解できたら
幅が広がりそうだが
今度は逆に応用過ぎて理解できない
0122デフォルトの名無しさん2006/10/16(月) 18:19:59
おもしろいけど
ミニ電卓作るとか
自前でXMLパーサ作る位しか思いつかなかった

頭ひねって普通にCで書いた方がコンパイル速度でイライラしなくて済むけど…
0123デフォルトの名無しさん2006/10/16(月) 19:26:36
すでにある程度作ってしまったプログラムの構造を変えずに
おまけ機能を追加するときに、
bindとかは大活躍してる

lambdaは使いこなせてない
0124デフォルトの名無しさん2006/10/16(月) 20:11:14
そこでboost::lambda::bindですよ。
0125デフォルトの名無しさん2006/10/17(火) 00:01:29
boost::interprocessって8月のも10月のもexampleにある奴すら
ビルドできないんだけど、誰かどこに手を入れればいいかわかる人居ます?
0126デフォルトの名無しさん2006/10/17(火) 08:53:42
まあまだ日本で実務でばりばり使ってますって人は少ないんじゃない?
C++上級者が興味を持って、調べてる的な感じだよね。
てか、商用ではJavaかスクリプトになりそうだから、クロスでC++って
需要あんまなさそうとか。。
0127デフォルトの名無しさん2006/10/17(火) 15:02:46
C++を(C++的に)使ってる人自体がまず少なそう。
0128デフォルトの名無しさん2006/10/17(火) 15:33:05
んなアホな
0129デフォルトの名無しさん2006/10/17(火) 16:11:04
lang = c++
lang == c
こういうことか!

…すいません。でも仕事で非標準(かつ多機能)のライブラリの利用を認めてるとこは多くないんじゃない?
0130デフォルトの名無しさん2006/10/17(火) 18:35:35
shared_ptrに感動しますた
さりげなくスレッドセーフになっていてcoolです
0131デフォルトの名無しさん2006/10/17(火) 21:50:45
スレッドセーフだったっけ?
0132デフォルトの名無しさん2006/10/17(火) 21:55:43
参照カウンタの部分はスレッドセーフだな
0133デフォルトの名無しさん2006/10/17(火) 22:47:21
誘導されてきました

int main(int argc, char * argv[])
{
boost::numeric::ublas::vector<float > vec(2);

vec(0)=1.0;vec(1)=2.0;
boost::function1<
float,boost::numeric::ublas::vector<float>
> norm_2Functor = &boost::numeric::ublas::norm_2<boost::numeric::ublas::vector<float> >;
float out= norm_2Functor(vec) ;
}

想定外のメモリーを参照しました
で落ちる。何が悪いのだろう。
0134デフォルトの名無しさん2006/10/18(水) 16:38:12
オフィシャルサイトに何が起こったんだろう。
0135デフォルトの名無しさん2006/10/18(水) 16:58:41
SFのipが変わったせいで転送に失敗してるとさ
じきに直るでしょ
0136デフォルトの名無しさん2006/10/18(水) 17:02:39
あと急ぎの用があるなら
http://boost.sourceforge.net/
0137デフォルトの名無しさん2006/10/18(水) 17:37:55
おお、さんきゅー!
0138デフォルトの名無しさん2006/10/19(木) 00:32:34
>>132
でふぉでそうだったっけ?そしたら遅くないか?
0139デフォルトの名無しさん2006/10/19(木) 00:35:46
スピンロックかも
0140デフォルトの名無しさん2006/10/19(木) 00:49:28
Win32だとInterlockedExchange()あたり使ってるんじゃなかったか。
0141デフォルトの名無しさん2006/10/19(木) 01:43:59
>>138 つ boost/detail/sp_counted_base.hpp
0142デフォルトの名無しさん2006/10/19(木) 03:24:06
>>133
VC8+boost1.35で試したらちゃんと動いたけど
使ってるコンパイラとboostのバージョンは?
01431332006/10/19(木) 09:30:48
>>133
>>142
VC2003 + boost 1.33.1
です
とりあえずboostのバージョンあげてきます
01441332006/10/19(木) 09:34:24
http://sourceforge.net/project/showfiles.php?group_id=7586
boost1.35なんてないよ
0145デフォルトの名無しさん2006/10/19(木) 11:14:37
>>144
CVSの最新版が1.35
0146デフォルトの名無しさん2006/10/19(木) 11:36:49
>133
out = 2.236068
g++(mingw3.4.5)+boost1.33.1 でも問題ないようにみえます。
0147デフォルトの名無しさん2006/10/19(木) 11:43:43
コンパイラか
0148デフォルトの名無しさん2006/10/19(木) 11:46:32
>>133
VC8+boost1.33.1でもちゃんと動くね
0149デフォルトの名無しさん2006/10/19(木) 16:25:42
>>133
VC2003で試したら落ちたのでアセンブリ出力を調べてみた。

function1<float, ublas::vector<float> > norm_2Functor = &ublas::norm_2<ublas::vector<float> >;

and eax,00402fd0 ; ここがおかしい。なんでANDやねん...(00402fd0はnorm_2のアドレス)
push eax ; VC8では2行あわせてpush 00402fd0だけになっている
lea ecx,dword ptr [ebp-3c]
call 00403040
mov byte ptr [ebp-04],01


で、norm_2Functorの宣言をこうしたらとりあえず動いた。
function1<float, ublas::vector<float> > norm_2Functor(&ublas::norm_2<ublas::vector<float> >);

push +00 ; この00は何なんだろう…
push 00402fd0
lea ecx,dword ptr [ebp-3c]
call 00403040
mov byte ptr [ebp-04],01

よくわからないpush 00がとても不安だけど…(VC8ではpushはひとつだけ)
0150デフォルトの名無しさん2006/10/20(金) 21:04:32
VS2003ではfunction1を初期化
norm_2Functor(&ublas::norm_2<ublas::vector<float> >);
でしか呼べないのね。
objectの意味ねえ
0151デフォルトの名無しさん2006/10/20(金) 21:49:33
>>150
function1<float, ublas::vector<float> > norm_2Functor(NULL);
で宣言しておいてswap技法
function1<float, ublas::vector<float> >(&ublas::norm_2<ublas::vector<float> >).swap(norm_2Functor);
で実際の関数を代入とか…

ヤッテランネ(ノ`□´)ノ⌒┻━┻
01521512006/10/20(金) 21:52:00
メンバ関数のswapがないから
swap(norm_2Functor, function1<float, ublas::vector<float> >(&ublas::norm_2<ublas::vector<float> >));
でないと無理か

そもそもできるかどうか知らんけど
0153デフォルトの名無しさん2006/10/20(金) 22:03:06
腐ったコンパイラでなんとかしようという努力は不毛だぜ
0154デフォルトの名無しさん2006/10/20(金) 22:38:40
>>152
そもそも一時オブジェクトをswapの引数にはできん
0155デフォルトの名無しさん2006/10/20(金) 23:17:36
>>154
--->?swap技法?
0156デフォルトの名無しさん2006/10/21(土) 00:24:57
中国人は帰れよ
0157デフォルトの名無しさん2006/10/21(土) 00:43:07
>>155
意味不明
0158デフォルトの名無しさん2006/10/21(土) 00:43:28
>>154
vectorが確保するメモリを要素数ぴったりに合わせるテクニックで
x.swap(std::vector<T>(x));
ってのがあったと思うけど、これもダメなの?
0159デフォルトの名無しさん2006/10/21(土) 00:46:06
一時オブジェクトをswapの引数にするのは何も問題ない(ちゃんとしたコンパイラなら)
0160デフォルトの名無しさん2006/10/21(土) 00:50:03
constでない参照引数に一時オブジェクトはダメじゃなかったっけ?
0161デフォルトの名無しさん2006/10/21(土) 01:01:03
>>158
VC++2003で警告レベルを最高にするとwarningになるな。
0162デフォルトの名無しさん2006/10/21(土) 01:27:59
23.1 Container requirementsによればa.swap(b)とswap(a,b)は同じで、
25.2.2 Swapによれば
template<class T> void swap(T& a, T& b);
1 Requires: Type T is Assignable.
とあるから、できないんじゃね?
と思ってx.swap(std::vector<T>(x));とやったらVC++2005でエラーになった。
と思ったらstd::vector<int>(x).swap(x);は通った。
何じゃこりゃ。
0163デフォルトの名無しさん2006/10/21(土) 02:05:58
>>158
swap技法はstd::vector<T>(x).swap(x);じゃない?
0164デフォルトの名無しさん2006/10/21(土) 07:43:54
>>162
template<class T> void swap(T& a, T& b);
はaもbも非const参照だから、一時オブジェクトを受け付けない。

std::vector<int>(x).swap(x);は、
std::vector<int>(x)が一時オブジェクトだが非constなので、非constなメンバ関数を呼べてしまう。
0165デフォルトの名無しさん2006/10/21(土) 08:54:42
>>158
お前何にもわかってないのな

>>159
馬鹿確定
0166デフォルトの名無しさん2006/10/21(土) 10:01:26
あ、一時オブジェクトに対して非constメンバを呼ぶのはいいのか。
0167デフォルトの名無しさん2006/10/21(土) 21:13:06
int add(int a,int b){return a+b;} があるとして、
boost::function<int (int,int)> f = add; はコンパイルできるわけですが、

boost::function<boost::function<int,int> (int)> g = add; のようなことがしたい場合はどうし
たらよいでしょうか?addを、int->int->int ではなく int-> (int->int) として扱いたいというか。

gに、あとで(addの)第一引数を渡して、boost::function<int,int>型の関数オブジェクトを得て、
更にその後で(addの)第二引数を渡し、最終結果を得たいという感じです。
01681672006/10/21(土) 21:20:16
fをgに変換する方法でも結構です。
よろしくおながいします
0169デフォルトの名無しさん2006/10/21(土) 21:44:22
>>167
どうしてもその変換をしないと駄目?
第一引数が既にあるならそれを部分適用することは簡単なんだが。
0170デフォルトの名無しさん2006/10/21(土) 22:05:03
思った程大変じゃなかった。

# include <boost/function.hpp>
# include <boost/lambda/lambda.hpp>
# include <boost/lambda/bind.hpp>
# include <iostream>
# include <functional>

namespace lam = boost::lambda;

int main(void)
{
  typedef boost::function<int (int, int)> f_type;
  f_type f = std::plus<int>();
  boost::function<boost::function<int (int)> (int) >
    g = lam::bind(std::bind1st<f_type, int>, f, lam::_1);
  std::cout << g(7)(2) << '\n';
}
01711672006/10/21(土) 22:05:15
>>169
第一引数の部分適用が簡単なのは承知しているのですが…変換希望です。

01721672006/10/21(土) 22:23:29
>170
ありがとうございます。やってみます。
0173デフォルトの名無しさん2006/10/21(土) 23:04:05
boost::bindでもいけるね
0174デフォルトの名無しさん2006/10/21(土) 23:10:30
>>173
いってみてよ
0175デフォルトの名無しさん2006/10/22(日) 01:05:59
template <typename A, typename B, typename C> int foo(A a, B b, C c) { return 0; }
template <typename A, typename B> int foo(A a, B b) { return 0; }
に対して、後者の関数をbindするつもりで
boost::bind(foo<int,int>, _1, 100);
すると、no matching function for call to ‘bind(<unresolved overloaded function type>, boost::arg<1>&, int)’
とか言われてしまうんだが、これって回避策ありますか?

gcc4.1です
0176デフォルトの名無しさん2006/10/22(日) 01:12:24
>>175
boost::bind(static_cast<int (*)(int, int)>(foo), _1, 100)
0177デフォルトの名無しさん2006/10/22(日) 12:38:25
>>175
class Void{}Void_v;
template<class T1, class T2, class T3=Void>struct select_f;
の特殊化を作ってfooの引数にVoid型があるなしで選択するとかは。
0178デフォルトの名無しさん2006/10/22(日) 12:42:09
>>177
は?
0179デフォルトの名無しさん2006/10/22(日) 12:43:22
>>177
175は関数テンプレートな訳だが..
01801772006/10/22(日) 13:30:36
>>179
えーと、あいまいな関数オーバーロードの解決にはキャストあたりが手っ取り早いと思うけど
そこで、
template <typename A, typename B, typename C>
int foo(A a, B b, C c) { return select_f<A, B, C>()(a, b, c); }// put away foo else
・・・
boost::bind(foo<int,int, Void>, _1, 100, Void_v);
こんな感じでキャストを使わない方法の案を提供したかったわけですよ。
0181デフォルトの名無しさん2006/10/22(日) 13:39:27
キャストを使わないでそれを使うことに何の意味があるの?

あと、>177のように何の前置きにもなしに言って、理解してくれるエスパーだと思ったの?
01821772006/10/22(日) 13:55:49
>>181
キャストを使わない。
キャストを使ったときに起きるテンプレート関数の特殊化に対しての曖昧性をなくせる(たぶん)。

> あと、>177のように何の前置きにもなしに言って、理解してくれるエスパーだと思ったの?
タイピングの勢いだ。
0183デフォルトの名無しさん2006/10/22(日) 14:28:28
> キャストを使ったときに起きるテンプレート関数の特殊化に対しての曖昧性
具体例が欲しいな
0184デフォルトの名無しさん2006/10/22(日) 15:58:19
boost::lambdaのunlambdaとprotectがよくわからないんだぜ

0185デフォルトの名無しさん2006/10/22(日) 16:38:15
>>183
たとえば、>175を
template <typename A, typename B> int foo(A a, B b); (b)
template<class A, class B>int foo(A*,B*); (c)
こんな(c)を追加して、(c)or(b)のどちらかをbindで使いたい場合
このオーバーロードの解決には結局、関数オブジェクトが手っ取り早いと思います。
0186デフォルトの名無しさん2006/10/22(日) 17:13:50
>>185
それ、曖昧か?
後者は foo() についてポインタ型を扱う場合の特殊化を宣言しているので、
引数の型に応じて定義が使い分けられるだけじゃないの?

↓キャストでもコンパイルできたし。

int a, b;
(static_cast<int (*)(int*, int*)>(foo))(&a, &b);
01871852006/10/22(日) 17:59:14
>>186
boost::bindは?
0188デフォルトの名無しさん2006/10/22(日) 18:02:01
>>187
boost::bind(static_cast<int (*)(int*, int*)>(foo), _1, &b)(&a);
これぐらい自分で補完しろよ。
0189デフォルトの名無しさん2006/10/22(日) 18:35:54
>>188
コンパイル出来るんだ。へぇー。
0190デフォルトの名無しさん2006/10/22(日) 19:04:01
がんばって早く「ごめんなさい」の言える大人になろーね。
0191デフォルトの名無しさん2006/10/22(日) 19:23:43
ごめんなさい
0192デフォルトの名無しさん2006/10/22(日) 19:40:14
>>190
だって食い下がって逆撫でしていれば
>>188みたいな知識ひけらかし大好き君が無償で色々書いてくれるんだもん。
こういう子は利用しない手はないって。
0193デフォルトの名無しさん2006/10/22(日) 19:57:34
>>192
普通に質問すればいいのに、なんでわざわざそんな手段をとる必要がある?
0194デフォルトの名無しさん2006/10/22(日) 20:19:00
回答をもらえる確率が上がるから。
0195デフォルトの名無しさん2006/10/22(日) 20:25:02
まぁ、スレを客観的に眺めると、知識ひけらかし大好き君は>177と分かるんだけどね。
>176で終わってる質問だし。

それに>188の知識は>176以上のものではないし。
散々引っ張っといて同じモノしか出ないんじゃ、割に合わない。

単純に悔しくなった>177君が利用してやった振りしてるだけ。
0196デフォルトの名無しさん2006/10/22(日) 20:47:18
>>182 に「たぶん」って書いてあるのは、ただの妄想ってことでいいの?
01971892006/10/22(日) 23:35:55
>>188
ごめん。
だれもつっこんでくれないから寝る前に一言
> boost::bind(static_cast<int (*)(int*, int*)>(foo), _1, &b)(&a);
ちょっと言い訳・・・・「&a」参照の罠に嵌ってました。以上です。では、おやすみ。
0198デフォルトの名無しさん2006/10/25(水) 18:14:32
std::map みたいに扱えて、実はバックエンドがデータベースだなんて
すてきな使い心地のライブラリって無いものでしょうか。
0199デフォルトの名無しさん2006/10/25(水) 19:42:34
boost::graph
と
ASLの adobe::forest
が車輪の再発明ぽい点について
0200デフォルトの名無しさん2006/10/25(水) 20:28:36
ASL かわいいよ ASL
0201デフォルトの名無しさん2006/10/25(水) 23:26:50
あるあ…(ry >198
0202デフォルトの名無しさん2006/10/26(木) 00:02:53
>>201 あるんですか?
なんて言うライブラリか教えて貰えませんか?
今、std::map を boost::serialization でディスクに書き出しているんですが、
かなりデータ量が大きくなってきて、すべてをオンメモリで処理するのが
苦しくなってきました。
0203デフォルトの名無しさん2006/10/26(木) 03:11:33
AllegroCache. これ最強。
0204デフォルトの名無しさん2006/10/26(木) 09:38:05
boostいいね。使っているとスルメみたいに味わい深いわ。
しかし古い設計で組んでいた俺の昔のコードは一体何だったんだと。 orz
0205デフォルトの名無しさん2006/10/26(木) 11:07:28
STLぽい数式処理と数値計算のできるライブラリーってないでしょうか?
せめて多項式か2次式だけでもできると
少し数値計算プログラムが楽になる
0206デフォルトの名無しさん2006/10/26(木) 15:38:08
ASLの
adobe::dictionary_t
はstd::mapよりたくさん要素あつかえるとかtutorialに書いてあった
0207デフォルトの名無しさん2006/10/26(木) 16:19:02
>>198
Berkeley DBでも使え。
02082012006/10/27(金) 00:43:04
ねーよ
0209デフォルトの名無しさん2006/10/27(金) 08:40:10
>>201>>208
馬鹿?
0210デフォルトの名無しさん2006/10/27(金) 11:05:09
>>198
つlibstldb4
0211デフォルトの名無しさん2006/10/27(金) 16:20:16
>>198
なぜ boost スレへ?
0212デフォルトの名無しさん2006/10/27(金) 20:13:30
std::plus()はreturn a+b;ですが、return a+=b;してくれる関数オブジェクトは無いでしょうか?
手前で作ればいいのですが、boostにあるならそっちをつかいたく。
0213デフォルトの名無しさん2006/10/27(金) 20:57:59
_1 += _2
0214デフォルトの名無しさん2006/10/27(金) 21:06:44
>213
それはコンパイルできんだろ..
0215デフォルトの名無しさん2006/10/27(金) 21:11:33
class MyPlus : public std::plus,
boost::addable< point<T>
, boost::subtractable< point<T>
>
{
MyPlus operator+=(const MyPlus&);
};

でいけたらいいな
0216デフォルトの名無しさん2006/10/27(金) 21:16:44
>>214
using namespace boost::lambda;
0217デフォルトの名無しさん2006/10/27(金) 21:23:35
std::accumulate は?
02182172006/10/27(金) 21:25:48
あ、関数オブジェクトじゃなかったorz
0219デフォルトの名無しさん2006/10/27(金) 21:30:13
>>216 +=はオーバーロードされていないと思うが。
0220デフォルトの名無しさん2006/10/27(金) 21:38:25
んなあほな。
複合代入演算子はクラスの外からでも多重定義できるのだから、
boost::lambdaで使えないわけが無い。
0221デフォルトの名無しさん2006/10/27(金) 21:42:58
+=は使える。
クラス外から多重定義できるかどうかは関係ないような。
02222122006/10/27(金) 21:51:39
>>213
できました。ありがとう
0223デフォルトの名無しさん2006/10/27(金) 21:52:36
そうか、_1なんかはそれ自身ラムダオブジェクトだったな。
0224デフォルトの名無しさん2006/10/27(金) 23:28:35
>>219
死ねカス
0225デフォルトの名無しさん2006/10/30(月) 18:40:49
話題が無いな
0226デフォルトの名無しさん2006/10/30(月) 18:54:49
話題ねぇ…

http://opensource.adobe.com/gil/

今レビューされている、Generic Image Library が通れば、
各種画像サポートが実現されるわけで、非常に期待してる。
0227デフォルトの名無しさん2006/10/30(月) 20:09:51
ほお adobeがopensourceとは..
0228デフォルトの名無しさん2006/10/30(月) 22:09:56
通ればってどういうこと?
0229デフォルトの名無しさん2006/10/30(月) 22:14:22
ttp://lists.boost.org/Archives/boost/2006/10/111131.php

ちうこと。
0230デフォルトの名無しさん2006/10/30(月) 22:29:06
adobe ASLで
http://japan.zdnet.com/news/devsys/story/0,2000056182,20082134,00.htm
ユーザーインターフェイスの自動生成?
本当にできるの?
0231デフォルトの名無しさん2006/10/30(月) 22:31:59
なぜvigraじゃなくてgilなんだ
機能の豊富さからいったらvigraが上だろう
http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/
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関数を設定すればえがったんですね。
ありがとうごぜーますた。
0332デフォルトの名無しさん2006/11/09(木) 16:34:13
http://www.boost.org/libs/filesystem/doc/path.htm
path( const char * src, name_check checker )
こういうコンストラクタがあるので、
コンストラクトのときだけ指定してやればいいんだぜ?

path p( "c:", native );
p /= "/foo";
assert( p.string() == "c:/foo" );
0333デフォルトの名無しさん2006/11/09(木) 16:36:30
おっと、名前空間は適当につけてくれ?
0334デフォルトの名無しさん2006/11/09(木) 19:27:37
それは見て分かっただよ。
でも、あんがとさん。
0335デフォルトの名無しさん2006/11/10(金) 16:09:31
boost::graph
と
boost::numerics::ublas
を駆使した
graphical_modeling ( とりあえず partilce filterだけインプリメント)
ってパッケージ作ったらboostにアクセプトされると思うのだけど
どう思う?
0336デフォルトの名無しさん2006/11/10(金) 16:31:12
まず形になってから言えばいいんでないかな?
03373352006/11/10(金) 16:41:43
>>336
死んでしまったらしいプロジェクトの再活性のために
メンバー募集してるような感じなので
http://sourceforge.net/forum/forum.php?thread_id=1608834&forum_id=334280
やる人が増えたらいいなって、それだけです。
0338デフォルトの名無しさん2006/11/15(水) 14:23:40
>>324
SP1で解決されたと書いてるがどうだろう
0339デフォルトの名無しさん2006/11/16(木) 22:12:55
boostにMFCのTRACEマクロと同等のものありませんか?
0340デフォルトの名無しさん2006/11/17(金) 10:21:48
>>89
>>90

すっごい亀なんだけど,VC++8 と STLport 5.1 と
Boost 1.33.1 は完全には共存できないことが分かった.

http://d.hatena.ne.jp/Hossy/20060926
ここに書かれている方法を使えば,wave 以外のライブラリは
構築できる.でも,wave だけはどうやっても無理.
なぜかというと,spirit の tree_node<T> の定義が問題なんだ.
tree_node<T> が中で vector<tree_node<T> > を使っていて,
__has_trivial_constructor の引数にできないと怒られる.

ということは,spirit も使えないことになるわけだ.
VC++8 の人はおとなしく STLport 5.1 を諦めるか,
もしくは STLport の中のコンセプトチェックを外すか
しないと駄目だと思う.
0341デフォルトの名無しさん2006/11/17(金) 16:35:10
VS2005なんですがコンパイルに通りません
ublas::prod<matrix, vector>なはずなのに
ublas::prod<matrix, matrix>と勝手に解釈されます

std::vector< boost::numeric::ublas::vector<float > > vector_list;


std::transform(vector_list.begin(),vector_list.end()
,vector_list.begin()
,
std::bind1st(
std::ptr_fun(
boost::numeric::ublas::prod<
boost::numeric::ublas::matrix< float > ,
boost::numeric::ublas::vector< float >
>)
,covariance.covariance));
0342デフォルトの名無しさん2006/11/20(月) 21:05:43
multi_arrayってコンストラクタ以外で要素数を変更できないのですか?
0343デフォルトの名無しさん2006/11/21(火) 02:34:42
C++相談室 part54 から飛び火。
http://pc8.2ch.net/test/read.cgi/tech/1162215248/611-622

boost の導入が却下される理由を教えてください。
0344デフォルトの名無しさん2006/11/21(火) 02:50:48
>>343
オブジェクトコードにスタンプが入っちゃうから。
0345デフォルトの名無しさん2006/11/21(火) 09:31:14
まずSTLの導入が却下されてるからな
0346デフォルトの名無しさん2006/11/21(火) 10:55:33
それって事実上のC++ダメ宣言?
0347デフォルトの名無しさん2006/11/21(火) 12:58:06
>>343
VS2003でSP1あてないとコンパイル通らないコードがたまにあるから
0348デフォルトの名無しさん2006/11/21(火) 13:02:39
>>343
コンパイルが遅いからとかw

いくらでも理由は考えられるし、わざわざここへチクりに来るような話題とも思えない。
0349デフォルトの名無しさん2006/11/21(火) 16:56:47
http://www.boost-consulting.com/
boostって儲かるのかな

boostのreviewも裏でなにかありそうなかんじだ

GILとvigraの争いもなんか違和感がなくもなかった
0350デフォルトの名無しさん2006/11/22(水) 10:17:52
STOP! 探偵ごっこ
0351デフォルトの名無しさん2006/11/22(水) 18:04:13
boost::tokenizer で切り分けた個数を得る方法はありますか?
(イテレータでループしてもとめるのではなくて。。)
0352デフォルトの名無しさん2006/11/22(水) 18:47:33
>>351
tokenizer はイテレータを移動するたびに区切りを探す仕様だから無理。
0353デフォルトの名無しさん2006/11/22(水) 18:52:00
個数カウント関係は
boost::accumulators
の人に要望したら実装してくれるかも
0354デフォルトの名無しさん2006/11/22(水) 19:08:11
>>350
探偵ごっこじゃなくて
vigraからGILに乗り換えるかで悩んでるんだよ

boostのreviewとやらが信用できるかどうかが、大きなファクター

なんか怪しいって思ってるやつが結構いるんだったら
boostのreviewを無視してvigraを使い続ける
0355デフォルトの名無しさん2006/11/22(水) 23:52:45
vagina
0356デフォルトの名無しさん2006/11/23(木) 00:07:40
viagra
0357デフォルトの名無しさん2006/11/23(木) 01:27:31
Caverta で十分。
0358デフォルトの名無しさん2006/11/24(金) 08:52:34
下の様なエラーが出て困ってます。リビルドすればコンパイルは通る様になるのですが
毎回リビルドするのは大変なので、どうにか解決する方法ってないでしょうか?

c:\boost\boost\regex\v4\perl_matcher_common.hpp(734) : fatal error C1001: 内部コンパイラ エラー
(コンパイラ ファイル 'msc1.cpp', 行番号 1794)
Visual C++ のサポート情報 コマンドを選択してください
ヘルプ メニュー、 またはサポート情報のヘルプ ファイルを参照してください
コマンド ラインの警告 D4028 : 簡易リビルド時のエラ-です、通常のビルドに戻します

環境:
VC++6.0 SP6
Boost 1.33.1
0359デフォルトの名無しさん2006/11/24(金) 12:37:19
VC6は偽C++だからなぁ・・・
0360デフォルトの名無しさん2006/11/24(金) 13:19:08
>>359
6.0じゃもう古過ぎてダメですか?
0361デフォルトの名無しさん2006/11/24(金) 14:02:04
C++じゃないしな
VC8EE使った方がいいだろ
0362デフォルトの名無しさん2006/11/25(土) 00:57:13
vc8でコンパイル通らないのと組み合わせてる場合はどうしたらいいんだろう
コンパイル通らないコードはdllにして読むことにするとかできるのか?
0363デフォルトの名無しさん2006/11/25(土) 01:32:12
VC8でコンパイル通らない時点でまともなC++じゃない可能性が高いわけだが
DLLなどの方法で分離することはもちろん可能。(MSVCRTの衝突に注意)
0364デフォルトの名無しさん2006/11/26(日) 16:48:43
あんまり関係ないことかも知れないけど、uBLASってなんて読んだらいいの?
うぶらす?マイクロブラス?
0365デフォルトの名無しさん2006/11/26(日) 18:31:11
あっぷれカス
0366デフォルトの名無しさん2006/11/26(日) 20:01:25
>>364
俺は発音しなければならない状況に立たされたことがないので不明
0367デフォルトの名無しさん2006/11/27(月) 09:38:25
誰か俺にSFINAEの発音プリーズ
0368デフォルトの名無しさん2006/11/27(月) 10:00:39
自分としては「えすふぁいなえ」などと変な読みをしてるけど
他人と口頭でSFINAEについて話したことがないのでどう言っていいかわからん
0369デフォルトの名無しさん2006/11/27(月) 10:20:16
すふぃなぇ
0370デフォルトの名無しさん2006/11/27(月) 10:46:18
エス 吹く アナル
0371デフォルトの名無しさん2006/11/27(月) 11:34:46
ボーストが標準でついているコンパイラはありませんか??
0372デフォルトの名無しさん2006/11/27(月) 12:12:46
>>365
http://uprecus.jp.land.to/wiki/
0373デフォルトの名無しさん2006/11/27(月) 12:13:51
        ,.-─ ─-、─-、
      , イ)ィ -─ ──- 、ミヽ
      ノ /,.-‐'"´ `ヾj ii /  Λ
    ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
   ノ/,/ミ三ニヲ´        ゙、ノi!
  {V /ミ三二,イ , -─        Yソ
  レ'/三二彡イ  .:ィこラ   ;:こラ  j{
  V;;;::. ;ヲヾ!V    ー '′ i ー ' ソ
   Vニミ( 入 、      r  j  ,′
   ヾミ、`ゝ  ` ー--‐'ゞニ<‐-イ
     ヽ ヽ     -''ニニ‐  /
        |  `、     ⌒  ,/
       |    > ---- r‐'´
      ヽ_         |
         ヽ _ _ 」

     ウプレカス [ uBLAS ]
  ( 西暦一世紀前半 〜 没年不明 )
0374デフォルトの名無しさん2006/11/28(火) 02:00:21
ublasのsolveで使われるlower_tagやupper_tagはどのような意味があるのですか?
ドキュメントからは見つけられませんでした。
0375デフォルトの名無しさん2006/11/28(火) 02:16:43
>Solves a system of linear equations with triangular form, i.e. A is triangular.
とあったので、Aは三角行列でなければならず、そのタイプを示すのがtagでしょうか?
もしそうなら結局LU分解しなきゃダメなのであまり使えないですねこれ・・・
0376デフォルトの名無しさん2006/11/28(火) 02:34:33
atlas::cholesky_factor
のように三角行列しかうけつけない関数がある

普通の行列の上半分つかってを三角行列にするときに使うのが
upper_tag
0377デフォルトの名無しさん2006/11/28(火) 06:42:02
>>364
ユーブラスじゃね?
0378デフォルトの名無しさん2006/11/28(火) 12:51:52
>>377
>>373
0379デフォルトの名無しさん2006/11/29(水) 14:39:30
Geometry Library ってひょっとして複数の候補があるのか?

http://boost-consulting.com/vault/index.php?PHPSESSID=kpg87708jjfg0ka24en0hgc2m4&direction=0&order=&directory=Math%20-%20Geometry

いったいどれを使ったらいいんだ
0380デフォルトの名無しさん2006/11/29(水) 19:46:16
boost1.33.1をVCEEで使おうと思ってインストールしようとしたのですが失敗してしまいます

bjam "-sTOOLS=vc8_0" install とすると
...skipped <@boost!include!boost-1_33_1!boost!wave!util>unput_queue_iterator.hpp
for lack of <directory-grist>C:\Boost\include\boost-1_33_1\boost\wave\util...
のようなメッセージが大量に出て最後に
...failed updating 2 targets...
...skipped 4805 targets...
と表示されて終了してしまいます
どうしてでしょうか?どなたか解決策を教えてくださいお願いします
0381デフォルトの名無しさん2006/11/29(水) 23:29:29
sdkへのパス通して↓でうちはいけた(いま使ったことのある範囲ではだけど
>bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install

エラーもエラーで長いから憂鬱だよな
0382デフォルトの名無しさん2006/12/01(金) 22:51:51
>>381ありがとうございます
sdkへのパスとは
C:\Program Files\Microsoft Visual Studio 8\SDK
のことでしょうか?
パスを通すというのは、システム環境変数のpathに追加するということですよね?
色々追加してやってみましたが、結果は変わりませんでした
0383デフォルトの名無しさん2006/12/01(金) 23:15:17
http://www.boost.org/tools/build/v1/vc-8_0-tools.html
vsvars32.batを編集する必要がある
0384デフォルトの名無しさん2006/12/02(土) 00:48:42
む、あいまいかつ適当な書き方して申し訳なかった
そのときのメモ見たら
set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include
してC:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat走らせて
bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install
したって書いてあった。

set LIB=C:\Program Files\Microsoft Platform SDK\Libはvcvarsallがやってくれたっぽいが
標準でやってるのか自分でbat編集したのかは覚えてない

まあ>>383の通りです
0385デフォルトの名無しさん2006/12/03(日) 00:10:04
>>383-384ありがとうございます
set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include
set LIB=C:\Program Files\Microsoft Platform SDK\Lib
bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install
とやってみましたが、相変わらず大量のエラーメッセージが出てしまいます

383のリンクを見てみましたが、PlatformSDKが必要ということとvsvars32.batを編集しないといけないということは分かったのですが
英語が苦手なので具体的にどこをどう編集しないといけないのか分かりませんでした
本当にすみません

VCEEではなかなか出来ないのでBCB6.0でやってみようと思い、
>1にあるLet's Boostを参考にして↓のようにやりましたが、また同じようなエラーが出てしまいました
C:\lib\boost_1_33_1>set PATH="C:\Program Files\Borland\CBuilder6\Bin";%PATH%
C:\lib\boost_1_33_1>bjam -sTOOLS=borland --prefix="C:\Program Files\Borland\CBuilder6" install
何でやってもダメということは何か基本的な設定が出来てないのでしょうか?
0386デフォルトの名無しさん2006/12/03(日) 01:50:50
vcvarsall.batの

@set INCLUDE=
@set LIB=

の部分に;で区切って追加する
03873582006/12/03(日) 07:12:58
VC++6.0、IDEも軽くていいんだけどなぁ。
MFCのランタイムも普及してて、Win98以降のOSなら何でも動くし。
でも、そろそろ新しいバージョンに移行した方がいいのかもね…
考えてみれば、8年前の開発環境なんだよね… >6.0
0388デフォルトの名無しさん2006/12/03(日) 07:14:27
テンプレートの対応もアレだしね。6.0
0389デフォルトの名無しさん2006/12/03(日) 18:33:22
phoenix::bindがspirit::parseのオーバーロードを解決してくれない・・・
lambda::bindならいけるのに・・・
0390デフォルトの名無しさん2006/12/03(日) 22:17:45
>>386ありがとうございます
vcvarsall.batには@set INCLUDEと@set LIBがありませんでした
vsvars32.batにはあったのでそれを↓のように編集しました
@set INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;%C:\Program Files\Microsoft Platform SDK\Include;%INCLUDE
@set LIB=C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;C:\Program Files\Microsoft Platform SDK\Lib;%LIB%

それから↓のようにコマンドを打ち込んでみましたが、やはり>>380と同じようなエラーが出ました
C:\lib\boost_1_33_1>"C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"
Setting environment for using Microsoft Visual Studio 2005 x86 tools.
C:\lib\boost_1_33_1>bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install

VCEEだけでなくBCB6.0でもVC6.0でも失敗しました
どうやら私には無理なようです
regexだけ↓のコマンドでインストール出来たのでもうこれで一旦諦めます(これはVCEEでもBCB6.0でも出来ました)
C:\lib\boost_1_33_1\libs\regex\build>"C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"
Setting environment for using Microsoft Visual Studio 2005 x86 tools.
C:\lib\boost_1_33_1\libs\regex\build>nmake -fvc8
C:\lib\boost_1_33_1\libs\regex\build>nmake -fvc8 install

今度もう少しコマンドプロンプトやBoostの基本を勉強して再挑戦してみます
スレ汚ししてすみませんでした
それから答えてくれた皆さんありがとうございました
0391デフォルトの名無しさん2006/12/03(日) 22:32:02
自分は@setにboostのパスも通してるな
必須なのかは忘れた

よくがんばった。もうこれでいいじゃない
http://www.boost-consulting.com/download.html
0392デフォルトの名無しさん2006/12/04(月) 15:52:07
#include <boost/test/unit_test.hpp>


void test() {}


boost::unit_test::test_suite* init_unit_test_suite(int, char*[])
{
boost::unit_test::test_suite* suite = BOOST_TEST_SUITE("Test suite");

suite->add(BOOST_TEST_CASE(&test));

return suite;
}
上記のコードをgcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)で
g++ a.cpp -lboost_unit_test_framework-gcc-d
によりコンパイルしたところ、
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:77: undefined reference to `main'
collect2: ld はステータス 1 で終了しました
とリンクエラーになってしまいます。
(MS VC++ 8とgcc 3.4.4(cygming special)では正常にコンパイル&リンク&実行出来ました。)
-lboost_unit_test_framework-gccにしても、また g++ と a.cpp の間にこれを書いても同様に
リンクエラーになってしまいます。
(g++ a.cpp libboost_unit_test_framework-gcc-d.a
とすると正常にリンク、実行出来ます)
これはgccもしくはboost側の問題でしょうか?
それともコンパイラオプションが何か足りないのでしょうか?
0393デフォルトの名無しさん2006/12/06(水) 18:33:41
http://www.kmonos.net/alang/boost/classes/test.html
これだけでは、boost.testの便利さが今ひとつ理解できない
0394デフォルトの名無しさん2006/12/06(水) 19:31:20
CPPUNITでいいんじゃね
0395デフォルトの名無しさん2006/12/06(水) 21:51:02
bjamでいろんなコンパイラ上で一気にテストできる
問題はbjamの使い方がよく分からないこと
0396デフォルトの名無しさん2006/12/08(金) 15:24:39
scoped_arrayはvectorと違ってソートできない?
0397デフォルトの名無しさん2006/12/08(金) 15:47:25
>>396
なんで?
0398デフォルトの名無しさん2006/12/08(金) 16:40:54
begin(),end()が無いから
0399デフォルトの名無しさん2006/12/08(金) 16:49:42
ポインタ渡せばいいじゃん。
ランダムアクセスイテレータの用件満たしてるよ。
0400デフォルトの名無しさん2006/12/08(金) 17:02:05
了解
ありがとう
0401デフォルトの名無しさん2006/12/08(金) 17:32:49
math.Geometryの下がカオスで試そうという気自体おきない
しかしGeometry関係の処理はしたい。
boost以外を探すべきか
0402デフォルトの名無しさん2006/12/08(金) 20:01:44
>>398
つmake_iterator_range
0403デフォルトの名無しさん2006/12/10(日) 21:09:05
επιστημη氏ってboostに関して何か書いてたっけ?
MFCからSTLに関しては、いろんな所に書き散らかしてるけど
0404デフォルトの名無しさん2006/12/10(日) 21:43:46
>>403
なんの脈絡もなく突然どうした? スレを間違えたのか?
とりあえず、例の翻訳プロジェクトには参加してるみたいだけど。
http://sourceforge.jp/project/memberlist.php?group_id=428
0405デフォルトの名無しさん2006/12/11(月) 07:05:53
>いろんな所に書き散らかしてるけど

を見て、さらにスレ違いな質問を思いついた。
boost使いってPC系ではどんな雑誌読んでる?情報収集はネットのみ?
0406デフォルトの名無しさん2006/12/11(月) 07:18:35
「boost使い」と名乗っていいレベルかどうか自信ないけど、
俺は雑誌は一切読まない。
いや、別に「絶対読まねえぞ」みたいなこだわりがあるわけじゃないけど。
0407デフォルトの名無しさん2006/12/11(月) 10:41:12
最近はPC系というかプログラミング系の雑誌自体あんま見かけないしな
boost devel や c++.moderated つまみ食いしてた方がよほど有益
0408デフォルトの名無しさん2006/12/11(月) 10:49:26
日経ソフトウェアとインターフェースと、あとなんかあったっけ?
0409デフォルトの名無しさん2006/12/11(月) 19:31:43
俺もプログラミング系の雑誌は読まんな。
bitとか良い雑誌があった頃が懐かしい。
0410デフォルトの名無しさん2006/12/11(月) 21:15:10
それこそ
boost.spritで遊ぼう!
みたいな特集を組むある意味アホな雑誌がでてたら買う
0411デフォルトの名無しさん2006/12/11(月) 21:22:51
正規表現特集でboost.regexがちょこっと紹介されるのが関の山だな。
0412デフォルトの名無しさん2006/12/11(月) 22:16:53
C/C++ Users Journalが合流したDDJとか。
http://www.ddj.com/dept/cpp/cuj.jhtml
0413デフォルトの名無しさん2006/12/11(月) 22:56:30
boostってlokiのtypelistに相当するやつあります?
0414デフォルトの名無しさん2006/12/11(月) 22:58:44
>>413
mpl::list
0415デフォルトの名無しさん2006/12/11(月) 23:30:11
thx
0416デフォルトの名無しさん2006/12/12(火) 00:42:18
拡張子hppって古めかしい気がするのは俺だけ?
#include で拡張子なし <boost/shared_ptr> って動きは無いのだろか?
0417デフォルトの名無しさん2006/12/12(火) 01:17:54
>>416
かつて、標準化委員会は理想に燃えていました。
拡張子などという原始的なもので、
ファイルの種類を表すべきではないという強い意志がありました。

はて、2006年になっても、その理想は実現されそうにないのですが。
0418デフォルトの名無しさん2006/12/12(火) 01:31:13
どっちでもいいけど、標準C++ライブラリと違うのは気持ち悪い
0419デフォルトの名無しさん2006/12/12(火) 02:27:45
>>417
そのへんって確か、過ちを認めて今からでも元に戻そうって動きもなかった?
0420デフォルトの名無しさん2006/12/12(火) 03:08:53
>>419
今後出る標準ライブラリに拡張子をつけられたとしても。
いまある標準ライブラリはそのまま残すしかないでしょ。
たとえこんなものでもね

// これはC99のiositreamとの下位互換性のためにあるぜ。
//実体はiostream.hな。
#include <iostream.h>
0421デフォルトの名無しさん2006/12/12(火) 03:10:50
>>419
それは、たぶんこれだろう。ちょっと違う。
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#456
"We should accept the fact that we made a serious mistake and rectify it, however belatedly, ..."
0422デフォルトの名無しさん2006/12/12(火) 03:11:31
拡張子ないとエヂタとか使うとき後からシンクタック指定するの面倒やん
0423デフォルトの名無しさん2006/12/12(火) 07:58:42
俺は、拡張しありでいいが、.cppと.hppはどういうわけだか好きになれない。
.Cと.hにしている。大文字小文字区別しないファイルシステムだと問題の種になることもあるが。
0424デフォルトの名無しさん2006/12/12(火) 08:03:12
>>423
なんで技術的デメリットを無視してまで理由のはっきりしない好みを優先させるの?
0425デフォルトの名無しさん2006/12/12(火) 09:25:24
趣味だから
0426デフォルトの名無しさん2006/12/12(火) 09:48:40
C++ でしか使えないようなヘッダなのに .h を使うのは嫌いだナ
(Cからでも使えるようなヘッダなら .h で問題ない)

.cpp / .hpp とか、 .cc / .hh とか、ちゃんと名前が揃っていればまあ良いんじゃないかと
0427デフォルトの名無しさん2006/12/12(火) 09:50:51
俺は .h / .cpp だな。
不揃いじゃね? と言われれば、うーん、確かにそうなんだが。
0428デフォルトの名無しさん2006/12/12(火) 13:04:07
>>427
俺もそれ。hppはなんか嫌い。
0429デフォルトの名無しさん2006/12/12(火) 13:05:33
>>416
せっかく標準がユーザー側のヘッダとぶつからない配慮してくれてんのに、
同じルールにしたら意味ないじゃん
0430デフォルトの名無しさん2006/12/12(火) 17:13:15
>>422
#includeで指定するヘッダ名は実際のファイル名である必要はない、少なくとも標準のものは。
たとえばBorland C++では適当な拡張子を付けたファイルをインクルードしている。
0431デフォルトの名無しさん2006/12/12(火) 18:23:17
>>430
理想と現実は違うよ。
0432デフォルトの名無しさん2006/12/12(火) 18:39:42
え? 理想の話をしてるんじゃないの?
0433デフォルトの名無しさん2006/12/12(火) 20:12:44
理想じゃなくて規格の話だろ
0434デフォルトの名無しさん2006/12/12(火) 21:18:39
理想の規格はどうあるべきかという話だよん
0435デフォルトの名無しさん2006/12/12(火) 23:34:22
という夢を見た
0436デフォルトの名無しさん2006/12/13(水) 18:06:28
testプログラムを1つ与えると
交差検定も自動でやってくれるようなプログラムがあったはずなのだけど
boostの中にはないの?
0437デフォルトの名無しさん2006/12/15(金) 19:19:14
>>380
いまさら亀レスで悪いんだが、
俺も同じエラーで失敗しとります。

コマンドラインのログ追っかけていたら、
MKDIRコマンドで失敗しとりました。
"MKDIR"が"MKDIR1"になってて、ディレクトリを作れないようです。
最初に
stageディレクトリを作れません。→死亡
lack of stage なのでlibs作れません →死亡
で以降すべてエラー。

俺はmsvc6.0なんで>>391も使えないし・・・
どこを直せばいいか分からぬ、、
誰か助けてorz
0438デフォルトの名無しさん2006/12/15(金) 19:24:24
丸二日スレストってるので僭越ながらageさせて頂きます
0439デフォルトの名無しさん2006/12/15(金) 22:17:27
vc8はタダなんだから落としてこいよ
0440デフォルトの名無しさん2006/12/15(金) 22:17:45
bjamのバージョンを下げたらビルドできました
でも最新のでやりたかったです。
誰かエロい人いたら
bjamの3.1.13-1
で出来るか試してみてくれませぬか、
3.1.11-1だと上手くいきました。
0441デフォルトの名無しさん2006/12/15(金) 22:44:19
そこまでしてVC6にしがみつく理由がわからん。
0442デフォルトの名無しさん2006/12/15(金) 22:54:37
gccもあるし、8にもそのうち乗り換えるさ…

つかコンパイラの話しじゃなくて、bjam3.1.13-1が動かなくない?
って話しで
0443デフォルトの名無しさん2006/12/15(金) 23:16:56
プリコンパイル済みヘッダー と boost.testって一緒に使えないのかな
0444デフォルトの名無しさん2006/12/15(金) 23:44:45
VC6は(今の基準では)C++として腐ってるからBoost向きではない
0445デフォルトの名無しさん2006/12/15(金) 23:53:02
VC6は2038年問題とかだけでも捨てるべきだろ。
少なくとも業務で使ってるってのならその会社は潰れてしかるべき。
ぜひ潰れて欲しい。
0446デフォルトの名無しさん2006/12/16(土) 01:39:05
Cとしてしか使わないならVC6最高じゃん
0447デフォルトの名無しさん2006/12/16(土) 01:49:43
>>466
同感!

最近 STL 使おうって思ってやっと 2005 に切り替えました!
0448デフォルトの名無しさん2006/12/16(土) 02:23:20
激しくスレ違いで申し訳ないが…

8だとテンプレートをネスト出来たりするかね?
ならば今すぐ買いに行くさ。
0449デフォルトの名無しさん2006/12/16(土) 02:34:38
するする。今すぐ買いに行け。
0450デフォルトの名無しさん2006/12/16(土) 02:36:43
これか?
template < typename T >
struct Foo
{
template < typename P >
static void Bar() ;
} ;

Foo<int>::Bar<int>() ;


あるいはこれか?
template < typename T,
template<typename, typename>
class Container >
class Foo
{
Container< T, std::allocator<T> > cont ;
} ;

Foo< int, std::vector > FooVec ;

どちらもできる……が、後者は、なぜかテンプレートテンプレートパラメータのデフォルト引数が使えない。

//エラー
template< template <typename, typename = std::allocator<int> > class Container >
class Foo
{ Container<int> cont ; } ;
0451デフォルトの名無しさん2006/12/16(土) 02:39:46
まじかよ…
部分特殊化だけかと思ってた…

今すぐ買いに行くわ
確かファミマにあったはず。アカデミックだけど。
0452デフォルトの名無しさん2006/12/16(土) 02:44:32
あ〜、後者ですわ。
デフォルト指定は無理なのかぁ…、
まぁいい機会だし買いに行きま。
0453デフォルトの名無しさん2006/12/16(土) 02:44:41
>テンプレートテンプレートパラメータのデフォルト引数
そんな言語機能があったなんて!
いったいなんのためにあるんだろう。
0454デフォルトの名無しさん2006/12/16(土) 03:29:27
メタ関数として使えそうなんで用意したけど実際にはいまいち使えなかった、
という感じか?>テンプレートテンプレートパラメータ
0455デフォルトの名無しさん2006/12/16(土) 03:47:12
いや、テンプレートテンプレートパラメタには意味があると思うんだが、
テンプレートテンプレートパラメタ「の」デフォルト引数ってなかなか出てこない発想じゃないだろうか。
ふつうの関数だと
void f(int (*g)(int = 7)){}
不正みたいだし。
0456デフォルトの名無しさん2006/12/16(土) 03:50:58
普通に使いますから。
テンプレートクラスでデフォルト引数が使えるのは(allocatorなど)当たり前のことだし、
テンプレートの引数に、テンプレートクラス使えないのは不便で仕方がない。
0457デフォルトの名無しさん2006/12/16(土) 06:04:31
そこで、boost.preprocessorですよ。
0458デフォルトの名無しさん2006/12/16(土) 06:06:57
え、VC8でも
hoge<hage<int>>;
みたいのはできないの?

デフォルト引数を定義しなければ使えるってこと?
0459デフォルトの名無しさん2006/12/16(土) 06:15:31
>>458
シンタックスエラー!
0460デフォルトの名無しさん2006/12/16(土) 06:40:06
uho!
0461デフォルトの名無しさん2006/12/16(土) 06:46:08
>>457
preprocessorで何ができると?
0462デフォルトの名無しさん2006/12/16(土) 12:19:11
Tはテンプレート引数でコンテナ型です。

typedef typename boost::mpl::if_<boost::is_const<T>, typename T::const_iterator, typename T::iterator>::type Hoge;
typedef typename boost::mpl::if_<boost::is_const<T>, typename T::const_pointer, typename T::pointer>::type Hage;
typedef typename boost::mpl::if_<boost::is_const<T>, typename T::const_reference, typename T::reference>::type Debu;

こういうことをやりたいんですが、もっとシンプルに記述できる方法はないでしょうか?
0463デフォルトの名無しさん2006/12/17(日) 06:55:37
プリプロセッサを使ってもシンプルにはならないだろうし、読みにくくなるだけかと。
そもそも何でそういうことがしたいのか分からない。
渡されたコンテナがconstでなければ、書き換える。
constであれば書き換えないという、奇妙な関数でも書きたいのだろうか。
0464デフォルトの名無しさん2006/12/17(日) 17:28:40
>>462
boost::range_result_iterator< std::vector< int > >::type         // -> std::vector< int >::iterator
boost::range_result_iterator< const std::vector< int > >::type // -> std::vector< int >::const_iterator

あとは上のように獲得した iterator 型に boost::iterator_[reference|pointer] を適用
0465デフォルトの名無しさん2006/12/17(日) 23:17:11
>>464
うわぁ、Boost.Rangeチョー便利ナリ・・・
boost::sizeとかあるし。sizeof(a) / sizeof(a[0])とかしてたのが馬鹿みたいだ。
いいものを教えてもらった、ありがとう。
0466デフォルトの名無しさん2006/12/18(月) 08:19:06
templateもろくに通らないからVC6から2005に切り替えたよ
0467デフォルトの名無しさん2006/12/18(月) 15:00:59
今度はワイド文字ストリームがろくに使えないVC 2005。
0468デフォルトの名無しさん2006/12/18(月) 16:09:31
VC 2005 SP1で直る・・・はず・・・だといいな・・・
0469デフォルトの名無しさん2006/12/18(月) 18:20:48
その SP1 では graph library が使えないということらしいが
0470デフォルトの名無しさん2006/12/18(月) 18:23:55
>>468
直ってないような気がする・・・
0471デフォルトの名無しさん2006/12/18(月) 18:28:28
いや、気がするんじゃなくて間違いなく直ってないや。
0472デフォルトの名無しさん2006/12/18(月) 18:40:36
SP1出たんだな
0473デフォルトの名無しさん2006/12/18(月) 18:46:01
STLPort使うとなぜかは知らないがlocale::globalの後でもimbueが効くようだ。
0474デフォルトの名無しさん2006/12/18(月) 21:57:24
なあ、boostいじってるC++狂の連中はWebアプリケーションはなにで
書いてるんだ?
俺、JavaもPerlもやる気しねーよ。もっとC++でWebアプリ書くフレーム
ワークとか環境とか色々あってもいいのになあとか思うんだが。
0475デフォルトの名無しさん2006/12/18(月) 21:59:52
boostいじってるC++狂の連中はWebアプリケーションなんてかったるいものは
書かないんじゃないかな
0476デフォルトの名無しさん2006/12/18(月) 22:00:27
Perlは確かに使う気しないがJavaなら別にいい
0477デフォルトの名無しさん2006/12/18(月) 22:12:09
スレ違いだと思うのでURLだけ
http://ws.apache.org/axis/ja/cpp/lininstall-guide.html
http://www.cs.fsu.edu/~engelen/soap.html
http://www.xlsoft.com/jp/products/roguewave/sourcepro/index.html
0478デフォルトの名無しさん2006/12/18(月) 22:18:51
boost::CppOnRailsができるのを待つか
0479デフォルトの名無しさん2006/12/19(火) 00:42:34
>>474
なんか「柴犬」とか言うtomcatもどきをC++で実装してテストしてるスレがあった希ガス
0480デフォルトの名無しさん2006/12/19(火) 07:44:46
sscanfみたいなのを
正規表現で指定できる関数はあるのでしょうか?

04814502006/12/19(火) 08:04:30
SP1いれたら、テンプレートテンプレートパラメータのデフォルト引数が使えるようになっていた。
0482デフォルトの名無しさん2006/12/19(火) 14:13:59
boost MLに何度か投稿していたら
software関係conferenceの Invitation to submit a paper
(おそらくSPAMの一種だと思う)がくるようになった。

同種のメールは、自分の専門分野の関連領域でもくるのだが
( inviteされるような仕事してねえのに invite ってなんだよ)

software関連のは本当に怪しいのかを見分ける手段がない
なにか見分ける方法ないものか
0483デフォルトの名無しさん2006/12/19(火) 19:52:06
すみません、質問させてください
基本型あるいはユーザ定義型の配列の要素数を返す関数を作ろうとしてるんですが
arrayがユーザ定義型の配列であった場合でも
/* �@ */の処理がコンパイルされるためエラーになってしまいます

template <typename T> void count(T array[]){
if(boost::is_pod<T>::value){/* �@ */}
else{/* �A */}}

WEBで調べているとboost::enable_ifで解決できそうな予感がしたのですが
自分には次の例がよく理解できません(特に::type*=0の部分)
これはどういった理屈で動いているんでしょうか

template<typename T> void copy_n( const T* from, int n, T* to,
typename enable_if< is_pod<T> >::type* =0 ){/* 省略 */}
0484デフォルトの名無しさん2006/12/19(火) 20:09:40
>>483
enable_ifやdisable_ifは、関数のオーバーロード解決のルールをトリッキーに使っている。

やりたいことを実現する方法はいくつかある。
たとえばこんな方法。

//false以外、すなわちtrueの場合に呼ばれる
template < bool isPod >
struct Count_impl
{ static void do() {/* 1 */} } ;

//特殊化、falseの時に呼ばれる
template < >
struct Count_impl<false>
{ static void do() {/* 2 */} } ;

template < typename T >
void count(T array[])
{
 Count_impl<boost::is_pod<T>::value>::do() ;
}
0485デフォルトの名無しさん2006/12/19(火) 20:11:15
>>483
enable_if<is_pod<T> >
には、TがPODならtypeメンバがあり、そうでなければtypeメンバがない。
したがって、TがPODでないとき、typename enable_if<is_pod<T> >::typeは
不正な型であり、SFINAE規則によってこの定義が多重定義の考慮から外される。
結果として、TがPODであるときのみ考慮される定義ができたわけだ。
typename enable_if<is_pod<T> >::typeは、このコンパイル時選択の機構のためだけに
使われているので、インタフェースに影響を与えないようにデフォルト値付きの引数になっている。
ポインタを取っているのは簡潔に0で初期化できるようにだろう。
04864832006/12/19(火) 21:31:23
>>484,485
レス感謝です
おかげさまで理解できました

>>484
こういう風にすればenable_ifなしでいけるんですね
なんとかそのプログラム理解はできても
自分で書けるようになるまでが大変だ・・
とりあえずこれを参考に頑張ってみます

>>485
enable_if< is_pod<T> >::type* =0
ええと、この式の場合だと
組み込み型の場合はtypeメンバが存在するわけですよね
そして組み込み型でない場合はtypeがないから定義自体されない
それだと* =0はなくても大丈夫なんじゃ?と思ったけど
この引数はコンパイル時にifの役割を果たせばよいから省略可能にしたい
省略可能にするには=とデフォルト引数が必要で
typeをtype*にすればどんな場合でも0が代入できる
うーむ、よく考えられてますね
0487デフォルトの名無しさん2006/12/19(火) 22:46:08
個人的には返り値型に使うほうが好き>enable_if
0488デフォルトの名無しさん2006/12/20(水) 01:12:34
>>482
自分で「おそらくSPAMの一種だと思う」なら、ちゃんと見分けられてるじゃないか。
0489デフォルトの名無しさん2006/12/20(水) 03:58:16
>>487
コンストラクタだとデフォルト引数として仕掛けるしかないけれどね

逆に引数の数が固定されていて余計なデフォルト引数が仕掛けられない
演算子関数定義だと戻り値型一択になるね
0490デフォルトの名無しさん2006/12/20(水) 20:21:16
そもそも483が作ろうとしていると言う配列の要素数を返す関数は、
基本型かユーザ定義型かで分けて一体何をするのか気になる。

配列の要素数と言えばそもそもboost::size()で済むような話ではないのか?
0491デフォルトの名無しさん2006/12/20(水) 20:32:25
>>490
番兵を思いついた。
podな型に対しては、ある値を決めておき、
俺様クラスについては、専用のフラグでも用意しているとか。
0492デフォルトの名無しさん2006/12/21(木) 16:05:56
boost開発者向けMLに、自分用に作った
プログラム(boostの既存libの部品の追加してるだけだけど)、
死蔵するのもったいないから
ときどき投稿してたんだけど、
最近、無視されてるっぽい。
0493デフォルトの名無しさん2006/12/21(木) 17:41:27
boost使いはVS2005にSP1はあてるのかい?
0494デフォルトの名無しさん2006/12/21(木) 17:56:40
当たり前だ
0495デフォルトの名無しさん2006/12/21(木) 21:36:36
>>492
何か不満か? ML に晒したんなら勝手に使ってる奴もいるだろう。
使った人が必ずレスポンスを返すわけでもなし。
死蔵にはならずに済んだんだからいいだろ。
0496デフォルトの名無しさん2006/12/21(木) 22:52:25
boost.cppll.jp 落ちてる?
0497デフォルトの名無しさん2006/12/21(木) 23:29:55
ぽいね。俺も繋げない
0498デフォルトの名無しさん2006/12/22(金) 11:42:53
ublasのatlasへのインターフェイスをbackendと表現してるのだが
backendってそういう意味なんだっけ?
0499デフォルトの名無しさん2006/12/22(金) 12:01:23
まあCORBAとDCOMではproxy/stubが逆転していることですし
0500デフォルトの名無しさん2006/12/22(金) 15:15:00
>>499
それは主体をどっちに置くかという話から帰着した結果だからあんまり関係ない気が。
0501デフォルトの名無しさん2006/12/22(金) 23:08:58
atlasは下請けや補完をやるわけだから、
ublasから見ればたくさんあるbackendの一つってことでしょ。
0502デフォルトの名無しさん2006/12/24(日) 12:39:36
boostの日本語ドキュメントプロジェクトって2003年で更新止まってるよね
サーバーも落ちてるみたいだけど、誰もメンテナンスしてないの?
0503デフォルトの名無しさん2006/12/24(日) 17:51:43
ublas今試してるんだけど、
VC++2005でboost1.33_1だとsparse_matrixとsparse_vectorは定義されていないと怒られてしまう。
matrix_sparse.hppとvector_sparse.hppはきちんとインクルードしているんだけど、なぜに?
0504デフォルトの名無しさん2006/12/24(日) 18:41:52
しかも、mat[i][j]とかで行列の要素にアクセスするとか、lu_factorizeもコンパイルエラー。なんでやろ・・・。
0505デフォルトの名無しさん2006/12/24(日) 18:49:16
エラーメッセージも張らずに日記かよ。いい加減にしろ
0506デフォルトの名無しさん2006/12/25(月) 13:27:53
>>504
mat[i][j]の書き方はできなくなった
今は
mat(i,j)
0507デフォルトの名無しさん2006/12/25(月) 13:47:21
Boost.Python でPythonから呼ぶようにした関数って
Cとして呼ぶよりも処理が遅くなったりするの?
0508デフォルトの名無しさん2006/12/26(火) 16:16:15
すみませんが、質問です。
Debian Sarge(EUC-JP)上でBoostのsplitなどをを使いたいのですが、ソースコー
ドの文字列をEUC-JPにするとエラーになってしまいます。

#include <boost/algorithm/string.hpp> を含むソースで
g++-3.4 -finput-charset=EUC-JP -fexec-charset=EUC-JP test05.cpp -o test05
を実行すると、
/usr/include/boost/function/function_base.hpp:23:25: failure to convert EUC-JP to UTF-8
このようなエラーに。
なお、ソースではwchar_t, wstringを使っています。

ソースをUTF-8に、オプションを-finput-charset=UTF-8 にすると動くように
なりますが、やはりこれは不便です。

ソースをEUC-JPのままで使う方法はないでしょうか?
0509デフォルトの名無しさん2006/12/26(火) 18:55:42
age
05105082006/12/26(火) 19:42:26
追記です。
コンパイル時のエラーは、こんな単純なソースでも起こってしまいます。
エラー再現には、ソースにワイド文字リテラルが含まれる必要はありません。
------------------
#include <boost/algorithm/string.hpp>

int main(void)
{
return 0;
}
------------------
g++-3.4 -finput-charset=EUC-JP -fexec-charset=EUC-JP test06.cpp -o test06
↓
/usr/include/boost/function/function_base.hpp:23:25: failure to convert EUC-JP \to UTF-8

EUC-JPではマルチバイト文字を使えということなのかもしれませんが、せっかく
対応しているのだからワイド文字を使いたいのです。
0511デフォルトの名無しさん2006/12/26(火) 19:56:55
>>510
boost/ref.hppがLatin-1で書かれているのが問題っぽいな。
ASCIIに直すようにお願いする位しか解決策が思いつかないが。
05125082006/12/26(火) 20:20:55
>>511
ありがとうございます。
ref.hppの17行目でしょうか?そこを削除しても、やはり同じエラーが出ます。

他に気づいたことは、-finput-charset=utf8 などと書いても、「UTF-8に変換
できない」というエラーになることです。大文字ハイフン入りの「UTF-8」以外
受け付けません。

もしかしたらGCC自体が、テンプレートライブラリがUTF-8以外であることに対応
していないのでしょうか?
0513デフォルトの名無しさん2006/12/26(火) 20:38:10
>>508
この辺を参考に
http://search.gmane.org/?query=windows+unicode+gcc&group=gmane.comp.gcc.devel
http://permalink.gmane.org/gmane.comp.gcc.devel/78542

>>512
インクルードファイルの中に他にも含まれていないか
チェック。utility/enable_if.hpp とか

$ iconv -l

で使用できる文字コードは分かる
05145082006/12/26(火) 21:08:11
>>513
ありがとうございます。よく読んでいませんが、結局コードの変換ルールが問
題ということでしょうか。

grep -r Jaakko /usr/include/boost/

これで検索したところ66件ありました。他にもlatin-1の名前はあるかもしれ
ません。さすがに直す気が失せました。

とりあえず、コンパイル前にiconvをかけることにします。いずれはUTF-8環境
に移行した方が良さそうです。
05155082006/12/27(水) 00:25:09
http://permalink.gmane.org/gmane.comp.gcc.devel/78542
を読んで思ったのですが、どうやらUTF-8にすれば完全解決というわけではな
いようですね。

g++ -finput-charset=EUC-JP

こう書くと、GCCはソースファイルを、includeされるヘッダライブラリまです
べてEUC-JPだとみなします。そしてそれを libiconv で UTF-8 に変換しよう
とします。このとき(ヘッダファイルに)EUC-JPに含まれない文字コード
(Latin-1など)があったらエラーになってしまいます。

g++ -finput-charset=UTF-8 (または-finput_charsetの指定なし)

こう書くと、GCCはソースファイルを、includeされるヘッダライブラリまです
べてUTF-8だとみなします。しかし今度は変換の必要がないので、libiconv は
呼ばれません。ヘッダライブラリも変換されません。

これで通常は問題はなくなるわけです。しかし、

・ヘッダライブラリのエンコーディングがUTF-8でない。
・ヘッダライブラリに wcha_tのリテラルがある。

(あまりないでしょうが、)この2つが同時に起こると、ライブラリは正しく
動作しません。

結局、すべてのヘッダファイルがUTF-8で統一されるか、Pythonのように各ソー
スファイルにエンコーディングの宣言ができるようにしないと、完全解決とは
言えないようです。いずれも一ユーザにはどうしようもない話ですが。

Boostとあんまり関係なくてすみません。
0516デフォルトの名無しさん2006/12/27(水) 13:04:16
初心者的質問で申し訳ありません。
>>391でインストールするとき、最初に
default variantsを選んでください
って言われて、
Multithred Debug, DLL
Multithred, DLL
Multithred
Multithred, static runtime
Multithred, Debug, static runtime
Single thred, static runtime
Single thred, Debug, static runtime
の中から選択させられるんですが、ノーパソ用ペンティアム3(1.13GHz)とノースウッドコアペンティアム4(3.2Ghz)
の場合、どれを選べばいいんでしょうか。
マルチスレッデッィングとシングルスレッディング用CPUの違いくらいしか分からないので・・・
0517デフォルトの名無しさん2006/12/27(水) 14:35:53
Multithred/Single thredはCPUの問題じゃない
0518デフォルトの名無しさん2006/12/27(水) 14:36:53
boostにはデバッグは特にいらないと思う。かなりでかくなるから。
DLLにするかどうかだけど、初心者ならスタティックでいいと思う。
あとはスレッドを利用するならマルチスレッド、しないならシングルスレッド。
シングルスレッドで速度を追求するならシングルスレッドだけど
通常はマルチスレッドでいいと思う。
0519デフォルトの名無しさん2006/12/27(水) 14:37:16
thred?
05205182006/12/27(水) 14:37:42
訂正
×特に ○別に
05215162006/12/27(水) 14:45:12
ありがとうございます。
ではとりあえず
Multithred, static runtime
でインストールして使ってみます。
なお、参考までにお聞きしたいのですが、DLLにするとどういった使い方が可能になるのですか?
0522デフォルトの名無しさん2006/12/27(水) 14:49:20
templateなlibraryにDLLもくそもないから気にするな。
0523デフォルトの名無しさん2006/12/27(水) 15:11:02
>>521
DLLの特長はここに書いてある。
http://e-words.jp/w/DLL.html
必要ならDLLを選ぶといいと思う。
0524デフォルトの名無しさん2006/12/27(水) 16:19:19
vc2005 sp1の現状

std;;wstring s = L"漢字";
// std::wcout << s << std::endl; //←ここをコメントアウトすると何もでなくなる
std::wcout.imbue(std::locale("japanese")
std::wcout << s << std::endl; //←出る
std::locale::global(std::locale("C"));
std::wcout << s << std::endl; //←出る

よくわかんないけどMSの開発担当者はもっとまともなロケール実装者が来るまで正座な。
0525デフォルトの名無しさん2006/12/27(水) 16:22:23
boostとは直接関係ないけど、これ直ってないのか。なんのためのSPなんだか('A`)
0526デフォルトの名無しさん2006/12/27(水) 20:10:24
>>524
とりあえずSTLport使っとくとlocale::globalの後に
それぞれimbueすればちゃんと動くらしいよ。
付属のだとそれすら効かない。

std::locale loc("japanese");
std::locale::global(loc);
std::wcout.imbue(loc);
std::wcout << L"ぶーすと" << std::endl;
0527デフォルトの名無しさん2006/12/27(水) 23:15:10
ublasでrankは求められなかとですかい?
rank求めるのにlu分解は精度の問題で、一般には使われてないとか書いてるけど、
どの程度精度に問題でてくるんだろうね。
0528デフォルトの名無しさん2006/12/28(木) 12:41:32
ttp://www.page.sannet.ne.jp/d_takahashi/boost/ublas/index.htmlを参考にして
ublasで逆行列を求めようとしているのですが、lu_factorizeの呼び出しでコンパイルエラーになります。
エラーメッセージが大量なので、ソースと一緒にアップローダに上げておきます。
ttp://zetubou.mine.nu/itoshiki/nozomu/zetubou3677.zip
0529デフォルトの名無しさん2006/12/28(木) 13:06:13
実行時エラーなら出るがコンパイルエラーは出ないな。
VC8SP1 + Boostは11月の頭にCVSから

F:\>cl -nologo -EHsc -ID:\Boost inv.cpp
inv.cpp

F:\>inv.exe
Check failed in file D:\Boost\boost/numeric/ublas/triangular.hpp at line 2435:
e1 () (n, n) != value_type ()

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

F:\>
0530デフォルトの名無しさん2006/12/28(木) 15:50:10
November 28, 2006 - Function Types Accepted
0531デフォルトの名無しさん2006/12/29(金) 19:50:03
VC7 でserializationのlib出きへんのやけど
なんか必要?
05325282006/12/29(金) 20:29:50
boostを1.32.0に入れ替えてみたところコンパイル出来ました。
実行時エラーは、おそらく係数行列を適当に設定したため発生したのだと思います。
係数行列を参考サイトと同じ行列にしたところ、同様の結果が得られました。
ublas使う時だけ1.32.0で行くことにします。ありがとうございました。
0533デフォルトの名無しさん2007/01/03(水) 10:46:57
>>3にリンクされてるPOCOって使ってる人いる?
今日落として試してみたんだけど、SampleについてるEchoServerの挙動が
微妙におかしくて……
原因は一応分かったのだが、英語力が無いからまっとうなバグレポ
送れにゃいよ。
0534デフォルトの名無しさん2007/01/03(水) 14:13:46
>>533
英語力ないからって言ってると永遠に身につかないよ。
バグレポなら状況を箇条書きにして送るだけでも大丈夫、ただし返信が来たらしらない(w
0535デフォルトの名無しさん2007/01/03(水) 14:59:14
>>534
そうだよなあ。
とりあえず、がんがって次のようなバグレポを書き込んだ。
意味が通るかどうかは全く自信が無いw


Hello.
I'm a Japanse, so please forgive my poor English.

When I tested "EchoServer" sample, I found that it doesn't send back FIN to the client when the client sends FIN to the "EchoServer", by calling shutdown().

This is because "EchoServer" doesn't call close() function for this socket.

Why is that?

Poco::Net::StreamSocketImpl is refcounted, and close() is called when it is really destructed.

I found that Poco::Net::SocketReactor's member, _pReadableNotification, _pWritableNotification, etc. holds Poco::Net::Socket instance, until next socket event arises.
So, until then, refcount remains 1, and close() is never called.

In Poco::Net::SocketReactor::run(),
member function dispatch() is called for each socket.
I think, after that, the socket which is held by _pReadableNotification, etc. must be immediately cleared, so Poco::Net::StreamSocketImpl's refcount will be 0, and close() will be called.
0536デフォルトの名無しさん2007/01/04(木) 13:26:47
boost の program_options で言及されているレスポンスファイル
に関する機能って、以前は configuration file って呼ばれていた
ものですか?単に呼び方が変わっただけですか?
http://www.boost.org/doc/html/program_options/howto.html#id2715898
05375362007/01/04(木) 13:32:57
1.33.1 のソースを見てみると、
// Additional command line parser which interprets '@something' as a
// option "config-file" with the value "something"
なんて書いてあるなぁ、前からあった機能なのか。
なんか俺が勘違いしていたみたいです。
05385362007/01/04(木) 13:42:23
追加のオプションをファイルで与えることが出来る
multiple source の機能と、コマンドラインそのものを
ファイルの形で与える response file の機能を
混同していたようです。
0539デフォルトの名無しさん2007/01/04(木) 14:35:43
ある大学でresearch programerっていう仕事の公募が出てる
research programerていうのはboostの開発してるような人達なのかな
05405362007/01/04(木) 14:42:44
>>539
頼まれてシミュレータなどのコードを書く人のことじゃないかなぁ。
0541デフォルトの名無しさん2007/01/04(木) 16:05:49
>programer
programmer
0542デフォルトの名無しさん2007/01/04(木) 17:55:53
>programmer
programer
0543デフォルトの名無しさん2007/01/04(木) 19:01:27
pugeramer
05445352007/01/05(金) 04:25:51
POCOにバグレポ書いたと思ったら、もうFixされたバージョンリリースされてた。
はえー。
拙い英文でもバグレポ書いた甲斐があったわ。
勇気付けてくれた >>534 あんがと。
0545デフォルトの名無しさん2007/01/05(金) 11:12:28
英語力がないから>535の意味を掴み切れない_/ ̄|○
#今年は真面目に(系統立てて)勉強するかな……
05465352007/01/05(金) 12:11:30
>>545
俺のアホな英文が分からないのは、多分君のせいじゃない。
相手はプログラムを良く理解してるから、クラスやメソッド名などのキーワードを
見て、問題を理解してくれたんだと思う。

今日も POCO を眺めてみたが、std::string ベースなので Path クラスが
日本語名を上手く扱えないという実にありがちな問題が……。
一見すると POCO_WIN32_UTF8 を定義して utf-8 ベースでやってれば
上手く機能しそうにも見えたが、たまにそのまんま std::fstream とかに
渡してるから、やっぱダメだな。

つうかいつになったらWindowsはja_JP.UTF8風なコードページをサポートして
くれるんだ。OS内部だけUTF-16化されてたってしょうがないだろうに。
0547デフォルトの名無しさん2007/01/05(金) 12:41:48
>>546
無理
ttp://blogs.msdn.com/michkap/archive/2007/01/03/1392379.aspx

まあ、ここでも言われているけど、
98がラッパでUnicodeをサポートできるように、
UTF-8のラッパをかぶせられないこともない。
どれほどの需要があるのか分からないけど。
0548デフォルトの名無しさん2007/01/06(土) 09:17:55
shared_ptrやweak_ptrのソースを調べてるんだけど、
shared_ptrは内部でweak_ptrを使ってるようだけど、これは何のため
なんだろうか。weak_ptrはshared_ptrの循環参照の欠点を克服できる
という話を聞いてるんだけど、shared_ptrのなかにすでにweak_ptrが使われてる
ということは、もうshared_ptrは循環参照を克服したってことでいいんですか?

違うとしたら、weak_ptrをどう使ってshared_ptrの循環参照を克服できるのか
教えてください。weak_ptrのソースみてみると、なんだかweak_countという
別のカウンタを使っているだけで中身はほとんどshared_ptrと同じように参照カウンタ方式
にみえるんだけど、これで本当に循環参照、解決するんだろうか…?
0549デフォルトの名無しさん2007/01/06(土) 10:05:47
ttp://www.kmonos.net/alang/boost/
ここのスマートポインタってところ読んでから来いや。
0550デフォルトの名無しさん2007/01/06(土) 10:12:40
>もうshared_ptrは循環参照を克服したってことでいいんですか?
よくない。
weak_countは参照カウンタの参照カウンタとでも言えばいいんだろうか。

struct A { shared_ptr<A> a; }
shared_ptr<A> hoge(new A);
hoge.a = hoge;

struct A { weak_ptr<A> a; }
shared_ptr<A> hoge(new A);
hoge.a = hoge;

この二つでどのように参照カウンタが変化するのか、調べてみるといいよ。
0551デフォルトの名無しさん2007/01/06(土) 11:16:45
>550

shared_ptrはカウンタ増えるけど、
weak_ptrはカウンタ増えないね。weak_ptrのカウンタはなぜ増えない??
代入で増えるように定義されてるように見えたんだけど

>549

いちおう読みました
0552デフォルトの名無しさん2007/01/06(土) 13:50:29
循環参照が置きるshared_ptrの相互参照がある場合、
相互参照の片方をweak_ptrに置き換えて循環参照が解決できる、
という理解でよろしいんでしょうか、ご教授ください
0553デフォルトの名無しさん2007/01/06(土) 13:51:53
そんな事、人に訊かんとわかんないもんかね。
0554デフォルトの名無しさん2007/01/06(土) 14:34:16
>553

これって実は誰でも知ってること??
0555デフォルトの名無しさん2007/01/06(土) 14:36:23
>相互参照の片方をweak_ptrに置き換えて循環参照が解決できる
この説明だと片方を単にポインタに置き換えるだけで良いじゃないか,という反論が
想定され, weak_ptr の本質的な利点と特徴を説明できていないような?
0556デフォルトの名無しさん2007/01/06(土) 15:22:57
>>554
皆知ってるかは知らんが、自分で結論出せないのなら
完全に理解できてないってことだ。
0557デフォルトの名無しさん2007/01/06(土) 15:45:06
そりゃ完全に理解できてないから訊いてるんだろ。
0558デフォルトの名無しさん2007/01/06(土) 15:48:06
>555

単にポインタに置き換えるだけだと、自動で消えないからマズいんですよね??
weak_ptrなら、相互参照の片方が消えたら自分も消えるんでウマいこと
いくってことでOK?

>556

結論を出してみたけど間違ってたまま覚えてたらまずいんで
合ってるのかどうかだけでも教えてください
0559デフォルトの名無しさん2007/01/07(日) 03:14:24
boostのUnitTestってCppUnitと比べてどんな感じですか?
0560デフォルトの名無しさん2007/01/07(日) 03:26:17
マグロとイカフライみたいな感じかな
0561デフォルトの名無しさん2007/01/07(日) 03:32:22
>>560 ありがとうございました
0562デフォルトの名無しさん2007/01/07(日) 05:51:31
ちょww
0563デフォルトの名無しさん2007/01/07(日) 13:58:09
weak_ptrにいれたshared_ptrのカウントと、weak_ptrのカウントが
同じカウントになるような気がする。
つまりshared_ptrが消えるときにweak_ptrのカウントもゼロになって
同時に消える仕掛けになってると考えていいんでしょうか先生?
0564デフォルトの名無しさん2007/01/07(日) 15:19:12
ちがった・・・入ってるshared_ptrが消えてもweak_ptrのカウントは1残った…
それまではカウント同じなのになぜ??
0565デフォルトの名無しさん2007/01/07(日) 20:29:47
>>558
>単にポインタに置き換えるだけだと、自動で消えないからマズいんですよね??
いや, weak_ptr の機能は参照先のオブジェクトの生存管理と直接は無関係です.
普通のポインタで参照していようが, weak_ptr で参照していようが,
shared_ptr による参照カウントが0になればそのオブジェクトは消えます.

単なるポインタと比較した場合の weak_ptr の利点は,

 -参照先のオブジェクトが生存しているかどうかを調べることができて,かつ
 -shared_ptr に格上げできる

ことです.

いずれにせよ, shared_ptr による循環参照の問題の解決するにあたって,
必ず weak_ptr の機能が必要になるわけではないです.
単に weak_ptr の機能を理解しようとするだけなら,
循環参照の問題はとりあえず脇に置いておいた方が良いような気がします.
0566デフォルトの名無しさん2007/01/07(日) 20:46:53
>>563
shared_ptr の実装は,参照カウントによって管理されるオブジェクト
(A とします) と独立して,新たにフリーストア (ヒープ) 上に
参照カウント用のオブジェクト (X とします) を生成します.

X は, A の参照カウントと独立して自分自身の参照カウントも持っていて,
独立した2つの参照カウントを持っているイメージになります.

shared_ptr が1つ作られるごとに A の参照カウントと X の参照カウント両方が
1つ増やされ, shared_ptr が1つ破壊されるごとに
A の参照カウントと X の参照カウント両方が1つ減らされます.

weak_ptr が1つ作られるごとに X の参照カウントのみが増やされ,
weak_ptr が1つ破壊されるごとに X の参照カウントのみが減らされます.

A の参照カウントが0になれば A を delete します.
しかし, X の参照カウントが0になっていなければ X は破壊されません.

最終的に全ての shared_ptr と weak_ptr が存在しなくなった時点で,
X の参照カウントは0になります.この時点で X は delete されます (自殺します).

以上が, shared_ptr と weak_ptr の実装面での動作です.
0567デフォルトの名無しさん2007/01/08(月) 03:42:00
>>566

うそ〜ん??shared_ptrはカウントを二種類持ってるってこと?
あ、sp_countと内部のweak_ptrの二種類のことを言ってる??
0568デフォルトの名無しさん2007/01/08(月) 04:04:00
>weak_ptr が1つ作られるごとに X の参照カウントのみが増やされ,
>weak_ptr が1つ破壊されるごとに X の参照カウントのみが減らされます.

shared_ptr<A> hoge(new A);

cout << hoge.use_count() << endl;

weak_ptr<A> hogehoge(hoge);

cout << hoge.use_count() << endl;
cout << hogehoge.use_count() << endl;

試してみたらどっちも増えなかったよ
0569デフォルトの名無しさん2007/01/08(月) 10:57:47
>>568
weak_ptrのuse_countはweak_countを返すわけじゃないよ。
ドキュメント読め。
0570デフォルトの名無しさん2007/01/08(月) 18:09:37
Boost.Timeseries
Boost.Accumrator
は結局アクセプトされたの?

0571デフォルトの名無しさん2007/01/09(火) 13:46:37

オブジェクトを参照している最後の shared_ptr が破棄されるとき、
weak_ptr の有無にかかわらず、そのオブジェクトは削除される。
ただし、オブジェクトを参照する weak_ptr が存在していた場合、
参照カウントを保持する sp_counted_impl_pd は削除されない。
(weak_ptr と shared_ptr すべてが破棄されないと削除されない為)

weak_ptr からポインタ参照を行いたい場合、
必ずロックして shared_ptr を取得するような設計になってるけど、
上記仕組みのおかげで、たとえ shared_ptr が存在しない状態でも
オブジェクトが破棄されていることが分かり、エラーを返すことが出来る。


0572デフォルトの名無しさん2007/01/09(火) 16:13:31
Statistical Distributions and Mathematical Special Functions
のレビューコメントが厳しいのばっかりなのはなんで?
最初 Boost.Mathとか名前ついてたときは、
ちょっと広すぎな名前だとは思ったけど
0573デフォルトの名無しさん2007/01/09(火) 16:49:03
>>572
>Statistical Distributions and Mathematical Special Functions
興味あるんだけどどのへん見ればいいの?
ポインティングよろしく
0574デフォルトの名無しさん2007/01/09(火) 17:14:44
http://boost-consulting.com/vault/index.php?PHPSESSID=bq352onkg7ogdbu4lundegolg1&direction=0&order=&directory=Math%20-%20Numerics
の
math-toolkit-code.tar.bz2
0575デフォルトの名無しさん2007/01/09(火) 17:25:00
>>574
Thanks!
0576デフォルトの名無しさん2007/01/09(火) 18:12:22
>>548-571
通りすがりだけど、このやり取りで、weak_ptrがすっごくよく分かった!
日本語でこれだけちゃんとした説明はどこにもないと思う。ありがとう!
0577デフォルトの名無しさん2007/01/10(水) 21:17:34
shared_ptrなんだけど、中にいれるオブジェクトが消えると
カウントが減りますよね。
でも、中のオブジェクトが消えたということを、shared_ptrはどうやって知るんですか?
代入演算子で上書きされたときについては、代入演算子の多重定義で
上書きされたほうをデクリメントしてるのは分かるんだけど、
スコープを抜けたときとかはshared_ptrには分からんのでは?
リアルタイムにオブジェクトが生きてるかどうかを監視してるわけでもないのに、
スコープ抜けてオブジェクトが自然消滅したときにもちゃんとカウントが
減ってるのって不思議すぎる。これ分かる人いる?
0578デフォルトの名無しさん2007/01/10(水) 21:25:23
>中にいれるオブジェクトが消える

>代入演算子で上書きされたとき

>オブジェクトが生きてるかどうか

この辺が果てしなく意味不明。
>>577はshared_ptrを全く理解していないようだ。
0579デフォルトの名無しさん2007/01/10(水) 21:55:07
ソース読めばわかるよ
0580デフォルトの名無しさん2007/01/10(水) 21:57:28
>577
デストラクタ
0581デフォルトの名無しさん2007/01/11(木) 07:38:26
shared_ptr<A> hoge(new A);
int i = 1;
while(i--){
shared_ptr<A> hogehoge(new A);
hoge = hogehoge;
cout << hoge.use_count() << endl;
}
cout << hoge.use_count() << endl;

こういう状態のとき、二番目のhoge.use_count()のときにはカウントが
一番目より一つ減るでしょ。それをhogeのカウンタはどうやって把握したの?
ってことを聞きたかったんです。
カウンタのデクリメントについては、ソースを読めば代入演算子の
部分で、代入元をインクリメントして代入先をデクリメントするってことが
書いてあるけど、代入したオブジェクトそのものが上のコードみたいに
スコープはずれて消えたときにデクリメントする処理なんて書いてないな、
と思ったんです。


>>580

代入元のデストラクタですか?
どうやって代入元のデストラクタで、shared_ptrのカウントを下げてるか分かりますか??
0582デフォルトの名無しさん2007/01/11(木) 08:09:28
>>581
カウンタもshared_ptrが保持するポインタと同じく共有されるよ。
shared_ptr<A> hogehoge(new A); //カウント1
hoge = hogehoge; //カウント2
} //hogehogeの破棄によってカウント1
その後hogeの破棄時にカウントが0になるのでdeleteが呼ばれる。
0583デフォルトの名無しさん2007/01/11(木) 09:19:43
初歩的な質問で申し訳ないけれど、
shared_ptrはコンストラクタではいろんなオブジェクトを受け付けるけど
代入はスマートポインタしか受け付けないってのは正しい?
いちど初期化してしまうと、
あとから別のオブジェクトを入れるには他のshared_ptrにいれてから
本当に入れたいshared_ptrにそのshared_ptrを代入するしかありませんか?
0584デフォルトの名無しさん2007/01/11(木) 09:41:04
>>581
もうね、
> int i = 1
> while(i--){
の時点でC++理解してなさすぎ。

{
  shared_ptr<A> hogehoge(new A);
  hoge = hogehoge;
  cout << hoge.use_count() << endl;
}

これだけでスコープ限定できるの。
boostを理解しようなんて百年早い。
基礎からやり直しな。
0585デフォルトの名無しさん2007/01/11(木) 09:55:44
C++っていうかC
0586デフォルトの名無しさん2007/01/11(木) 10:01:40
>>584

んなどうでもいいことよりも少しは本質的な話をしたらどう
0587デフォルトの名無しさん2007/01/11(木) 10:03:37
do{
hogehoge();
}while(0);


hogehoge()は実行されますか?
0588デフォルトの名無しさん2007/01/11(木) 10:28:53
>>587

それは別のスレで質問したらいいと思う
0589デフォルトの名無しさん2007/01/11(木) 10:45:07
>>583
reset すれば?
0590デフォルトの名無しさん2007/01/11(木) 10:47:47
お前らと仲良くなりたくて、もっと weak_ptr について理解を
深めようと思ったが、頭が悪すぎて理解できなかった。

なんかやばそうだから循環参照が起きないように気をつけよう、
その程度の理解な俺が作っているプログラムを使わされている
やつカワイソス。
0591デフォルトの名無しさん2007/01/11(木) 10:49:54
ちなみに俺の理解では weak_ptr は参照カウントを増減させないので
たとえ weak_ptr で参照されていたとしても実体が delete されて
いるかもしれん。だから weak_ptr の参照先が生きてるかどうか
ちゃんとチェックしてから使おうね、ってことなんだが。
0592デフォルトの名無しさん2007/01/11(木) 10:51:18
生のポインタじゃなくて weak_ptr を使う理由は、
参照先のオブジェクトの生死を追跡することが出来るから。

えっと、ほかにうれしさある?
0593デフォルトの名無しさん2007/01/11(木) 11:09:46
>>592

おれもよく分からんのだけど、読んだりしらべたりした感じだと
循環参照でカウントが不当に上がってしまわないように
shared_ptrの相互参照は片方をweak_ptrにしないと駄目ってことも
あるんじゃないだろうか。違ってたらまた指摘よろ
0594デフォルトの名無しさん2007/01/11(木) 11:11:17
>>589

reset()か。ちょっと試してみる
0595デフォルトの名無しさん2007/01/11(木) 11:24:52
>>589

reset()した後に、そのshared_ptrをどうやって再利用したらいいんだろう。
0596デフォルトの名無しさん2007/01/11(木) 11:57:10
shared_ptrみたいな簡単な部類すら理解できないのに
boostを使おうなんて100年早い
0597デフォルトの名無しさん2007/01/11(木) 12:08:07
>>596
それでも BGL は便利にがんがんつかわせてもらってます ><
0598デフォルトの名無しさん2007/01/11(木) 16:02:41
>>595
shared_ptr p1( object1 );
p1.reset( object2 );

shared_ptr のインターフェイス定義くらい読んでおけよ。
0599デフォルトの名無しさん2007/01/11(木) 16:28:02
>>592
他に,対象のオブジェクトを参照している最中に
(そのオブジェクトを指している shared_ptr が全て消えることで)
突然そのオブジェクトが死んでしまうような事態を回避することができます.
(この問題はマルチスレッドプログラムで特に顕著だと思いますけれど,
シングルスレッドプログラムでも論理的にはありえるケースです)

void process( weak_ptr< Obj > wp )
{
  if( shared_ptr< Obj > p = wp.lock() ){
    // このスコープ内では, (たとえば他の実行スレッドの動作によって)
    // p の指しているオブジェクトが削除されるようなことはない
  }
  else{
    // wp が指しているオブジェクトが死んでいる場合.
    // ここでどうするかは何を実装するかによります.
    // wp の参照先が常に生存していることが不変条件ならば,
    // 571さんの書いているように論理エラーを通知する (例外を送出する) ことに
    // なるでしょうし,参照先のオブジェクトが死んでいることを検出して
    // 他のアクションを取るようなことも,場合によっては想定されます.
  }
}
0600デフォルトの名無しさん2007/01/11(木) 16:30:05
また,自身は shared_ptr を必要としないけれど,他の誰かに
shared_ptr を渡すような要求がある場合に weak_ptr が必要になります.

// 自身は B のオブジェクトへの (弱い) 参照を持っているだけで良いが,
// B のオブジェクトへの shared_ptr を返すインタフェイスが必要なクラス
class A{
public:
  shared_ptr< B > getB() const{ return boost::shared_ptr< B >( p_ ); }
private:
  weak_ptr< B > p_;
};


あと weak_ptr の使い方として典型的なのが,参照先のオブジェクトが
死んでいてもかまわないような場合です. proxy (特にキャッシュの実装) や
observer などの実装で有用な使い方があるかと思います.
0601デフォルトの名無しさん2007/01/11(木) 17:17:34
shared_ptr はソースはそんなに複雑ではないわりに、
enable_shared_from_this や、weak_ptr、shared_ptr<void>、カスタム削除子 への対応など
細かいところでさまざまな工夫が施されているから、一度ソースに目を通しておくと勉強になる。
0602デフォルトの名無しさん2007/01/11(木) 19:49:50
削除子は勉強になったなぁ
0603デフォルトの名無しさん2007/01/11(木) 20:18:15
今回の人の場合、ソース読むよりスマートポインタのことが書かれた
適当な本読んだほうがよくねえか?
いやおまいらが親切なのはよくわかったけどさ
0604デフォルトの名無しさん2007/01/11(木) 20:31:23
カウンタを共有するのがポイント
0605デフォルトの名無しさん2007/01/11(木) 20:56:40
>>603
>適当な本読んだほうがよくねえか?
そういう本ある?自分は見たことないんだけれど
0606デフォルトの名無しさん2007/01/11(木) 21:08:05
超定番ながらModern C++ Designじゃないかね?
0607デフォルトの名無しさん2007/01/11(木) 22:49:52
multi_array<double,3>
じゃなくて
int ndim=3;
multi_array<double> a(ndim)
みたいな多次元配列の宣言の仕方できないのでしょうか?
ndimをプログラム中で変えたいのです

0608デフォルトの名無しさん2007/01/12(金) 09:59:32
多次元配列の大きさを動的に決める方法なかったみたいなので

std::map< std::vector<double>, double> m

で代用しました。速度で問題でそうな雰囲気もするけど、しかたないかな・・・
0609デフォルトの名無しさん2007/01/12(金) 11:07:32
>>608
ふつうstd::vector<<std::vector<double> >じゃない?
0610デフォルトの名無しさん2007/01/12(金) 11:09:46
>>608
スレ違いになるが、一次元配列を(動的に)確保して、擬似多次元アクセス関数を作った方が善くないか?
0611デフォルトの名無しさん2007/01/12(金) 11:32:19
>>606
boost::shared_ptr を理解する上で Modern C++ Design はどうなんですかね?
あれはスマートポインタについては,削除子による不完全型への対応とか
クロス DLL 問題などの突っ込んだ議論は載っていなかったように思いますし,

それに boost::shared_ptr の設計思想は, MC++D の一つの柱である
「ポリシーに基づく設計」のそれとは,アンチテーゼの関係にすらあるように思いますし.
0612デフォルトの名無しさん2007/01/12(金) 15:50:59
>>608
…代用できるの?
0613デフォルトの名無しさん2007/01/12(金) 21:54:17
どうみてもコンパイルエラーです。本当にありがとうございました。
0614デフォルトの名無しさん2007/01/12(金) 23:21:36
>>611
標準C++ライブラリ(背表紙赤い奴)には auto_ptr の詳しい説明と
簡単なカウント式スマポの実装例があったような
あとは More Effective C++ とか?
0615デフォルトの名無しさん2007/01/15(月) 10:15:05
「C++再考」のハンドルクラスの実装例なんか、どうっすかね?


0616デフォルトの名無しさん2007/01/15(月) 17:01:38
boost.accumulators
いじってるんだけど、数値計算メインの人が
MPL勉強するのはちょっとしんどいんじゃないかと思うんだ
0617デフォルトの名無しさん2007/01/16(火) 00:27:28
boostのヘッダーをインクルードすると、
バカみたいにコンパイル時間がかかるのですが、
メモリー増設すれば少しは早くなるのでしょうか?

Pentium M 17Ghz
Mem 500M
VS2005
OS:XP

です
コンパイルオプションをいじれば少しは早くなるのでしょうか?
0618デフォルトの名無しさん2007/01/16(火) 00:30:17
CPUを速くしろ、と言おうと思ったが十分速いみたいだw
0619デフォルトの名無しさん2007/01/16(火) 00:40:24
プリコンパイル済みヘッダ使えば多少はマシになんじゃない
17GHzもあるとどうかわからんけどw
0620デフォルトの名無しさん2007/01/16(火) 00:46:42
1.7Ghzの間違いでした
コンパイル中に、やたらとディスクアクセスする音が聞こえるので
ひょっとして500Mで足らないのかと思ったのですが、
そうでもないのですか?
0621デフォルトの名無しさん2007/01/16(火) 01:12:45
そりゃヘッダ含めソースコードが置かれているのはディスクの中だからさ。
0622デフォルトの名無しさん2007/01/16(火) 01:13:40
環境による。XPと開発環境以外何も入っていないのならspirit使わなければ500MBでも十分。
まあ500MBなんて半端なメモリ容量のPCは相当特殊だろうから俺の意見は参考にならんだろう。
512MBからビデオメモリ用に12MB引っ張ってくようなキモイ統合チップセットは聞いたことないし。
0623デフォルトの名無しさん2007/01/16(火) 10:43:29
mplとかlambda使うならプリコンパイル済みヘッダは必須だな
0624デフォルトの名無しさん2007/01/16(火) 10:51:49
テンプレートってコンパイル時まで型が決まらないからテンプレートなのに
プリコンパイルの効果あるの?
それとも全部のパターン分インスタンシエイトしちゃうとか?
0625デフォルトの名無しさん2007/01/16(火) 13:01:41
>>624
2回目以降のコンパイル時には効果絶大だろ。
PCH が無いと、一度インスタンス化した型でもソースファイルが違うと
もう一度コンパイルしなきゃいけないし。

0626デフォルトの名無しさん2007/01/16(火) 13:33:11
>>624
プリコンパイルっても別にオブジェクトコード吐くわけじゃなくて、
プリプロセッサ通して構文解析かけて、コンパイラの内部形式に変換しとく程度でも充分効果あるだろ。
0627デフォルトの名無しさん2007/01/16(火) 14:06:43
いちいち stfafx.{cpp|h} みたいなのを作らないと
いけないのがめんどうだよな。hdrstop とかも指定せずに、
臨機応変にやってくれればいいのに。
って無茶か。
0628デフォルトの名無しさん2007/01/16(火) 14:23:58
boost::serialization のシリアライズ先は
テキスト/バイナリ/XML なんだけど、
吐き出したデータを他の言語処理系から
読みたいときには XML しかないかな?

大量のデータを他の処理系とやりとりするときって、
やっぱり今まで通り独自形式で吐くしかないのかなぁ。
いっそのこと RDBMS のテーブルに吐き出してくれたらいいのに。
って、やっぱ自分で書き出すしかないか。
0629デフォルトの名無しさん2007/01/16(火) 14:26:16
>>627
普通にcc foo.hするだけだろ。
0630デフォルトの名無しさん2007/01/16(火) 21:42:08
RDBMSはランダムアクセスは早いがシーケンシャルが遅い。
そのうえ更新頻度が高いとシステムダウンする勢いでCPU負荷を上げ、
リソースを占有してしまう。
0631デフォルトの名無しさん2007/01/16(火) 22:02:00
素直にXMLでいいや・・・
ところで、当たり前かも知れないけど
serialization って deserialization の方がコスト高いよね。
パースにかかるコストが高いんだろうけど。
0632デフォルトの名無しさん2007/01/16(火) 22:40:36
軽く作ればパースはたいしたことはない。
普通の言語と違って構文がスゲー単純だから。
字句はDFAを使うとかすればいいかもしれない。
0633デフォルトの名無しさん2007/01/16(火) 22:41:53
追記。たとえ重いパーサであってもRDBMSのODBCなどの
オーバーヘッドに比べれば屁の河童。
0634デフォルトの名無しさん2007/01/17(水) 12:25:46
現在のバージョンの boost::serialization って、
特に XML にシリアライズする場合には浮動小数点数の
NaN が正しく扱われないんだな。
ちょっとカナシス。
0635デフォルトの名無しさん2007/01/18(木) 02:26:24
浮動小数点といえば、IEEE754はそろそろバージョンうpじゃなかったか
0636デフォルトの名無しさん2007/01/18(木) 11:32:56
boost.decimal みたいなライブラリがほしいなぁ。
0637デフォルトの名無しさん2007/01/18(木) 11:43:43
.NETはDecimal定数が扱えるのがぶっちゃけめちゃくちゃ便利だな。
複素数やリストもそうだけど、定数やリテラルとして使えるかどうかって
結局使い勝手に格段の差が出来ちまうな。
0638デフォルトの名無しさん2007/01/18(木) 14:32:51
>>635
kwsk
0639デフォルトの名無しさん2007/01/18(木) 15:25:16
>>638
ttp://ja.wikipedia.org/wiki/IEEE_754r
0640デフォルトの名無しさん2007/01/18(木) 15:33:30
>>639
thx
0641デフォルトの名無しさん2007/01/19(金) 00:56:43
tuple と lambda を使ってみてたんだけど、

bind(&get<0>, _1);

って式が通らないんだが……。
返り型の指定してもダメだし、ドキュメントいくら読んでもさっぱりわからない。
誰か教えてくれないだろうか……(´・ω・`)
0642デフォルトの名無しさん2007/01/19(金) 01:00:06
質問です。
クラスAとクラスBがあるとしてshared_ptrで相互参照するのはNGというのを最近知りました。
すると、相互参照したい場合は
class A{
weak_ptr<B> b;
}

class B{
shared_ptr<A> a;
}
とすれば良いのでしょうか。ちなみにAは一つしか存在しないBの管理クラスで、Bは複数存在する管理されるクラスなのですが、
その場合はこのように管理される側が管理する側をshared_ptrで参照して、管理する側が管理される側をweak_ptrで保持するのが良いのでしょうか。
あとscoped_ptrというのもあるようで、それぞれどういう時に利用すれば良いのかまだいまいち掴めません。
0643デフォルトの名無しさん2007/01/19(金) 06:57:25
>>641
getは設計が古くなっている。
戻り値指定なしでもできるが長くなるのでこんな感じで

template<typename Result, int i>
struct get
{
/**/ typedef Result result_type;

/**/ template<typename Tuple>
/**/ Result operator()(Tuple& t) const
/**/ { return boost::get<i>(t); }
};

bind(get<double, 0>(), _1);
0644デフォルトの名無しさん2007/01/19(金) 07:27:37
>>642
各オブジェクトの寿命を考えてみたらいいと思うよ。
あと、weak_ptrはオブジェクトを参照するときに
一時的なshared_ptrを作成するのでコストがかかるね。

scoped_ptr, scoped_arrayは、受け取ったポインタを
自分の寿命が切れるときにdeleteするだけのポインタクラス。
C++の仕様がわかっていれば使い道はいろいろ。
0645デフォルトの名無しさん2007/01/19(金) 14:15:52
で、いつ標準化されるんですかね。
0646デフォルトの名無しさん2007/01/20(土) 00:52:42
>>643
おお、ありがとう。
やっぱり戻り値の型が判別できないのが問題なのかな?

色々いじりつつ、もう一度 lambda の sig を読んでみたら、今度はちょっと分かった気が。

template <int i>
struct get {
/**/ template <class Tuple>
/**/ typename boost::tuples::element<i, Tuple>::type operator()(Tuple& t) const {
/******/ return boost::get<i>(t);
/**/ }

/**/ template <class Args>
/**/ class sig {
/******/ typedef typename boost::tuples::element<1, Args>::type Tuple;
/******/ typedef typename boost::tuples::element<i, Tuple>::type Result;
/**/ public:
/******/ typedef typename boost::remove_cv<Result>::type type;
/**/ };
};

bind(get<0>(), _1);

ってことで、こう書いたらとりあえず行けたんだが、こんな感じでいいのかな?
もっといいやり方があったりするんだろうか。

しかし、関数オブジェクトならこれでいい(?)けど、テンプレート関数には sig は使えないよね。
ということは、関数の場合はテンプレート引数を全部指定しないとダメってことかな。
いや、でも、boost::get<> のテンプレート引数全部指定してもダメだったし、キャストしてもムリだったような。
なんかまたよくわからなくなってきた…(´・ω・`)
0647デフォルトの名無しさん2007/01/20(土) 11:19:05
引数指定が間違ってるんだろう。consとかいるぞ
そもそもgetのシグニチャーは公開されてないと思われるので書いてはいけない。
要は君の::getが主役で、boost::getはシンタックスシュガーだ
関数オブジェクトがつねに偉いのだ
0648デフォルトの名無しさん2007/01/21(日) 20:32:31
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
となる
0649デフォルトの名無しさん2007/01/21(日) 20:41:39
>>648
bind() された関数オブジェクトの型は決められていないから、無理。
かわりに、結果の書き込み先を参照で持たせるのがいいんじゃない?

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

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

でも移植性のある他の代替選択肢もなさそうだしなぁ・・・。
0657デフォルトの名無しさん2007/01/22(月) 16:39:05
>> でも移植性のある他の代替選択肢もなさそうだしなぁ・・・。

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

http://boost.cvs.sourceforge.net/*checkout*/boost/boost/libs/filesystem/doc/index.htm?pathrev=RC_1_34_0
0660デフォルトの名無しさん2007/01/22(月) 19:35:35
1.34 早くリリースされないかな?
0661デフォルトの名無しさん2007/01/22(月) 21:28:32
1.35は大変なことになるというか、もう別の言語というか
Fusion, MPI, Asio, Interprocessなどなど

ライブラリに関しては、標準が何かするべきではないと思う
標準は、発表の場を提供することに予算を使うべきだ。
そして、その場所を標準として定義すべきだ(とか言ってしまおう)
実際stlportが泥を被っているわけだしな
BoostがなければC++は死んでたよ
0662デフォルトの名無しさん2007/01/22(月) 22:11:32
>>661
すまんが言いたいことがよくわからん。
もうちょっと具体的 and/or 他人に理解できるようにお願い。
0663デフォルトの名無しさん2007/01/22(月) 22:40:02
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を両方使いたいだけなんだけど
06646632007/01/22(月) 22:56:26
自己解決しました
std::for_each(ar.begin(),ar.end(),boost::bind<void>(boost::ref(sig), _1));
でできました
0665デフォルトの名無しさん2007/01/24(水) 09:21:05
gil::transform_channels(pixel1,pixel2,pixel3, ( 1.0/(boost::lambda::_1 - boost::lambda::_2) ) );
がコンパイルエラーになるのですが、
何か見落としているのでしょうか?
06666652007/01/24(水) 09:51:28
エラーの原因
gil::transform_channels(pixel1, pixel2, pixel3
を使ってるはずが lambdaを使ったとたん
gil::transform_channels(const pixel1,const pixel2, pixel3
に入れ替わってしまうことが原因のようです
06676652007/01/24(水) 09:52:00
gil::transform_channels(pixel1,pixel2,pixel3, std::plus<double>() );
とするとコンパイルは通ります
0668デフォルトの名無しさん2007/01/24(水) 10:50:48
MSVC++7.1, boost1.33.1の環境です。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3506.txt
のコードを実行すると、自分の環境では
boost::regex_search()で例外が発生してしまいます。
("Memory exhausted").

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

ということでよろしいでしょうか。
このタイプの正規表現で、入力量の大きい時にコケる、という印象なのですが。
0677デフォルトの名無しさん2007/01/25(木) 00:06:17
個人的にはプロジェクト内のものは " "、プロジェクト外のものは < > にしてる。
つまり <boost/....hpp> 派だな。
0678デフォルトの名無しさん2007/01/25(木) 00:08:08
>>676
君のプログラムを試したわけはないが VC7 ってとこにちょっと引っ掛かる。
可能であれば VC8 とか cygwin/mingw とかで試してみなはれ。
06796682007/01/25(木) 00:13:15
>>678
VC8は持ってないんすよ。
localeまわりでstd::wcoutが腐るとかfstream::open()が上手くいかねーとか
腐った風評しか聞きませんので、移行するとしても二の足を踏んでしまいますが。

VC7.1をboostはサポートしていないのですか?
0680デフォルトの名無しさん2007/01/25(木) 00:16:42
VC8でも同じ例外発生したよん。
0681デフォルトの名無しさん2007/01/25(木) 02:33:59
bindが必要とするresult_typeを
sig templateで代用することはできないのでしょうか?
0682デフォルトの名無しさん2007/01/26(金) 06:33:13
MPLで次元解析する方法みて感動したけど、
いざ自分の問題で使おうと思っても、使いどころが微妙

いり込んだ type の木構造でも使わない限り
enable_ifの延長としてしか使えない
0683デフォルトの名無しさん2007/01/26(金) 20:40:23
boost::bindを
boost::lambda::bind
に変えたら挙動が違う

protectで囲ってあるところを呼んだり呼ばないで落ちたり

どっちのbinsを使うのが推奨なの?
0684デフォルトの名無しさん2007/01/27(土) 00:47:54
>>668
の問題に関して:

http://capslockabcjp.kitunebi.com/faq.html

boostのバグ?

スレでの指摘により、boostの動作が怪しいという指摘がありました。
boost1.33および1.33.1で/\1/を使用した場合に落ちることを確認しました。
0685デフォルトの名無しさん2007/01/27(土) 19:43:57
boostがC++でC++のコンパイラ作るのはいつ?
0686デフォルトの名無しさん2007/01/27(土) 20:43:41
spiritでC++のコンパイラ書けってことか
0687デフォルトの名無しさん2007/01/28(日) 03:04:59
Boostのおなじみの形式のドキュメント
こんなやつをdoxgenみたいに自動生成するツールってないのかな
http://boost-sandbox.sourceforge.net/libs/time_series/doc/html/index.html
0688デフォルトの名無しさん2007/01/28(日) 16:49:09
ヘッダーファイルの置き場所について教えてください

既存のboostの拡張として
boost/X/Y/z.hpp
に、おきたくなるようなヘッダーがあります。
しかしboost MLに投稿してもrejectされる可能性を考えて
my_lib_name/X/Y/z.hpp
においておくべきか,どうかで迷ってます

ヘッダーの場所を
#define my_lib_name/X/Y/z.hpp INC_XYZ
として後で変更できるようにしておくのが無難なのでしょうか?

namespaceも
boost::X::Y::z
などとせず
#define my_lib_name::X::Y::z NAME_XYZ
としておくのが無難なのでしょうか?



0689デフォルトの名無しさん2007/01/28(日) 17:22:21
>>688
boost 気にすんな。紛らわしい。
どうせ accept されないし。
書き換えるにしてもたいした手間じゃない。
0690デフォルトの名無しさん2007/01/29(月) 16:44:56
>>671
確か、mingwで使おうと思ったときに""だとどうしてもエラーになった気がする。
それ以後ずっと<>にしてる。
""で行けている人居る?
0691デフォルトの名無しさん2007/01/29(月) 17:58:52
#define BOOST_DIR c:/lib/boost_ver_xxx/
#define BOOST_BIND_INC BOOST_DIR##bind.hpp

うまくいかない
#include "BOOST_BIND_INC "

うまくいくのかな?
#include <BOOST_BIND_INC >
0692デフォルトの名無しさん2007/01/29(月) 18:04:41
Makefileの先頭で

INCLUDE=C:/boost
LIB=C:/boost/mingw

こんなんでいけたはず。
というかUNIXルーツのソフトのお約束で常識だったはず。

x.ccをコンパイルする時はこうだった思う。

A>echo "INCLUDE=C:/boost">Makefile
A>echo "LIB=C:/boost/mingw">>Makefile
A>gmake x
0693デフォルトの名無しさん2007/01/29(月) 18:25:49
>>691
それをやるならこんな感じ。

# define BOOST_DIR c:/lib/boost_ver_xxx/
# define PP_IDENTITY(x) x
# define PP_STRINGIZE(x) PP_STRINGIZE_I(x)
# define PP_STRINGIZE_I(x) #x
# define BOOST_INC(name) PP_STRINGIZE(PP_IDENTITY(BOOST_DIR)name)

# include BOOST_INC(bind.hpp)
0694デフォルトの名無しさん2007/01/29(月) 23:43:27
>>691
ちょw
0695デフォルトの名無しさん2007/01/30(火) 19:16:12
ヨーロッパ系の人の作るライブラリーにboostが使われないのは
ライセンスの関係?単なる好み?
0696デフォルトの名無しさん2007/01/30(火) 21:58:14
変なレビュー投稿しちまった
0697デフォルトの名無しさん2007/01/31(水) 05:06:16
spiritって、もしかしてUnicodeは対応してない?
0698デフォルトの名無しさん2007/01/31(水) 11:15:53
いや、普通にいけるはず。
Unicodeのtextファイル相手にfile_iterator使ってる場合はBOMに注意。
0699デフォルトの名無しさん2007/01/31(水) 11:51:17
さんクスコ
0700デフォルトの名無しさん2007/02/02(金) 23:37:31
boost::tuples::get<0>をbindしたいのですが
なぜかうまくいきません。

struct tmp_bi_op_t
{
double sum;
double operator()(double a ,double b)
{
sum +=a+b;
std::cout << "(" <<a << " " <<b << " " << sum << ")";
return a+b;
}
};

tmp_bi_op_t tmp_bi_op;
tmp_bi_op.sum=0;

std::vector<double > vec,vec2(2);
vec.push_back(2);
vec.push_back(1);

std::for_each(
boost::make_zip_iterator(
boost::make_tuple(vec.begin(), vec.begin())
),
boost::make_zip_iterator(
boost::make_tuple(vec.end(), vec.end())
),
boost::bind<void>( boost::ref( tmp_bi_op),
boost::bind(boost::tuples::get<0>,_1),
boost::bind(boost::tuples::get<1>,_1)));
std::cout << tmp_bi_op.sum;
0701デフォルトの名無しさん2007/02/08(木) 22:12:27
こんにちは
vista+vc2005環境にboostを組み込みたいんですけどうまく行きません
何が原因なんでしょうか・・以下の手順で駄目でした

まずboost1_33_1とjamを落とし展開、jamをboostフォルダに移動し、
コマンドプロンプトで以下を実行
(boostのフォルダ以下略)>"C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"
bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install
すると一見快調にビルドしてるようでしたが>>380氏と同様のエラーが頻発していて、
かつ「Unicodeで保存してください」ワーニングも量産されてました
6.0では組み込みが成功していたんですが、そのときコンパイラに組み込んでいた
(VCのフォルダ)\INCLUDE\boost-1_33_1みたいなフォルダは生成されてませんでした

次に>>391のサイトにあるインストーラを試してみましたがこれも例のフォルダは見当たらず・・

ひょっとしてvc2005ではboostの組み込み方が違っていて
私は壮大な勘違いをしてるんでしょうか?
今日一日かけて調べてみましたが全然分かりません
どうかよろしくお願いしますm(_ _;;)m
0702デフォルトの名無しさん2007/02/08(木) 23:22:12
>>701
391さんのお任せのやつなら、
VC8.0用を指定して展開位置を指定するとそこににboost-1-33-1のディレクトリが出来ているので、
その中にboostがあるから、自分のプロジェクトのインクルードディレクトリに追加指定すれば
よいかと思いますけど。リンク対象のライブラリ本体はlibの中にバイナリが入ってます。
VCのINCLUDEに入れたければ、boostフォルダごとコピーすれば使えるのはないですか?
VCのLIBにもlibの中身をコピーして。

見当違いでしたら、すみません。
0703デフォルトの名無しさん2007/02/09(金) 19:15:31
>>702
レスありがとうございます。
それでいいんですね、VC6.0でいけてたときは自動でVC以下にフォルダが
できてたような気がしたので、てっきり失敗してるのかと思ってました。
で、プロジェクトにインクルードとライブラリのフォルダを追加したのですが・・・

どうやらboostを認識してるようですがまたもや意味不明のエラーが多量にorz
SP1適用もなんかうまくいってないようなのでもう一度よく調べて出直してきます
0704デフォルトの名無しさん2007/02/09(金) 19:41:07
公式サイトのゲッティング スタートからvc8.0のリンクから飛んだ先にEEのときがある
規制中なので携帯からリンク貼れね
0705デフォルトの名無しさん2007/02/09(金) 19:55:20
>>702
コピーしなくてもいいだろ。
0706デフォルトの名無しさん2007/02/09(金) 20:02:16
ビルドしたboostフォルダは1GB超えるからな
0707デフォルトの名無しさん2007/02/10(土) 21:11:13
C++の標準ライブラリになるまでは様子見だな。
0708デフォルトの名無しさん2007/02/10(土) 22:22:59
Boostがまんま標準化されると思ってる奴がまだいるのか
0709デフォルトの名無しさん2007/02/10(土) 22:45:21
だから様子見なんだろ
0710デフォルトの名無しさん 2007/02/10(土) 23:58:59
>>703
俺は、C直下にboost_1_33_1のフォルダ入れて
VS2005std使ってて
VC++のインクルードディレクトリにC\boost_1_33_1
ライブラリファイルフォルダにC\boost_1_33_1\lib
って設定したら、問題なく使えてる。
0711デフォルトの名無しさん2007/02/11(日) 20:27:53
boostのリビューアー募集してるね
0712デフォルトの名無しさん2007/02/13(火) 13:33:23
Xpressive の人のライブラリか?
何かスゲーな。
0713デフォルトの名無しさん2007/02/18(日) 00:37:48
serializationでshared_ptrをシリアライズしようと思ってるんですけど訳分からんです。

とりあえずただの参照でテストしてみたら
unregistered_classが発生したので調べたとおりに
BOOST_CLASS_EXPORT(Derived);
を入れたら今度はunregistered_castが発生したのでいろいろ調べて
boost::serialization::void_cast_register<Derived, Base>(0, 0);
を入れたらただの参照ならシリアライズできるようになりました。

これを今度はshared_ptrに入れてみようかと思ったら
またもやunregistered_classが発生しました。
どうやらsp_counted_base_implとかいうのが絡んでるようで
いろいろ試してみたのですがなかなかうまくいきません。
boost_132::shared_ptrとかいう中途半端なものもあるみたいですけど
これはもしかしたら仕様策定中ですか?
07147132007/02/19(月) 18:24:41
すいません。抜けてました。
派生クラスをベースクラスのポインタでシリアライズしたいのです。
バージョンは1.33.1です。
0715デフォルトの名無しさん2007/02/21(水) 18:45:54
Accumulatorsの仕様がもう一回変わるとかいってるのですが
もう自分のプログラムにいれちゃったよ
0716デフォルトの名無しさん2007/02/22(木) 10:40:57
TR1、TR2、C++0xとboostの主機能が取り込まれるのを期待しているが、
実際C++0xが2010年位にできたとして、実際主なコンパイラがサポートしだすのは
いつになるんだろう。
GCCは期待できるとして、次期Visual C++で何も動きがないとすると、
結局今後5年くらいはshared_ptrつかうにもboostのお世話になったりして。

1_34いつになるのかなぁ・・・。
0717デフォルトの名無しさん2007/02/22(木) 10:57:48
規格殺すにゃ刃物はいらぬ
MSのサポートがなけりゃいい
0718デフォルトの名無しさん2007/02/22(木) 11:05:36
つか、MSがその頃までC++をサポートしてるかどうか
0719デフォルトの名無しさん2007/02/22(木) 12:26:40
今となっては TR1,TR2 以外のライブラリも増えたんで主機能という風でもないような。
C++0x 後にゃ、今度はその新機能を使いまくりのライブラリが作られるだろうし。
0720デフォルトの名無しさん2007/02/22(木) 14:13:29
>>718
ドライバとか、どうしてもC/C++が必要な領域もあるだろうから、
当分はVisualC++無くならないと思う。たぶん。
0721デフォルトの名無しさん2007/02/22(木) 14:17:11
いずれはドライバも C# の unsafe 使って書いてくれとか言われるのかなw
07227132007/02/23(金) 19:57:51
どうにか自己解決しました。
デバッグのためのコードが邪魔してたみたいです。
スレ汚しすいませんでした。
0723デフォルトの名無しさん2007/02/25(日) 01:32:35
以前スレで紹介されていたBoostのインストーラーを使いセットアップし、regexを使ってソースを書いたところ、Boost側のソースで

boost\regex\v4\regex_raw_buffer.hpp(177) : error C2661: 'operator new' : 3 個の引数を伴うオーバーロードされた関数はありません。
boost\regex\v4\perl_matcher_non_recursive.hpp(99) : error C2059: 構文エラー : '*'

というエラーが出たんですが、どうすれば直るんでしょうか?
コンパイラはVC++2005Expressです。
07247232007/02/26(月) 23:31:23
自己解決。
stdafx.hで
#include <boost/regex.hpp>
すればOKだった。
0725デフォルトの名無しさん2007/02/26(月) 23:58:53
boostって何で流行らないの?糞だから?
0726デフォルトの名無しさん2007/02/27(火) 00:06:08
流行ってると思うけど
0727デフォルトの名無しさん2007/02/27(火) 08:26:44
俺だけ取り残されてるわけじゃないんだ! という
必死の念仏でしょう。
0728デフォルトの名無しさん2007/02/27(火) 14:38:27
常に最新の boost を使いたい場合は、
CVS から定期的に取って来て自動的にビルド、
エラー無ければ直前のバージョンと入れ替え、
というようなシステムを自前で用意しないとダメ?

PHP の PEAR のようにリポジトリから
最新バージョンを持ってきてくれると便利なんだが。
って、スクリプト言語の手軽さと比較するほうが間違いか。
0729デフォルトの名無しさん2007/02/27(火) 21:30:35
Visual Studio用にバイナリで配ってない時点で、流行ってないことは明らかだろ。
0730デフォルトの名無しさん2007/02/27(火) 21:58:05
流行っているといえば流行っている
流行っていないといえば流行っていない
結構微妙な位置づけな気がする

巨大な非標準ライブラリってだけで、使いにくい局面は多いよな
0731デフォルトの名無しさん2007/02/27(火) 22:03:29
>>729
bjamの宣伝をしたいからじゃね?
0732デフォルトの名無しさん2007/02/27(火) 22:05:00
対応してるコンパイラが何十種類もあるのにVC++だけ特別扱いするわけにはいかんだろう
0733デフォルトの名無しさん2007/02/27(火) 22:11:59
デバッグ・リリース、静的・動的リンクの
全ての組み合わせのLIB/DLLを合計すると軽く1GiB超えていた覚えがある。

でも今確かめてみたらDLLとそのインポートライブラリに限れば、
10MiB以下に収まっている(1.33.1のVC++ 7.1でのビルド)。

俺は動的リンク版が無いもの以外静的ライブラリを削除しているのだが、
残った静的ライブラリの合計は、およそ221MiB。
(ただしNTFSの圧縮でディスク上は68.5MiBとなっている)
0734デフォルトの名無しさん2007/02/28(水) 00:19:33
>>732
ユーザが多い順にバイナリくらい提供した方がいいだろ。
0735デフォルトの名無しさん2007/02/28(水) 00:26:46
流行ってるかどうかとはあまり関係ない話だな
0736デフォルトの名無しさん2007/02/28(水) 01:08:04
>734
馬鹿除けになるからバイナリは無い方がいい。bjamぐらい使え。
そもそもバイナリ必要なのは一部だけだし。
0737デフォルトの名無しさん2007/02/28(水) 01:09:49
無いと困るような人とその存在すら知らない人が同じフロアで仕事してる
つうか技術寄りな人が勝手に調べて喜んで使ってる感じ
0738デフォルトの名無しさん2007/02/28(水) 10:24:58
VCユーザなら、こっからinstaller落とせるけど。
http://www.boost-consulting.com/download.html
0739デフォルトの名無しさん2007/03/03(土) 02:39:07
templateマニアな方々が居そうなのでちょっと相談させてください。

template<typename T>
class Hoge { ... };

というHogeテンプレートクラスについて、コンパイル通らなかったけど

template<typename T>
typedef Hoge<T> Hage;

こんなことをやりたい(Hogeのエイリアスなテンプレート型を作りたい)のですが、
boostに同等機能を実装するためのライブラリがありますか?
それとも頼らずともアッサリできたりするんですかね?
0740デフォルトの名無しさん2007/03/03(土) 02:52:57
まあ、日本語の情報が少ないってことは流行ってないってことだろうな。
0741デフォルトの名無しさん2007/03/03(土) 03:11:08
>>739
typedef template ってやつだな。その機能は標準に採用されていない。
クラステンプレート内の typedef を使えば同等のことが出来る。
template<typename T> class HageOf { typedef Hoge<T> type; };
として使うときは HageOf<T>::type とする。

こういうのを型を受け取って型を返す関数と見てテンプレートメタ関数って言う。
テンプレートメタ関数を駆使してプログラムするためのライブラリが boost::mpl 。
0742デフォルトの名無しさん2007/03/03(土) 03:26:58
わざわざテンプレートなんか使って時間かけてチンタラ標準ライブラリ作るくらいなら、言語仕様拡張しろよ。アホか。
0743デフォルトの名無しさん2007/03/03(土) 03:34:08
言語仕様の改変後にコンパイラが追従するまでかなり時間がかかる
その間、コンパイラによって仕様への準拠度はまちまちになるから、
移植性の高いコードを記述することが著しく困難になる
0744デフォルトの名無しさん2007/03/03(土) 04:41:04
>>740
確かに資料を日本語でしか読めない人にとってはそういうことにしたいかも知れんね。
0745デフォルトの名無しさん2007/03/03(土) 09:19:12
日本語すら読めない人がなんか突っ込んでる
0746デフォルトの名無しさん2007/03/03(土) 09:33:21
>>741
やはりそうするしかないですか…
元々、偉く長いクラス名を短くしたかったので探していたので。

boost::mplは使ったこと無いのでこれ機会にちょっと見てみます。
ありがとうございました。
0747デフォルトの名無しさん2007/03/03(土) 11:13:36
結論

boostは流行っていない。
0748デフォルトの名無しさん2007/03/03(土) 11:34:37
結論

OpenGLオワタ\(^o^)/

と大して変わらんレスだな。
0749デフォルトの名無しさん2007/03/03(土) 11:38:37
結論: D言語マンセー
0750デフォルトの名無しさん2007/03/03(土) 11:56:34
C#とC++/CLIは統合すればいいのにな。
ほとんど同じなのに2本立てにする意味が分からん。
0751デフォルトの名無しさん2007/03/03(土) 12:43:44
流行ってる流行ってないという話をするならC++自体もはや(ry
0752デフォルトの名無しさん2007/03/03(土) 13:23:32
STLとboostは互いに補完にしあう、併用するものでしょうか?
それとも、boostでSTLを置き替え可能なものでしょうか?
例えば、今からtemplateの学習をするとして、最初から
boostから始めてもいいものでしょうか?
それとも、STLをまずやっておくべきでしょうか?
0753デフォルトの名無しさん2007/03/03(土) 13:24:47
STLをまずやっておくべき
0754デフォルトの名無しさん2007/03/03(土) 13:28:46
>>752
>STLとboostは互いに補完にしあう、併用するものでしょうか?
基本的に yes

>それとも、boostでSTLを置き替え可能なものでしょうか?
一部分については yes
0755デフォルトの名無しさん2007/03/03(土) 13:30:12
STLも使ったことない奴にboostは到底無理
0756デフォルトの名無しさん2007/03/03(土) 13:48:35
>>753-755 ご教示ありがとうございました。
javaとかだと機能的に代替可能で、方法が異なるライブラリが多くあるので、
STLとboostの関係についても知りたく質問させていただきました。
0757デフォルトの名無しさん2007/03/03(土) 14:27:19
でもstd::functionalは無視していい
0758デフォルトの名無しさん2007/03/03(土) 15:45:45
>>755
lexical_castとか単独で使えるものだってあるさ
0759デフォルトの名無しさん2007/03/03(土) 15:59:03
shared_ptrも便利だよね
0760デフォルトの名無しさん2007/03/03(土) 16:00:39
shared_ptrだけ使いたい、とかってときのために、コンパクトバージョンを出してほしい。
今のboostは巨大になりすぎたような気がする。
0761デフォルトの名無しさん2007/03/03(土) 16:10:14
地味だけどintrusive_ptrにはお世話になってます
0762デフォルトの名無しさん2007/03/03(土) 16:42:22
shared_ptrとかは、例外安全なコードを書く上で重要すぎる上に
他で簡単に代替が効かんからなぁ。
0763デフォルトの名無しさん2007/03/03(土) 16:47:42
>>760
bcp 使え。
って、 shared_ptr のためだけでも結構な量がついてくるな。
0764デフォルトの名無しさん2007/03/03(土) 16:51:21
ヘッダだけで使えるバージョンとかあると気楽に使えるんだけどな
0765デフォルトの名無しさん2007/03/03(土) 17:07:08
shared_ptrはコンパイルする必要ないだろ。
0766デフォルトの名無しさん2007/03/03(土) 17:57:27
filesystemとregexとあと何だっけ

以外はヘッダだけで使えなかったっけ
0767デフォルトの名無しさん2007/03/03(土) 18:20:36
手元にDLLとかLIBとかがあるやつを挙げてみた。
date_time
filesystem
iostreams
prg_exec_monitor
program_options
regex
(w)serialization
signals
thread
unit_test_framework
wave
0768デフォルトの名無しさん2007/03/03(土) 18:38:35
ヘッダだけつっても全部で3000ファイル以上、サイズ20MB以上とかだからな
シャレにならん
0769デフォルトの名無しさん2007/03/03(土) 18:47:34
こんな風にすればshared_ptrに必要な依存関係を洗い出せるが
マンドクセー
つかいちいちこんなに取り込んでりゃそりゃコンパイル遅くなるわ

$ cat t.cpp
#include <boost/shared_ptr.hpp>

$ cc -E t.cpp |grep ^# | grep hpp | awk '{print $3}' | sort -u
"/usr/include/boost/assert.hpp"
"/usr/include/boost/checked_delete.hpp"
"/usr/include/boost/config.hpp"
"/usr/include/boost/config/compiler/gcc.hpp"
"/usr/include/boost/config/platform/cygwin.hpp"
"/usr/include/boost/config/posix_features.hpp"
"/usr/include/boost/config/select_compiler_config.hpp"
"/usr/include/boost/config/select_platform_config.hpp"
"/usr/include/boost/config/select_stdlib_config.hpp"
"/usr/include/boost/config/stdlib/libstdcpp3.hpp"
"/usr/include/boost/config/suffix.hpp"
"/usr/include/boost/config/user.hpp"
"/usr/include/boost/detail/bad_weak_ptr.hpp"
"/usr/include/boost/detail/shared_count.hpp"
"/usr/include/boost/detail/sp_counted_base.hpp"
"/usr/include/boost/detail/sp_counted_base_gcc_x86.hpp"
"/usr/include/boost/detail/sp_counted_impl.hpp"
"/usr/include/boost/detail/workaround.hpp"
"/usr/include/boost/shared_ptr.hpp"
"/usr/include/boost/throw_exception.hpp"
0770デフォルトの名無しさん2007/03/04(日) 10:39:41
Boostにshared_ptrよりコンパイルの速いライブラリってあるのか?
0771デフォルトの名無しさん2007/03/04(日) 11:26:52
boostって単なるライブラリの寄せ集めで、統一性や一貫性がないよね。
こんなの流行らないし、標準化なんてされるわけないわな。

もっときっちり考えて作れよ。
0772デフォルトの名無しさん2007/03/04(日) 11:35:32
どうして適当なこと言う奴が後を絶たないのか
0773デフォルトの名無しさん2007/03/04(日) 11:35:38
>>771
>boostって単なるライブラリの寄せ集めで、統一性や一貫性がないよね。
kwsk
0774デフォルトの名無しさん2007/03/04(日) 12:07:58
771でないけど、toknizerのコンストラクタやassignは、
ContainerではなくRangeを受け取るようにしろよとは思う。
0775デフォルトの名無しさん2007/03/04(日) 12:12:20
Boost.Pythonってなんだよ。何故かいきなりPython。しかもPerlやRubyは無くてPythonだけ。
行き当たりばったり。統一性や一貫性がないとはこういうことだ。
0776デフォルトの名無しさん2007/03/04(日) 12:23:26
Rubyなんて日本だけでちやほやされてる糞言語だろ。
0777デフォルトの名無しさん2007/03/04(日) 12:28:24
まあ、spiritが標準ライブラリに入るなんて考えにくい。
0778デフォルトの名無しさん2007/03/04(日) 12:32:48
Rubyは例に出しただけだ。
何故か突然Pythonに対応して、かつPythonにしか対応していないところに
統一性や一貫性がないと言っている。
0779デフォルトの名無しさん2007/03/04(日) 12:38:00
いつからBoostは、そんな何もかも面倒見るライブラリになったんだか。
そういう目的なら、もっとふさわしいものがあると思うけど。

取捨選択して使えばいいじゃない。
0780デフォルトの名無しさん2007/03/04(日) 12:46:10
利用者が取捨選択するためにも、
コアな機能とその他の雑多な機能を明確にわかりやすく分類してほしいものだね。

いまのBoostは統一感のないごった煮だ。
0781デフォルトの名無しさん2007/03/04(日) 12:50:24
Boost.PythonのゴールはBoost.LangBindingだよ。
0782デフォルトの名無しさん2007/03/04(日) 12:53:22
コアな機能も何も、どれも単品での使用を意図しているものばかりに見えるけど・・
貴方の言葉を借りれば、「単なるライブラリの寄せ集め」ですし。
0783デフォルトの名無しさん2007/03/04(日) 12:54:52
>>781
>Boost.PythonのゴールはBoost.LangBindingだよ。
それは後付けな印象が強いんですがどうなんですかね?
Boost.LangBinding の prototype 的な役割を
Boost.Python が担っている,というほうが適切な気が
0784デフォルトの名無しさん2007/03/04(日) 13:12:18
そもそもboost自体が巨大なsandboxみたいなもんだろ
0785デフォルトの名無しさん2007/03/04(日) 19:05:56
元々が「こんなの標準に欲しいよね」だし
0786デフォルトの名無しさん2007/03/04(日) 19:16:35
グラフィックスもオーディオもウィンドウシステムも端末制御も
ネットワークも暗号化も数値計算もDBアクセスもXML/HTML等のパーシングも
扱っていない(今後グラフィックスやネットワーク機能は追加されるようだが)

現実の応用において欲しくなるような機能が恐ろしく乏しいというのに、
既にヘッダの数が1000のオーダーというのはいっそ笑えるな
0787デフォルトの名無しさん2007/03/04(日) 19:19:42
だが、そこがいい
0788デフォルトの名無しさん2007/03/04(日) 19:26:13
boost は一般のライブラリより枯れていそうな点(関係者が高度なC++使い)と
ライセンスを煩く考えずに済む点が良いと思うけどなぁ。
0789デフォルトの名無しさん2007/03/04(日) 19:27:30
>>788
boost::regexのバグは直ったのかな?
0790デフォルトの名無しさん2007/03/04(日) 19:37:25
>>789
的外れなツッコミ乙
0791デフォルトの名無しさん2007/03/04(日) 21:04:20
boostは言語の補完/拡張的意味合いが強いからなぁ。言語として実装すべきだろと突っ込みたくなるものも幾つもあるけど。
0792デフォルトの名無しさん2007/03/04(日) 21:12:54
ラムダの事かー
0793デフォルトの名無しさん2007/03/04(日) 22:47:39
boostはウインドウシステムやミドルウェアから独立しているからこそ価値があるわけ。
WindowsならATLを使い、UNIXならgtkを使うという使い分けができるわけで、
依存関係とかcygwinによるエミュレーションとかの厄介事を避けることができるわけ。
0794デフォルトの名無しさん2007/03/04(日) 22:59:15
>>793
その理屈は意味不明だな。
別にBoostはお仕着せフレームワークじゃないんだから、
GUIの機能を持ってても、欲しくないのなら使わなければいいだけだろ。

現状でもBoost::threadやBoost::filesystemなんて、あんたが言うような
そのものズバリのエミュレーション層だし
Boost::pythonなんて意味不明だし
0795デフォルトの名無しさん2007/03/04(日) 23:16:59
boost に統一性や一貫性が無いのは知れたことだけど、具体的に何か困ることあるか?
なんでケチつけてるのか意味が分からない。
0796デフォルトの名無しさん2007/03/05(月) 00:19:37
boostが単なるライブラリ群であり続けるなら、単にヘンテコなライブラリの寄せ集めでもいいが、
C++の標準になるのであれば、論理的に必要十分なライブラリ集に仕上げてもらいたいものだ。
0797デフォルトの名無しさん2007/03/05(月) 00:28:21
標準に移行する際にブラッシュアップされるだろ
そのまんま標準になるわけなかろう
0798デフォルトの名無しさん2007/03/05(月) 01:16:48
>>794

MFCみたいにGUIと密着してると、
サービスを作る時に、どのクラスがメッセージポンプに関連するかとか
いちいち気にしないといけないだろ。
0799デフォルトの名無しさん2007/03/05(月) 01:19:38
ブラッシュアップの過程で現在のboostとの互換性はなくなるわけだ。
0800デフォルトの名無しさん2007/03/05(月) 01:31:44
>>798
それはMFCのツクリがタコであるというだけ。
大体、どのクラスがWindow System絡みかなんて、namespaceや
ディレクトリ階層みりゃすぐ分かるだろ。
0801デフォルトの名無しさん2007/03/05(月) 01:49:40
>>790
何が的外れなの?
正規表現のバックリファレレンスなんてありふれたものに
バグを作りこむなんて随分枯れてるライブラリだなと感心したものだけれど。
0802デフォルトの名無しさん2007/03/05(月) 02:04:12
長年の豊富で幅広い利用が無ければプログラムなんて枯れないよ
Boostはまだまだ「枯れる」段階じゃないっしょ
0803デフォルトの名無しさん2007/03/05(月) 02:19:07
パターン中のバックリファレンスはハッキリ言って蛇足。
多機能で延々とサポートが続くライブラリよりも
シンプルですぐ枯れて安定するのが欲しい。
0804デフォルトの名無しさん2007/03/05(月) 05:22:34
>>801
それならVCでもGCCでもSTLでもバグが皆無なのかと聞きたいもんだが。
バグが存在しないソフトウェアなど存在しない。\
君のレスは重箱の隅をつつくようなもんだ。
0805デフォルトの名無しさん2007/03/05(月) 10:17:43
Boost.Python って Formal Review の枠組みが整う前に入ってなかったっけ?
今だと特定の用途向け杉とかであっさり reject されそう
0806デフォルトの名無しさん2007/03/05(月) 13:03:54
最近Boostで一番良く使うのがboost.pythonだったりする俺w
0807デフォルトの名無しさん2007/03/05(月) 13:26:04
標準に入ったらファイル名やネームスペースはどうなるのかね。
全部標準のincludeに入って.hppはずしてstd::になったらさぞや壮観だろうw
0808デフォルトの名無しさん2007/03/05(月) 16:17:13
>>773
>>771
ublas.matrix
multi_array
を組合せてテンソル処理ができないかと思ったら
全然互換性がなくて死んだ
0809デフォルトの名無しさん2007/03/05(月) 16:20:56
ある程度抽象化された処理が必要ならc++を拡張するんじゃなくて
lispあたりからcを呼ぶようにしたほうがよかったと思う
今日このごろ
0810デフォルトの名無しさん2007/03/05(月) 16:39:11
>>807
shard_ptrやfunctionなどはtr1に入っているが正にそんな感じ
0811デフォルトの名無しさん2007/03/05(月) 18:33:00
>>808
標準ライブラリでさえstd::valarrayはひでえもんだぞ
それに比べればマシ
0812デフォルトの名無しさん2007/03/06(火) 04:48:05
bjam -sTOOLS=vc-8_0 ...
ってやってるのに、
warning: Configuring default toolset "gcc".
って出るのは何故?
cvsで最新のboost落としてビルドしてるんだけど、
オプションの与え方変わったの?
0813デフォルトの名無しさん2007/03/06(火) 14:56:58
regex はとっとと xpressive に吸収されろと思うし、
bind は、lamdba.bind に吸収されろと思う。

lambda と phoenix はどっちベースでもいいから統合されて欲しい。
できれば、lamdba が母体となって、spirit は lamdba で実装。
asio と sandbox にある network は一本化してほしい。
0814デフォルトの名無しさん2007/03/06(火) 15:30:42
boostは早めに整理・統合しろよ。

糞ライブラリがゴチャゴチャしててウザい。
0815デフォルトの名無しさん2007/03/06(火) 15:33:28
>>813
tuple も fusion に(ry
0816デフォルトの名無しさん2007/03/07(水) 08:23:16
http://www.franz.com/support/tech_corner/swig042804.lhtml
swigとboost.python経由でlispとかとインターフェイス作るのは
どっちがいいんだろうか
0817デフォルトの名無しさん2007/03/08(木) 08:57:24
1.34 クルー?
0818デフォルトの名無しさん2007/03/09(金) 22:38:56
boost.graph使ってるやついる?
0819デフォルトの名無しさん2007/03/09(金) 22:53:46
>>818
ノシ
0820デフォルトの名無しさん2007/03/09(金) 23:08:41
使い方わからんからパス
0821デフォルトの名無しさん2007/03/09(金) 23:09:47
boostは節操のない糞ライブラリ集

STL>>>>>>>>>>>うんこ>>>boost
0822デフォルトの名無しさん2007/03/09(金) 23:31:48
>>819
マットウに使えてるかどうかしりたいんだが
いろんなtraverse方法でvisitって本当にできてる?
あと100万ノードとかぶら下げてもちゃんと動く?
0823デフォルトの名無しさん2007/03/09(金) 23:42:44
>>822
>いろんなtraverse方法でvisitって本当にできてる?
少なくとも DFS, WFS はどっちも問題ないと思いますよ?特殊な traverse がしたいとか?

>あと100万ノードとかぶら下げてもちゃんと動く?
場合によるとしか.単純に node がそのオーダーってだけなら
最近のマシンのメモリ的には問題ないんじゃないですかね?
実際には O(E) や, node や edge にどんなプロパティくっつけているかとか,
回そうとしているアルゴリズムの複雑性如何なのでなんとも.
08248232007/03/09(金) 23:45:12
>少なくとも DFS, WFS は
WFS ってなんでこんな間違いを……正しくは BFS です
0825デフォルトの名無しさん2007/03/10(土) 00:57:44
レスありがとう
妙なアノマリがないかなーと思って聞いてみました
やっぱ試してみるしかないなあ
0826デフォルトの名無しさん2007/03/13(火) 10:21:44
lambda の varっていうのはメンバ変数に適用していいのでしょうか?
以下の例では成功してます. ただbindでメンバ変数に触るのにはthisが必要だったのでこれじゃまずいのかなーと思いました
struct AAA {
 AAA() {
  cnt_ = 0;
  var_type<unsigned>::type cnt = var(cnt_);
  f_ = (++cnt);
 }

 ~AAA() {
  cout << "cnt_: " << cnt_ << endl;
 }
 
 void f() {
  f_();
 }

private:
 function<void ()> f_;
 unsigned cnt_;
};
0827デフォルトの名無しさん2007/03/13(火) 11:14:37
>>826
var は変数への参照を受け取るからメンバ変数でもそれ以外の変数でも区別は無いよ。
bind で this が要るっていうほうがよくわからん。
08288262007/03/13(火) 16:08:01
>>827
ありがとうございます
0829デフォルトの名無しさん2007/03/16(金) 09:40:34
1.34楽しみだね
0830デフォルトの名無しさん2007/03/16(金) 13:23:44
progress_displayなんて糞なものを作った奴の顔が見たい
0831デフォルトの名無しさん2007/03/16(金) 14:43:17
>>830
たしかにアレはいまいちだが、別に顔は見たくないな
0832デフォルトの名無しさん2007/03/16(金) 14:45:25
http://boost.sourceforge.net/photos/beman_dawes.jpg
0833デフォルトの名無しさん2007/03/16(金) 14:47:10
糞じじいw
0834デフォルトの名無しさん2007/03/16(金) 19:13:28
indirect_iteratorの実装の理屈が理解できません。
boostの使えないところでindirect_iterator(make_indirect_iterator)と同程度のことができるものが要求されているのですが、
なにか手がかりやシンプルな実装知りませんか?
08358342007/03/16(金) 20:36:56
自己レス
cppllの過去ログで見つかりました。
0836デフォルトの名無しさん2007/03/16(金) 22:15:30
progress_displayなんて低レベル過ぎて
大学の課題にすらならない予感
あんなものが標準化されたらC++捨てるわ
0837デフォルトの名無しさん2007/03/17(土) 09:52:13
あれはサンプルであるべきものだよなwww言語に組み込むなとww
0838デフォルトの名無しさん2007/03/17(土) 11:11:27
各アプリケーションで同じようなコードを何度も書かなくていいという意味じゃ助かりマッスル
0839デフォルトの名無しさん2007/03/17(土) 16:46:43
テストプログラムとかで使うには便利ではある
0840デフォルトの名無しさん2007/03/17(土) 16:59:26
こんなもん何のテストに使えるってんだよ・・・
0841デフォルトの名無しさん2007/03/18(日) 15:53:56
1.34まだか?
半年くらい待ってるが・・・
CVSで引っ張ってきたけど、ボーランドでエラー出てる ( ;ω;)
0842デフォルトの名無しさん2007/03/18(日) 16:09:37
こんな糞ライブラリ集誰が使うんだよw
0843デフォルトの名無しさん2007/03/18(日) 16:38:44
ホントゴミだらけだよなこのライブラリ。
雑多なのは構わないがゴミを詰め込むのはやめてくれ。
0844デフォルトの名無しさん2007/03/18(日) 17:05:52
何がどうごみなのか指摘しないのはただのバカ
0845デフォルトの名無しさん2007/03/18(日) 17:45:21
>>843はまぁわかる。
>>842はただの興奮気味の中学生。
0846デフォルトの名無しさん2007/03/18(日) 17:48:26
自分が使えないものはごみなんでしょ、きっと。
0847デフォルトの名無しさん2007/03/18(日) 18:03:00
豚に真珠
0848デフォルトの名無しさん2007/03/18(日) 18:35:49
>>847
お前馬鹿だろ? このケースは猫に小判だっつーの!
0849デフォルトの名無しさん2007/03/18(日) 18:40:33
ゴミ入れた張本人たち乙
0850デフォルトの名無しさん2007/03/18(日) 18:49:09
>>848
何が違うの?
辞書とか見ても、別の言い換えとして互いに出てくんだが。
0851デフォルトの名無しさん2007/03/18(日) 19:22:44
マジレスサンデー
0852デフォルトの名無しさん2007/03/18(日) 19:32:12
猿も木から落ちる
0853デフォルトの名無しさん2007/03/18(日) 19:33:35
死して屍拾うもの無し
0854デフォルトの名無しさん2007/03/18(日) 19:57:01
違和感を感じる
0855デフォルトの名無しさん2007/03/18(日) 20:03:24
>>850
本当に馬鹿だったか。
0856デフォルトの名無しさん2007/03/18(日) 21:56:51
>>855
ププッ
おまえもわかんないんだろ。
0857デフォルトの名無しさん2007/03/18(日) 22:08:19
最初は自信たっぷりだったけど
思ったように味方がつかなくて不安になってきたのでは。

流れが変わるまで、このまま「何か知ってるフリ」を通すのでしょう :-)
0858デフォルトの名無しさん2007/03/18(日) 22:14:17
>>856=857
小学生からやり直せ。
0859デフォルトの名無しさん2007/03/18(日) 22:21:54
つーか、ム板でなんでこんな低レベルなことしてんだよ。
0860デフォルトの名無しさん2007/03/18(日) 22:40:29
>>859
そりゃ馬鹿がいるからだろ。
0861デフォルトの名無しさん2007/03/18(日) 22:49:22
馬鹿の言うことをスルーできないようじゃ、同レベルと思われても仕方ない。
0862デフォルトの名無しさん2007/03/18(日) 22:54:37
実際はYOU2な日曜の夜を、下らない冗談言い合って楽しんでるだけなんだけどな
とりあえずマ板行こうぜ
0863デフォルトの名無しさん2007/03/18(日) 22:55:09
>>858
結局わかんないのねwwwww
0864デフォルトの名無しさん2007/03/18(日) 22:57:58
>>863
俺が悪かったよ、マジですまん。前言撤回するよ。
幼稚園からやり直せ。
0865デフォルトの名無しさん2007/03/18(日) 23:00:42
だから反応するなって。
0866デフォルトの名無しさん2007/03/18(日) 23:24:33
>>864
ププッ
怒られてやんの
0867デフォルトの名無しさん2007/03/18(日) 23:36:34
謝っちゃえば気が楽になるのにね。
虚言がばれるのって、匿名でも嫌なもんなのかな?
0868デフォルトの名無しさん2007/03/18(日) 23:50:26
こんなの見つけた。
っttp://www.asahi-net.or.jp/~bj7o-wkt/Vmessage/vm060723.html
最初っからから根拠を見せれば、ここまで煽られることもなかったのでは?

ということで、そろそろこの話題は終わりにしませんか?
0869デフォルトの名無しさん2007/03/18(日) 23:52:01
ごめんなさい
0870デフォルトの名無しさん2007/03/18(日) 23:54:36
>>868
864は知らなかったんだから、根拠を示せるわけないじゃんwww
0871デフォルトの名無しさん2007/03/19(月) 01:04:47
>>870
で、結局お前は意味を理解できたのか?
0872デフォルトの名無しさん2007/03/19(月) 01:38:06
いいかげん相手にするのやめなって。
861氏も言ってるけど、自分の品位を落とすだけだよ。
0873デフォルトの名無しさん2007/03/19(月) 03:30:21
誰かが助けてくれるまで待ってよかったなw
0874デフォルトの名無しさん2007/03/19(月) 03:39:49
>>873
で、結局お前は意味を理解できたのか?
0875デフォルトの名無しさん2007/03/19(月) 04:07:16
謝っちゃえば気が楽になるのにね。
虚言がばれるのって、匿名でも嫌なもんなのかな?
0876デフォルトの名無しさん2007/03/19(月) 05:59:38
>>875
で、結局お前は意味を理解できたのか?
0877デフォルトの名無しさん2007/03/19(月) 06:41:42
つーか、ム板でなんでこんな低レベルなことしてんだよ。
0878デフォルトの名無しさん2007/03/19(月) 07:04:07
>>877
そりゃ馬鹿がいるからだろ。
0879デフォルトの名無しさん2007/03/19(月) 07:22:29
馬鹿の言うことをスルーできないようじゃ、同レベルと思われても仕方ない。
0880デフォルトの名無しさん2007/03/19(月) 08:51:46
この流れどこから始まってるの?
0881デフォルトの名無しさん2007/03/19(月) 09:25:44
エントリーポイントから始まっています
0882デフォルトの名無しさん2007/03/19(月) 09:33:21
1.34まだかいな
0883デフォルトの名無しさん2007/03/19(月) 09:44:18
こんな糞ライブラリ集誰が使うんだよw
0884デフォルトの名無しさん2007/03/19(月) 09:50:56
>>883
半分以上が趣味だろうね、使うのは危険!
小さな趣味自作ソフトでboostいれたけど、外すのがめんどい
大企業が導入しないとか、いまだにVC++6使う理由もわかる
0885デフォルトの名無しさん2007/03/19(月) 10:02:13
>>884
> いまだにVC++6使う
いや、それは全然別問題だと思うぞw

今やサポートされておらず、最新のPlatformSDKにも追従せず、
C++標準にも準拠していないコンパイラを
わざわざ「大企業が」使うとすれば、VC++6で開発されたレガシーな
プログラムのメンテのためだけだろう。
0886デフォルトの名無しさん2007/03/19(月) 10:22:34
WDK使わずにmsvcrt.dllにリンクさせたい場合もVC++6.0
0887デフォルトの名無しさん2007/03/19(月) 10:39:09
少なくともbindとshared_ptrは必須だろ。
幸いどっちもtr1にあるからゆくゆくは標準入りするだろうけど。
0888デフォルトの名無しさん2007/03/19(月) 10:44:29
むしろそれ系統以外に使えるのが(ry
0889デフォルトの名無しさん2007/03/19(月) 10:45:11
boostを業務で使ってるとこってどこ?
転職考えてるんだが、Webとか組み込みでは無いな
WindowsはC#か? てことはUNIXのデータベース系?
0890デフォルトの名無しさん2007/03/19(月) 10:45:48
標準入り必至だと思われるものと
そうでないものとの差が激しいんだよね…。
0891デフォルトの名無しさん2007/03/19(月) 10:58:32
・本来の流れ
あったら便利そうなものを提案
→議論をして採用不採用を決定
→コード化→最適化→提出
→製作者「便利でしょう!しかも早いし安全なんです!」

・今の流れ
とりあえずテキトーに何かをコード化
→最適化処理に躍起になる→提出
→製作者「とにかく早いニダ。需要なんて知らないニダ。
     いいから標準入りさせろニダ。有名になりたいニダ」
0892デフォルトの名無しさん2007/03/19(月) 11:00:52
>>890
そこがボーストのいいところ ( ・`ω・´)ノ
0893デフォルトの名無しさん2007/03/19(月) 11:08:42
>>889
つーかWebで今現在わざわざC++使ってるトコなんて、あんのか。
ちょっと驚き。
ISAPIフィルタかな?ASAPIならC++どころかCだろし。

「UNIXのデータベース系」の意味も不明。
0894デフォルトの名無しさん2007/03/19(月) 11:17:47
>>893
GoogleとかC++使ってるし、C++用のライブラリ公開してたりもするが。
0895デフォルトの名無しさん2007/03/19(月) 11:23:23
>>891
毎度公開レビューされてるの知らんのか?
0896デフォルトの名無しさん2007/03/19(月) 11:28:47
>>894
googleぐらいになるとバックエンドで相当複雑で高度なことをやってるからな。
でも、それはレアケース。

Webベースのシステムの大半(特に日本のシステム屋が作ってるような奴)は
単なるCRUDアプリ、もしくはそれに毛の生えたような奴だべや。
そのような場所ではもはやC++は必要ないし、使われない。
0897デフォルトの名無しさん2007/03/19(月) 11:34:58
>>895
うまく動作するか否かを見るだけのレビューだろ
0898デフォルトの名無しさん2007/03/19(月) 11:39:25
>>889
「業務」という単語に対する認識が極めて狭い人ですね。
ある種の偏見と言えるでしょう。
0899デフォルトの名無しさん2007/03/19(月) 12:13:41
>>897
ちがうよ。
トップページの news として最近 rejeced になったライブラリが挙がってるから見てみるといい。
0900デフォルトの名無しさん2007/03/19(月) 15:32:50
で、1.34はいつ出るの?
検索してもみつからねぇ
0901デフォルトの名無しさん2007/03/19(月) 17:45:48
>>897
何かを揶揄したいがために捏造するのは痛いですよ。
高校生くらいですか?
0902デフォルトの名無しさん2007/03/19(月) 20:00:42
fedora cora 6の自動アップデートには
いつ反映されますか?
0903デフォルトの名無しさん2007/03/19(月) 20:03:11
>>899のような対応をするか
>>901のような態度を取るかで
大人かガキかが一瞬でわかるな。
0904デフォルトの名無しさん2007/03/19(月) 20:19:21
____              progress_
|← reject|  boostの中の人  display   ユーザー
. ̄.|| ̄ ̄        ┗(^o^ )┳(^o^ )┳(^o^ )┛≡=-
  ||            ┏┗  ┗┗  ┏┗ ≡=-
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0905デフォルトの名無しさん2007/03/19(月) 20:24:37
>>899
×ちがうよ。
○違うよ、全然違うよ。
0906デフォルトの名無しさん2007/03/19(月) 20:32:56
progress_displayの熱烈なファンがいるな
0907デフォルトの名無しさん2007/03/19(月) 20:42:17
なんでここクソスレ化してるんだよ
0908デフォルトの名無しさん2007/03/19(月) 20:52:42
>>907
そりゃお前がいるからだろ。
0909デフォルトの名無しさん2007/03/19(月) 20:53:37
boostが糞ライブラリ集だからだろw
0910デフォルトの名無しさん2007/03/19(月) 21:12:18
>>842もとうとうネタが尽きたか。
0911デフォルトの名無しさん2007/03/19(月) 21:18:01
Boostのライブラリで要るものと要らないものを5段階くらいにレベル分けしようぜ。

Level 5(必要)
  :
Level 1(不要)
0912デフォルトの名無しさん2007/03/19(月) 21:18:14
悪い頭ではboostを腐すのは無理ってことですよ。
0913デフォルトの名無しさん2007/03/19(月) 23:59:27
いいかげんBoostの話しようぜ。
ところでBigIntegerどうなったの?
Google Summer Of Code 2007に挙がっているみたいだけど、そんなに完成遠いの?
0914デフォルトの名無しさん2007/03/20(火) 07:38:41
お前らアンケーとだ、年齢いくつ?
�@1-20
�A20-30
�B30-40
�C40-60
�D60-∞

�@
0915デフォルトの名無しさん2007/03/20(火) 08:33:46
You are Anne K Toda. How old are you?
0916デフォルトの名無しさん2007/03/20(火) 11:16:24
�@
0917デフォルトの名無しさん2007/03/20(火) 13:27:08
�A
0918デフォルトの名無しさん2007/03/20(火) 13:36:58
�C
0919デフォルトの名無しさん2007/03/20(火) 13:40:09
�G
0920デフォルトの名無しさん2007/03/20(火) 13:49:35
>>914
0歳が書いてないところを見ると、数え年で答えろということか?
0921デフォルトの名無しさん2007/03/20(火) 14:13:15
そもそも二十歳はどっちなんだぜ。
0922デフォルトの名無しさん2007/03/20(火) 15:22:00
>>921
実はソレが高度な心理テストだったんだよ!
0923デフォルトの名無しさん2007/03/20(火) 15:24:13
>>904
seikihyougen
もおねがいします
0924デフォルトの名無しさん2007/03/20(火) 15:25:04
>>921
それこそ、この巧妙なトリックをあばくカギだったんだよ
0925デフォルトの名無しさん2007/03/20(火) 15:46:39
review request Boost.Seiki_hyougen

collection of seiki_hyougen tag;

namespace seiki_hyougen
{
namespace tag
{
struct tinko;
struct manko;

typedef tinko penis;
typedef manko awabi;
....
}
}
0926デフォルトの名無しさん2007/03/23(金) 05:01:16
a<>b<><>c<>d
という文字列があったときに、
「a」「b」「」「c」「d」
というトークンに分解したい(<>で分けたい)のですが、
boost::tokenizerで自分でseparatorを書かずに出来ますか?
char_separator sep("<>")
だと、"<"と">"の二つで分けてしまうので出来ません。
0927デフォルトの名無しさん2007/03/23(金) 10:19:07
ttp://boost.cppll.jp/HEAD/libs/tokenizer/char_separator.htm
dekimasu
0928デフォルトの名無しさん2007/03/24(土) 10:24:58
>>927のやつは、"<>"で分けるんじゃなくて、
"<"でも">"でも、それらをいくつも並べたもの("<>"含む)でも分ける方法なんだけど。
>>926が何も言わないところを見ると、どっかよそで解決したのかなあ?
0929デフォルトの名無しさん2007/03/24(土) 12:51:09
sregex_token_iterator使えばいいじゃん
0930デフォルトの名無しさん2007/03/25(日) 16:40:55
const std::wstring hoge(L"あいうえお");

boost:algorithm::starts_with(hoge, L"あい");
->コンパイル出来るけど、結果が正しくない(falseが返る)
boost::algorithm::starts_with(hoge, std::wstring(L"あい"));
->正しく動く

上のようになってしまうのですが、wstringを第一引数に渡す場合、第二引数
はわざわざwstringを生成して渡してやるほかないのですか?
0931デフォルトの名無しさん2007/03/25(日) 19:56:40
環境ぐらい書け馬鹿
0932デフォルトの名無しさん2007/03/25(日) 22:35:47
>>931
死ね
0933デフォルトの名無しさん2007/03/25(日) 23:00:37
Boost.Act 0.4b
https://boost-consulting.com:8443/trac/soc/export/1786/boost/soc/2006/concurrency/tags/postfinal_untested/doc/html/index.html

これ見てみろよ.STL algorithm の parallel/serial 実行をテンプレート使って切り替えるんだと.
こいつがリリースしたらヤバいぞ…
0934デフォルトの名無しさん2007/03/25(日) 23:08:02
俺アホ三行
0935デフォルトの名無しさん2007/03/25(日) 23:09:49
ム板でカイジのAA使いたくなるほどざわっと感じた。
OpenMPでSTLをお手軽並列化・・・これはヤバイかもわからんね。
0936デフォルトの名無しさん2007/03/25(日) 23:14:48
嬉しいのか、嬉しくないのか
0937デフォルトの名無しさん2007/03/26(月) 00:02:07
感動したから Basic Usage からコピペ

#include <boost/act/algorithm.hpp>
#include <iostream>
struct output_for_var
 : boost::act::parallel_safe
{
 void operator ()( int index ) const
 {
  std::cout << index;
 }
};

int main()
{
 using boost::act::basic_for;
 using boost::act::for_var;
 
 basic_for( for_var = 0, for_var < 10, ++for_var )
 [
  output_for_var()
 ];
}
0938デフォルトの名無しさん2007/03/26(月) 00:05:48
Boost.Lambda の for_ みたいだな

ちらっとソース見てみたんだがコンパイルエラーが出たらヒドそうだぜwww
0939デフォルトの名無しさん2007/03/26(月) 00:14:39
>>933,935,937,938

この中に
http://d.hatena.ne.jp/mrkn/20070325/boost_act
こいつまざってるだろ?
タイミング良すぎてワラたぞw
0940デフォルトの名無しさん2007/03/26(月) 08:46:32
>>939
ハァ?ブログのアクセス・アップの常套手段だろ?
0941デフォルトの名無しさん2007/03/26(月) 08:50:45
で、>>939はブログ管理人の思う壺というわけだな
0942デフォルトの名無しさん2007/03/26(月) 09:55:20
いや、939にて本人降臨なんだろ
0943デフォルトの名無しさん2007/03/26(月) 09:57:37
何にせよ管理人乙
09449332007/03/26(月) 13:21:40
>>939 なんで俺のブログ見てんだ?w

そんなことより Boost.Act すごいから誰か試してみないか?
俺の貧弱なマシンでは試したところで良く分からないというオチなんだろうな
とても悲しい
0945デフォルトの名無しさん2007/03/26(月) 14:10:41
人に試させて、自分のブログのネタにする気か
0946デフォルトの名無しさん2007/03/26(月) 22:00:51
そういう被害妄想はせめて自分が試してみせてから言わないと痛いw
0947デフォルトの名無しさん2007/03/26(月) 22:08:54
そんなにブログのネタが欲しいのか
0948デフォルトの名無しさん2007/03/27(火) 00:16:40
Boost.Unitsのレビューが始まったらしい。

> area = volume / length; // correct
> force = mass * velocity; // wrong

> total_area = area + 3.14 * length * length; // correct
> total_force = force + 2.718; // wrong

とかできるんだって。opaque typedefがなくてもしばらく大丈夫かも。
0949デフォルトの名無しさん2007/03/27(火) 01:07:48
____              progress_
|← reject|  boostの中の人  display   ユーザー
. ̄.|| ̄ ̄        ┗(^o^ )┳(^o^ )┳(^o^ )┛≡=-
  ||            ┏┗  ┗┗  ┏┗ ≡=-
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0950デフォルトの名無しさん2007/03/27(火) 01:10:10
俺のprogress_displayが・・・
0951デフォルトの名無しさん2007/03/27(火) 01:42:14
無次元化してるから要らない
0952デフォルトの名無しさん2007/03/27(火) 15:45:53
d.hatena.ne.jp
にブログもってる人多いね
c++のコード貼るのに便利な機能でもあるの?
0953デフォルトの名無しさん2007/03/27(火) 16:14:00
そこ人気記事の上位がなんか宗教がかってて怖いんですが
0954デフォルトの名無しさん2007/03/27(火) 17:23:58
やねうらおとか登大遊とかJavascriptとか…
なんでプログラム系ばっかなのかは気になる
0955デフォルトの名無しさん2007/03/27(火) 17:46:23
>>952
板違いだが "シンタックスハイライト" という記法があるとレスしとく。
地味に便利なんだ。
http://www.google.co.jp/search?q=%E3%81%AF%E3%81%A6%E3%81%AA%E8%A8%98%E6%B3%95+cpp
0956デフォルトの名無しさん2007/03/27(火) 17:49:04
>>955
それ結構最近だし。
はてなは中の人があれで類友だからじゃね?
0957デフォルトの名無しさん2007/03/28(水) 01:52:55
>>952
hatenaでblog始めたら負けかな? と思ってたんだが、ついに去年負けちゃった俺がきましたよ。

あそこはねぇ、各種キーワードを含むページの更新情報・・・って言ってもわかりにくいから
例を挙げると http://d.hatena.ne.jp/keyword/Boost みたいなページがあってですねぇ、
ここを監視していると hatena 内で言及された Boost の話題を全部チェックできるんですよ。
で、これは RSS にも対応してて便利なんですよ。さらに各キーワードをそれぞれの分野の
ヲタがヲチしてるから、なんかトラぶってる様でも blog で愚痴れば詳しいヤツの助言が
得られたりするですよ。

まぁ、RSS チェックしててもノイズが多いし、下手なこと言おうもんならすぐに嗅ぎ付けられ
ちゃうし良し悪しではあるんですが、俺が負けちゃった理由はそんなところです。
0958デフォルトの名無しさん2007/03/28(水) 01:58:36
「はてな」は何でもやたらとリンクされるスタイルがちょっと嫌い
書くほうは楽なんだろうけど
0959デフォルトの名無しさん2007/03/28(水) 02:08:07
それは分からないでもない(俺はもはや気にならなくなったが)

「どないせえっちゅうんじゃ」という文字列中の「えっち」にリンクが張られたという笑い話もある
0960デフォルトの名無しさん2007/03/28(水) 05:07:38
boostスレでポンポン はてなダイアリー市民 が出てくる事に狂気を感じる
0961デフォルトの名無しさん2007/03/28(水) 06:19:35
軍靴の足音とか、すぐ色んなもん聞こえたり感じたりする人いますからね。
0962デフォルトの名無しさん2007/03/30(金) 17:55:31
>>961
そりゃ幻聴だ、結構ヤバイぞ。
0963デフォルトの名無しさん2007/03/30(金) 22:06:58
>>961
スレ違い。お前はこっちへ逝け
http://pc11.2ch.net/test/read.cgi/tech/1139266461/
0964デフォルトの名無しさん2007/03/30(金) 23:13:07
誰がうまいこと言えと(ry
0965デフォルトの名無しさん2007/03/31(土) 00:16:11
>>963
まだそのスレ生きてたのかw
0966デフォルトの名無しさん2007/03/31(土) 06:17:54
BOOTSは死なぬ、何度でも蘇るさ
0967デフォルトの名無しさん2007/03/31(土) 06:19:51
まぁ寝たきり老人みたいな生存ではあるが
0968デフォルトの名無しさん2007/03/31(土) 09:55:20
言語が滅びたのに糞クラスライブラリだけ残るなんて滑稽だ
0969デフォルトの名無しさん2007/03/31(土) 13:51:06
>>968
おまえさまは>>963のスレタイを画面に穴が開くまでよく読むか目医者に行った方がいいと思うよ。
0970デフォルトの名無しさん2007/03/31(土) 14:39:48
Д゚)ノシ しつもーん。しーつーもーんー。

正規表現でいうところの [ab]*b って事で
spirit で *('a' | 'b') 'b' を定義して,"aab" という入力を食わせると
hit しなかったわけですけども,
これって正常?ですか?ですよね?

つまり,「BNFの量指定子はバックトラックするべきか否か?」という
問題になるのかなと思うんですが
ここらへんの事って,もうどこかで議論されていたりするんでしょうか?
っていうか,慣例やガイドラインのようなものがあったり?
RFC4234見ても,このあたりは書いてないっぽいですけど。

もっとも,プログラム言語のような比較的規模のデカい構文で
いちいちバックトラックの用意をしてたら,もうアタシ死んじゃいそうですけどね。
yacc とか使い物にならなくなりそうですよね。。。
0971デフォルトの名無しさん2007/03/31(土) 15:28:00
*('a' | 'b') >> 'b'
じゃないの?試してないけど。

あと、頭の'a'はch_p('a')でなくていいんだっけ?
0972デフォルトの名無しさん2007/03/31(土) 15:36:08
spiritって無限先読み、完全バックトラックじゃなかったっけ?
09739722007/03/31(土) 15:40:17
やってみると確かにマッチしないな。
0974デフォルトの名無しさん2007/03/31(土) 16:11:26
'a' | 'b' == 'c'
よって
*ch_p('c') >> 'b'

ってことだろ。多分
0975デフォルトの名無しさん2007/03/31(土) 16:16:09
# include <boost/spirit.hpp>

int main()
{
  using namespace boost::spirit;
  std::cout << parse("aab", *(ch_p('a') | 'b') >> 'b').full << '\n';
}
0976デフォルトの名無しさん2007/03/31(土) 23:07:19
こうしたら通った。
+(*ch_p('a') >> ch_p('b'))
……同じ文法を受理するから、まあ良いか。
0977デフォルトの名無しさん2007/04/01(日) 16:40:55
'a' ← こういう記述が顔に見えてきた
    
0978デフォルトの名無しさん2007/04/01(日) 18:02:39
ch_p('A')
0979デフォルトの名無しさん2007/04/01(日) 19:42:40
for(; ;)
while('A')
if('-');
0980デフォルトの名無しさん2007/04/01(日) 22:15:04
>>971-974
そうっすね。実はあまり真面目に spirit について勉強してないんですが
とりあえず間違いのないように全部 ch_p をつけて
  *(ch_p('a') | ch_p('b')) >> ch_p('b')
として "aab" を食わしてやりました。

>>976
んー素晴らしい。
必要な時は,NFAな表現をあらかじめ手作業でDFAに
変換しとけばおkという事ですね。

ところで,グループの中の or もバックトラックしない模様です。
  (ch_p('a') | str_p("aa")) >> ch_p('b')
これもやはり "aab" を受理してくれませんでした。ch_p と str_p を入れ替えて
  (str_p("aa") | ch_p('a')) >> ch_p('b')
とすれば受理してくれるんですが。
0981デフォルトの名無しさん2007/04/01(日) 22:43:13
連投すいませんです。
"|" が短絡されるのはドキュメントに明示されてるんですね。
そのために longest_d[] があるんだよ,と。

  longest_d[ch_p('a') | str_p("aa")] >> ch_p('b')

うーんなるほど。
0982デフォルトの名無しさん2007/04/02(月) 00:48:02
次スレってあったっけ
0983デフォルトの名無しさん2007/04/02(月) 00:49:10
http://pc11.2ch.net/test/read.cgi/tech/1139266461/
0984デフォルトの名無しさん2007/04/02(月) 01:47:00
>>983
それは履き物
0985デフォルトの名無しさん2007/04/02(月) 23:16:15
http://pc11.2ch.net/test/read.cgi/win/1156840566/
0986デフォルトの名無しさん2007/04/03(火) 00:05:04
>>985
それはビスタ
0987デフォルトの名無しさん2007/04/04(水) 08:36:41
次スレ立ててよろしいですか?
0988デフォルトの名無しさん2007/04/04(水) 10:11:49
いいよ
0989デフォルトの名無しさん2007/04/04(水) 14:10:02
Boostを語れゴラァ part4
http://pc11.2ch.net/test/read.cgi/tech/1175663346/

立てました
0990デフォルトの名無しさん2007/04/04(水) 14:51:14
乙
0991デフォルトの名無しさん2007/04/05(木) 09:13:52
うめ
0992デフォルトの名無しさん2007/04/05(木) 20:14:45
梅
0993デフォルトの名無しさん2007/04/05(木) 20:18:19
竹
0994デフォルトの名無しさん2007/04/05(木) 21:29:42
筍ウマー
0995デフォルトの名無しさん2007/04/06(金) 16:53:18
楳
0996デフォルトの名無しさん2007/04/06(金) 20:38:57
うめ
0997デフォルトの名無しさん2007/04/06(金) 20:39:57
うめ
0998デフォルトの名無しさん2007/04/06(金) 20:40:43
うめ
0999デフォルトの名無しさん2007/04/06(金) 20:41:24
うめ
1000デフォルトの名無しさん2007/04/06(金) 20:41:28
たけ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。