Boostを語れゴラァ pa ..
21:デフォルトの名無しさん
07/04/12 19:06:41
下記のコードで
A( 1 )
in block
A( 2 )
~A( 1 )
out block
~A( 2 )
みたいな出力を期待したのですが、違いました。 ばぐですか?
ソース:
struct A {
A(const int id) : id_(id) { cout << "A( " << id << " )" << endl; }
~A() { cout << "~A( " << id_ << " )" << endl; }
int id_;
};
int main() {
boost::shared_ptr<A> a(new A(1));
boost::weak_ptr<A> wa(a);
cout << "in block" << endl;
if( boost::shared_ptr<A> aa = wa.lock() ) {
aa.reset(new A(2));
}
cout << "out block" << endl;
return 0;
}
22:デフォルトの名無しさん
07/04/12 19:36:15
普通に考えたら
A( 1 )
in block
A( 2 )
~( 2 )
out block
~( 1 )
じゃないか?
23:デフォルトの名無しさん
07/04/12 20:32:36
> if( boost::shared_ptr<A> aa = wa.lock() ) {
うへえ、キモい
24:デフォルトの名無しさん
07/04/12 21:05:05
そうか?
25:デフォルトの名無しさん
07/04/12 23:44:37
>>23 kwsk
26:デフォルトの名無しさん
07/04/13 00:37:03
aaの生存期間ってif文終了時点まで、であってるかな
27:デフォルトの名無しさん
07/04/13 01:08:14
// ericne, 27/nov/05: CW9_4 doesn't like if(shared_ptr x = y)
shared_ptr<Derived> dep = cur2->lock();
if(dep.get())
{
sout << "0x" << (void*)&*dep << ',';
}
使うべきだが使えない。
いつものパターンです
28:デフォルトの名無しさん
07/04/13 01:47:29
int main()
{
boost::shared_ptr<A> a(new A(1));
boost::weak_ptr<A> wa(a);
cout << "org: 0x" << (void*)a.get() << endl; // org: 0x0x00033480
cout << "in block" << endl;
if( boost::shared_ptr<A> aa = wa.lock() )
{
cout << "aa: 0x" << (void*)&*aa << endl; // aa: 0x0x00033480
aa.reset(new A(2));
cout << "reseted aa: 0x" << (void*)&*aa << endl; // reseted aa: 0x0x00037118
}
cout << "out block" << endl;
return 0;
}
27氏がなにが言いたいのか分からない件について
29:デフォルトの名無しさん
07/04/13 08:23:51
27はifの中での変数宣言が使えないコンパイラがあるとでも言いたいんだろ。
でもこれforでの変数宣言よりも古くかあるんだけどな……。
30:デフォルトの名無しさん
07/04/13 10:01:06
shared_ptrでは、ということだろ。
詳しい条件は知らない
31:デフォルトの名無しさん
07/04/26 10:41:52
みんな CVS から落としてきたやつを使ってるの?
それとも 1.33.1 ?
32:デフォルトの名無しさん
07/04/26 11:40:48
linuxでopenvrmlというライブラリをビルドしていたんですが、
boost/ptr_container/ptr_map.hpp
というファイルが見つからないというエラーが出てmakeにコケてしまいます。
/usr/include/boost/にboostのファイルはあるみたいなのですが、
/ptr_container/がディレクトリごと存在していません。
boostには/ptr_container/があるものとないものがあるのでしょうか?
yumでboostをインストールしたところ、
/ptr_container/は入っていたのですが、
/usr/local/include/boost/
にインストールされてしまいました。
/usr/local/include/boost/のものを/usr/include/boost/に上書きしたらまずいでしょうか?
ちなみに/usr/local/include/boost/ptr_container/だけを/usr/include/boost/
にコピーしてみたところ、別のboostのファイルの関数名と衝突?してしまいました。
boostにはいくつか種類があるのでしょうか?
boostに対してもlinuxに対してもそれほど詳しくないので質問が曖昧で申し訳ないのですが、
何かアドバイス頂けるとありがたいです。
33:デフォルトの名無しさん
07/04/26 11:49:59
winだとcvsからのをビルドできたよサイト見ながらだったがまあvc8+stlportができなかったが
34:デフォルトの名無しさん
07/04/26 11:54:40
>>32
ptr_containerが入ったの割と最近だから
35:デフォルトの名無しさん
07/04/26 19:41:27
そういや久しぶりにチェックアウトしたらBoost.BuildがV2になったんだな。
-sTOOLSやっても変な警告でるし-sBUILDも効かないしで悩んでしまった。
36:デフォルトの名無しさん
07/04/26 20:01:05
V2 でいろいろ変わっているね。Visual Studio 2005 使用中。
--toolset の指定で vc80 ってできない。自動判定で msvc になる。
以前ライブラリのファイル名に vc80 って入っていた部分が
vc になってるのでオートリンクで見つけられないなどなど。
Visual Studio だからかな。ほかの環境ではどう?
1.34 全然リリースされないね。
37:32
07/04/27 00:43:09
>>34
レスありがとうございます。
なるほどそういうこともある訳ですか。
現在も色々と追加修正されているということですね。
試しに1.33.1のソースをmakeして、元からあったboostと置き換えてみたところ、
ライブラリのmake自体にはコケたものの関数名の衝突はなくなりました。
boostについての疑問は解決しましたので後は自分で頑張ってみます。
ありがとうございました。
38:デフォルトの名無しさん
07/04/27 02:26:44
>>36
--toolset=msvc-8.0
でおk
自動でバージョンが入らないのは多分バグ。
39:デフォルトの名無しさん
07/04/27 20:27:20
URLリンク(lists.boost.org)
>The first beta of what will become version 1.34.0 is now
キタ━━━(゚∀゚)━━━!!
40:デフォルトの名無しさん
07/04/27 21:21:11
まああれだsvnでやってるからあんまかわらなん・・・・・・・
41:デフォルトの名無しさん
07/04/27 22:21:56
>>38 ほほう。情報THX。
俺自分で Exepress CX つかってバイナリパッケージ作ってるんで、
次にパッケージングするときにやってみるよ。
パッケージって言っても所詮大学の研究室の学生数人で使うだけだが。
42:デフォルトの名無しさん
07/04/28 18:41:41
serializationで複数のDLLにまたがるクラスをシリアライズするコードを書くと
DLLとEXEの動的初期化中にextended_type_infoの登録が複数回実行されるらしく
extended_type_info.cpp 74行目の
assert(lookup(eti) == m_self->m_map.end());
にひっかかってしまって困っています。
URLリンク(lists.boost.org) や
URLリンク(comments.gmane.org) なども同じ問題のようで
登録の重複を許すとなにやら問題が起きるらしいんですが
DLLとEXEごとにstaticなものがあちこちに分散するので重複を防ぐのは難しそうです。
boostのソースを書き換えるしかないですか?
43:デフォルトの名無しさん
07/04/29 03:14:16
move_ptrってどういうものなんでしょうか?
44:デフォルトの名無しさん
07/04/29 14:05:09
>>43 URLリンク(std.dkuug.dk)
45:デフォルトの名無しさん
07/04/30 07:55:45
svnリポジトリはどこ?
sf.net は CVS だけ?
46:デフォルトの名無しさん
07/04/30 12:34:08
めもめも
boost::tokenizerでwchar_tを使うには
<boost/tokenizer.hpp>のclass tokenizer宣言の後に
typedef tokenizer<
char_delimiters_separator<wchar_t>,
std::wstring::const_iterator,
std::wstring
> wtokenizer;
とか追加すれば良いっぽい。
と思ったけど同じようなことが数年前に個人舞炉愚に既に書いてあるな。
ノイズにしかならん。俺は馬鹿か。
47:デフォルトの名無しさん
07/04/30 13:21:39
1.34あたりにはデフォで入ってたりせんかのう
48:デフォルトの名無しさん
07/04/30 16:16:24
>>45
CVSだけー
次にどっから来たか書こうか
49:デフォルトの名無しさん
07/05/01 07:05:39
svn便利なのになー
50:デフォルトの名無しさん
07/05/02 04:00:00
21 名前:デフォルトの名無しさん[sage] 投稿日:2006/09/24(日) 17:51:52
Visutl Studio 2005 Express Edition で Boost をインストールしようとしたのですが
ワーニングがいっぱいでて1時間以上まって エラーも5個でて、
regexp の例題をコンパイルしてもエラーでだめでした。(エピステーメさんのHPの)
Boost を 2005 EE にインストールする方法を書いてあるHPがありましたが教えてください。
よろしくおねがします。
34 名前:デフォルトの名無しさん[sage] 投稿日: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.. ってして作業内容把握できるようにすると判りやすいかも
51:デフォルトの名無しさん
07/05/02 09:00:19
関係ないけど、DOSってscriptコマンドみたいのは無いのかね
52:デフォルトの名無しさん
07/05/02 11:13:28
本当に関係ないね。
53:デフォルトの名無しさん
07/05/07 03:12:56
しかしboostは、アルゴリズムや数学に関する機能は豊富だけど、
アプリ開発にはいらんような機能ばっかだな。
まあC++の用途を考えれば、そういうのに偏るのも分からないでもないが。
個人的にはXMLのパーサを入れてほしい。
54:デフォルトの名無しさん
07/05/07 04:28:04
言いだしっぺの法則
55:デフォルトの名無しさん
07/05/07 04:58:28
apache のヤツでええやん。
56:デフォルトの名無しさん
07/05/07 10:26:34
boostはC++の委員会によって標準化されたライブラリだからこそ使うに値する。
よく使われるような機能がないからといって、
その辺で公開されているライブラリを使おうというのであれば、boostの存在価値が薄らぐ。
57:デフォルトの名無しさん
07/05/07 16:02:28
じゃあいつまでも独りでグチグチ言ってろ
58:デフォルトの名無しさん
07/05/07 16:54:00
spiritは面白いけどコンパイルが重すぎるなぁ
59:デフォルトの名無しさん
07/05/07 19:29:54
XMLパーサなんかいらねえよ
でもそのうち入るんだろうなあ
60:デフォルトの名無しさん
07/05/07 19:53:31
SerializationのXML読み書き部分から独立なんてことになったりして。
xml_archive読んだことないから、そんなことができるかどうかは知らないが。
61:デフォルトの名無しさん
07/05/07 20:00:15
boost1.34.0をVisualC++7.1(2003)でコンパイルしたのですが、
同じライブラリファイルで名前にバージョンが入るのと入らないのができてしまいました。
たとえば、
boost_filesystem-vc-mt-1_34.lib と
boost_filesystem-vc-mt.lib です。
なぜ二つあるんでしょうか?
そしてどちらを使えばいいんですか?
62:デフォルトの名無しさん
07/05/07 20:04:18
バイナリを比べて見たら?
63:デフォルトの名無しさん
07/05/07 20:14:11
まったく同じものです。
Windowsではシンボリックリンクが使えないので、
このように同じファイルを用意したのでしょうか?
64:デフォルトの名無しさん
07/05/07 20:16:09
>>63
Jamfile読めば分かるけど少なくともNTFSではハードリンクになってるはず。
65:デフォルトの名無しさん
07/05/07 20:32:27
bjamのコマンドの末尾に > log.txt つけるのでもいいぜ。
66:デフォルトの名無しさん
07/05/07 20:57:49
バージョンのついてるのとついてないの、
どっちをリンクすればいいんですか?
67:デフォルトの名無しさん
07/05/07 21:10:50
VCならパスの設定しておけば自動でリンクされると思うが
68:デフォルトの名無しさん
07/05/08 23:20:40
>>59
俺は欲しいが
69:デフォルトの名無しさん
07/05/09 00:50:40
XMLパーサーもまだ入ってないのか。まさに無駄な糞ライブラリだな。
70:デフォルトの名無しさん
07/05/09 01:11:43
progress_displayはあるけどな
71:デフォルトの名無しさん
07/05/09 02:25:57
>>5
72:デフォルトの名無しさん
07/05/09 23:24:42
だいたい余分な機能が多すぎなんだよ。八元数なんていったい誰が使うんだ。
そりゃ使うやつはいるかもしれないが、準標準C++ライブラリを謳うBoostに入れる意味があるのか?
73:デフォルトの名無しさん
07/05/09 23:36:38
要らない人は使わなければ良いだけでは?
74:デフォルトの名無しさん
07/05/09 23:36:57
3Dで使う人もいるんでない?
75:デフォルトの名無しさん
07/05/09 23:41:58
四元数は使うだろうけど、八元数まで使うの?
76:デフォルトの名無しさん
07/05/10 01:25:06
クォタニオンも3Dグラフィックス以外では使い道なさそうだなあ。
それにDirectXにはクォタニオンのクラスが元々あるんだからそれ使うだろうし、
OpenGLにも多分あるだろうからわざわざBoostのを使う人はいないだろう。
77:デフォルトの名無しさん
07/05/10 01:29:26
OpenGLにはクォタニオンは無い。DirectXのはいろんな意味で使いにくい。
複素数なんかと同じ意味で「標準ライブラリ」に組み込まれるのはおかしくないと思う。
複素数だって使わない人はいるでしょ?
78:デフォルトの名無しさん
07/05/10 01:37:50
じゃあクォタニオン使わずにuBLASの行列で演算すればいい。
79:デフォルトの名無しさん
07/05/10 01:45:08
4と4x4じゃコストに差がありすぎる。
80:デフォルトの名無しさん
07/05/10 02:23:26
お前ら、progress_displayが泣いてるぞ。
81:デフォルトの名無しさん
07/05/10 12:16:14
ここでboostの質問してもよかですか?
82:デフォルトの名無しさん
07/05/10 13:04:28
progress_displayって生きてる意味あるの?
まぁ、もうとっくに死んでるんだけどね。
お前ら実はシックスセンスの持ち主なんじゃないの?
83:デフォルトの名無しさん
07/05/10 13:46:14
いいえ、僕はセックスシンスの持ち主です。
84:デフォルトの名無しさん
07/05/10 14:21:27
僕はソックスモエス
85:デフォルトの名無しさん
07/05/10 14:48:05
グラフ関数のまとめサイトある?
なんか面白そうな事が書いてあるから使って見たいんだが
86:デフォルトの名無しさん
07/05/10 14:57:22
URLリンク(syrinx.q.t.u-tokyo.ac.jp)
87:デフォルトの名無しさん
07/05/10 16:29:34
>>86
学校の問題でSTL使ってるのはじめてみた・・・・・orz
88:デフォルトの名無しさん
07/05/10 19:04:08
ブーストを使うお前らブースターだな
89:デフォルトの名無しさん
07/05/11 00:55:06
>>86こりゃいいや。ブックマークいれといた
90:デフォルトの名無しさん
07/05/11 12:43:17
cmake
どうなるんだろ
unix,win混在環境なので非常に気になる
91:デフォルトの名無しさん
07/05/11 18:11:00
>>86
こういうページを見ると
東大すげえなって思う
92:デフォルトの名無しさん
07/05/11 22:05:07
>>86
精神衛生上非常に好ましいな
93:デフォルトの名無しさん
07/05/12 18:31:40
using namespace std;
94:デフォルトの名無しさん
07/05/12 18:39:35
>>93
この俺様のソースファイルでは、名前が衝突してないよという意味だからいいだろ、別に。
95:デフォルトの名無しさん
07/05/12 19:05:29
>>94
微妙にとげのある言い方だな
96:デフォルトの名無しさん
07/05/12 19:30:32
using namespeceを使うのは、gotoを使うのと同じぐらい初心者だ。
97:デフォルトの名無しさん
07/05/12 19:47:03
「gotoは絶対にダメだ」と言う奴は「自称上級者、実際初心者」だ。
using namespaceもgotoと同様に、絶対ダメなものではない。
96こそがホンモノの初心者だ。
98:デフォルトの名無しさん
07/05/12 19:53:40
まだ経験が足りないだけかもしれんがgoto使わないとヤバイって状況には陥ったこと無いな
例外を使わざるを得ないって状況はC++やり始めた頃から結構遭遇してるけど
制約が多い環境でのプログラミングならそういうのもよくあることなのかゐ?
99:デフォルトの名無しさん
07/05/12 19:55:13
上級者という者は、初心や上級というものを気にしない。
という自己言及のパラドックス。
100:デフォルトの名無しさん
07/05/12 20:12:05
>>98
C++だと例外があるからな。
Cだと異常処理の時に便利だよ。(マクロとコーディングルールも合わせて使うけどな)
101:デフォルトの名無しさん
07/05/12 20:12:06
gotoやループ内でのswitch-caseによるフラグ操作も原則禁止だな。
ただし状態遷移のプログラムの場合は堅い設計の上で意図的に使う。
問題の本質がそうであるから。
102:デフォルトの名無しさん
07/05/12 20:37:54
兵が恐れずにusing namespaceを使うスレでも立てるかな
103:デフォルトの名無しさん
07/05/12 20:47:27
そんな話、C++初心者スレかどっかでやれよ
104:デフォルトの名無しさん
07/05/12 20:52:29
Regexって日本語通るようになりましたか?
105:デフォルトの名無しさん
07/05/12 21:11:54
「日本語通る」というのにもいろいろ水準があるような?
106:デフォルトの名無しさん
07/05/12 21:14:36
ワイド文字バージョンなら今も昔も使えてるんじゃね。
サロゲートペアが混ざった場合にどうなるか知らんけど。
107:デフォルトの名無しさん
07/05/12 21:16:20
2重ループの抜け出しには迷わずgotoする俺は真の猛者。
108:デフォルトの名無しさん
07/05/12 21:19:53
SJIS範囲内だけでいいなら16bitSJIS使うという裏技もある
109:デフォルトの名無しさん
07/05/12 21:23:06
UTF-8使え
110:デフォルトの名無しさん
07/05/12 21:25:19
>>109
アホ発見
111:デフォルトの名無しさん
07/05/12 22:38:41
EUCを使え
112:デフォルトの名無しさん
07/05/12 23:40:42
ヘッダファイルでは使わんが、
ソースで using するのは別によくね?
113:デフォルトの名無しさん
07/05/12 23:46:21
画面内に収まる程度のコード内なら普通に使う。
114:デフォルトの名無しさん
07/05/12 23:47:38
関数スコープ内だったらusing宣言は自由に使っていいと思う。
115:デフォルトの名無しさん
07/05/12 23:49:29
書くときは楽だが、保守するときは大変。
なので、stdしか使ったことないな。
116:デフォルトの名無しさん
07/05/12 23:51:35
使わないほうがその関数を使ってる場所を検索一覧するときに楽。
117:デフォルトの名無しさん
07/05/13 00:00:48
長い名前空間があった場合ってどうしてる?
エイリアス作るの?
118:デフォルトの名無しさん
07/05/13 00:04:11
namespace hogehoge = sexualvioletmikomikonurse;
119:デフォルトの名無しさん
07/05/13 00:11:23
エイリアス作るの?の意味がわからなかったのか?
120:デフォルトの名無しさん
07/05/13 00:29:10
sumimasen
121:デフォルトの名無しさん
07/05/13 00:47:08
実際何文字あっても先頭数文字が特徴的ならIDEの補完で終わるからいいんだけどな
122:デフォルトの名無しさん
07/05/13 00:49:22
入力が面倒なんじゃなくて、
sexualvioletmikomikonurse::tokachitukuchite::gossungossungosunkugi(...);
なんて読みたくないだけ。
123:デフォルトの名無しさん
07/05/13 00:50:26
つか、実際にそういう名前に遭遇するか?
俺は経験ないが
124:デフォルトの名無しさん
07/05/13 00:56:12
まあないけど。
125:デフォルトの名無しさん
07/05/13 00:56:52
>>122
真ん中のがなんだか解らなかったのが悔しい。
セクシャルバイオレットみこみこナース::とかちつくちて::ごっすんごっすん五寸釘();
126:デフォルトの名無しさん
07/05/13 01:34:50
やっぱヘッダの中でusingするのは抵抗感じるな。
includeの後だったら影響無いのは判っているけどね……
ソース中でusingしたときのリスクってなんかあったっけ?
127:デフォルトの名無しさん
07/05/13 01:39:43
↑↑アイマスじゃなかったっけ?
実物は見たことないけど。五寸釘は知らない。
128:デフォルトの名無しさん
07/05/13 01:40:46
>>126
using って using directive なのか using declaration なのかどっち?
どちらにせよ
>includeの後だったら影響無いのは判っているけどね……
はちょっと意味が分からないのでもうちょっとkwsk
129:デフォルトの名無しさん
07/05/13 01:43:08
>>126
using namespace foo; は原則として使わない。
using foo::bar; は必要があれば使う。
ネームスペース全体をusingすると、先方のネームスペースの変更で名前が衝突するリスクが発生する。
130:デフォルトの名無しさん
07/05/13 01:46:46
>>127
アリス・マーガトロイド
131:デフォルトの名無しさん
07/05/13 01:48:00
すごい勢いで話がずれてる
132:デフォルトの名無しさん
07/05/13 01:55:10
sumimasen
133:デフォルトの名無しさん
07/05/13 01:56:11
>>122
全部分かってしまった俺は負け組み。
134:デフォルトの名無しさん
07/05/13 02:01:16
参考書だとスペースの都合上 using するのは仕方ない。
135:デフォルトの名無しさん
07/05/13 02:02:49
C++は木材資源にも優しい言語でした
136:デフォルトの名無しさん
07/05/13 02:04:39
アイマス作るの?の意味がわからなかったのか?
137:デフォルトの名無しさん
07/05/13 02:09:12
ヲタばっかだなこのスレ
138:デフォルトの名無しさん
07/05/13 02:12:01
boost::shared_ptr< boost::variate_generator< boost::mt19937, boost::uniform_smallint<> > >
みたいなのは適当にtypedefしとけって事ですか?
139:デフォルトの名無しさん
07/05/13 02:14:22
うん
140:デフォルトの名無しさん
07/05/13 07:19:30
↓他人のtypedefの定義名が気に入らなくて、結局、全部のソースを直した奴
141:デフォルトの名無しさん
07/05/13 10:11:47
Boost 1.34 age
142:デフォルトの名無しさん
07/05/13 10:18:16
↑ 新機能も使わないのに何となく入れ替えてみる奴
143:デフォルトの名無しさん
07/05/13 10:37:04
>53
DOM オブジェクトが返ってくるわけでもないんで望んでるものとは違うだろうけど、機能限定版 XML パーサーは Property Tree に入ってるはず。
Review は Accepted だけど CVS 上にはない…と思ったら、なんか今日 CVS 上にもあがったっぽい。
まだドキュメントがないらしいんで↓のレビューから辿れるところあたりを参照。
URLリンク(lists.boost.org)
URLリンク(lists.boost.org)
Property Tree 自体は任意の木構造状データを表現するためのライブラリで、INI とか JSON、果ては Windows レジストリとかも扱えるそうな。
144:デフォルトの名無しさん
07/05/13 11:19:30
Boost1.34リリースですか。
Filesystemもようやっと国際化(UTF-8/UTF-16対応)か。
Xpressiveがboostの仲間入りですな。
Xpressiveて、マルチバイトOKだったっけ?
ドキュメント斜め読みする限りは対応していなさそうな感じだったけど……
145:デフォルトの名無しさん
07/05/13 12:26:31
ドキュメント斜め読みしたらそのものずばりがあるようなんだが。
試してないが。
146:デフォルトの名無しさん
07/05/13 13:47:05
あ、localeに対応しているって書いてあるね。スマソ。
後で試してみよう。
147:デフォルトの名無しさん
07/05/14 03:53:05
1.34来てるのになんでこんなに盛り上がってないの?
148:デフォルトの名無しさん
07/05/14 07:40:42
cvs派が結構いるから、ドキュメントさえあればって感じ
149:デフォルトの名無しさん
07/05/14 12:41:26
visual studio 2003にboostをインストールしたら
boost::reg_expression<char> regex = "[a-zA-Z].*[a-zA-Z]";
でerror C2262: 'regex' : 破棄できません。
というエラーが出ます
インストール失敗?
150:デフォルトの名無しさん
07/05/14 14:51:31
>>53
そういうのは別のライブラリを使え、ってことじゃないかなぁ。
って、何がスタンダードなのかな。
Expat とか libxml とか?
Windows なら MSXML もあるね。
151:C2262
07/05/14 14:52:48
Compiler Error C2262'identifier' : cannot be destroyed
URLリンク(msdn2.microsoft.com)(vs.71).aspx
The object cannot be instantiated because the appropriate destructor,
though defined, is not accessible.
The following sample generates C2262:
// C2262.cpp
class B
{
~B();
};
class D : public B {};
D d; // C2262, B's destructor is private
152:デフォルトの名無しさん
07/05/14 15:35:40
>>149
代入演算子とコンストラクタの違い分かってる?
boost::regex regex("[a-zA-Z].*[a-zA-Z]");
153:デフォルトの名無しさん
07/05/14 17:23:49
ところで、漏れ Windows でのプログラミングってあんまりしたことなくて、
たまに下としても市販のライブラリを購入したことがなくて、
フリーのものばかり(代表的なものが boost)使ってきたんだけど、
市販の開発用ライブラリはどんなインストーラになってるの?
インストールすると C:\Program Files\ 以下にインストールされてしまうの?
自分で Boost を Windows にインストールするときには
C:\usr\lib とか C:\usr\include とかにライブラリのバイナリとヘッダを
置いているんだけど、Windows 的流儀ってのがあるのかな?
つーのは、1.34 も出たことだし、内輪で使うためにバイナリパッケージを
インストーラつきで作ろうと思ってるんだけど、パスをどうするかが
人それぞれで好みが違うってことが分かってデフォルトは何にしたらいいのかなって。
154:デフォルトの名無しさん
07/05/14 17:54:46
>>153
Program Files\xxx\includeにヘッダ、Program Files\libにライブラリが一般的だと思う。
インクルードパスや、ライブラリパスがやたらと長くなるけど、プロジェクトに一回設定したら
実際のコマンドライン生成はIDE任せなんで気にしない。
unixでもpkgconfig使いだすと、コマンドラインで1kbyteとか行ったりするし。
155:デフォルトの名無しさん
07/05/14 18:22:54
マニュアルのsplitの説明が間違ってる
string str1("hello abc-*-ABC-*-aBc goodbye");
typedef vector< string > split_vector_type;
split_vector_type SplitVec; // #2: Search for tokens
split( SplitVec, str1, is_any_of("-*") );
// SplitVec == { "hello abc","ABC","aBc goodbye" }
// ↑これ誤り。正しくは "hellow abc", "", "", "ABC", "", "", "aBc goodbye"
// is_any_ofは正規表現的には[-*]つまり「a-*-b」は「a,,,b」のような意味
※ boost::algorithm:splitはdisplay_progressの兄貴分w
156:デフォルトの名無しさん
07/05/14 20:24:03
なるほど、インクルードファイルについては各ライブラリの
ディレクトリ以下の include に、バイナリについては
\Program Files\lib という共通のディレクトリというわけですか。
バイナリが共通のディレクトリになっている理由は
動的リンクライブラリへのパスを一箇所にまとめるためですかね。
スペース入りのパスにいろんなものを置くのが気持ち悪くて、
Windows での流儀を知りたいと思っていました。
157:デフォルトの名無しさん
07/05/14 21:13:12
デフォルトは C:\Program Files\組織名\ソフト名\ の下にして、気持ち悪い人はインストーラの操作で
変更できるようにするのが良いと思う。なお、C:\Program Filesなどのパス名はハードコードしないで
SHGetSpecialFolderPath などで取得するべし。(念のため)
158:デフォルトの名無しさん
07/05/15 06:59:15
>>157
インストール先ですが、組織名ってのはとりあえず省略して、
C:\Program Files\Boost で。パス名については ExePress CX
でパッケージングすると自動的で取得してくれるようです。
シェアードオブジェクト(dll)も
C:\Program Files\Boost\lib 以下に配置すべきですかね?
それともすでにパスが通っているどこかにコピーすべきでしょうか。
しかし C:\Windows\ 以下なんぞに *.dll をコピーすると
ぶっ殺されそうな気がするので、これまた Windows の流儀ってのが
あるんでしょうか?
159:デフォルトの名無しさん
07/05/15 07:02:22
ちなみにすでに C:\Boost\ をデフォルト位置にした
1.33.1 と 1.34 の Windows + VC++8 用バイナリパッケージと
ICU のバイナリパッケージは作りました。あとは
1)C:\Boost\ って Windows 的にはどうよ。
2)アンインストーラ対応にすべき?
それとも単にターゲットフォルダに展開して終わり?
3)DLL はデフォルトでパスが通ってそうなところに突っ込むべき?
160:デフォルトの名無しさん
07/05/15 10:41:54
アンインストーラにも対応してないような半端なインストーラなんて無いほうがまし。
レジストリを書き換えたり、スタートメニューに挿入したりするのなら、アンインストールにも
対応するべきだし、そうでないプログラムなら単純にZIPファイルで配布するのが良いだろう。
ご存知だと思うが、標準でWindowsではZIPファイルはフォルダとして見える。
どうせプログラマしか使わないのだから、配置は任せるのが良いんじゃないかな。
161:デフォルトの名無しさん
07/05/15 11:40:19
>160
Win2kはwindowsじゃないですか、そうですか・・・
162:デフォルトの名無しさん
07/05/15 11:41:49
終わってるWindowsだな。もちろん終わってるから悪いというわけではないけど。
163:デフォルトの名無しさん
07/05/15 12:10:07
だがそれがいい
164:デフォルトの名無しさん
07/05/15 17:10:21
>>161
URLリンク(homepage2.nifty.com)
165:デフォルトの名無しさん
07/05/15 17:47:54
圧縮フォルダが使えることと、zipがシームレスにフォルダに見えることは同じ事なのか?
166:デフォルトの名無しさん
07/05/15 17:58:24
圧縮フォルダでZIP書庫はフォルダとして見えるがシームレスではない
167:デフォルトの名無しさん
07/05/15 18:00:57
所詮はshellのオマケ機能だしな。
NTFS標準の圧縮フォルダならシームレスと言えるのでは。
168:デフォルトの名無しさん
07/05/20 21:18:29
>>129
その書き方じゃあ、ネームスペース全体をusingしなけりゃ
その問題が起きないように読めるが、そんなことは無いだろ?
ADLあるし。まあ、程度の差はあるだろうが。
169:デフォルトの名無しさん
07/05/21 00:10:25
これはなんなの?
170:デフォルトの名無しさん
07/05/21 22:27:14
::: 唐突に :::
boost::gui の話ってどうなったの?
171:デフォルトの名無しさん
07/05/22 02:58:45
C++でクロスプラットフォームなGUIはQtを使えばいいだろ
172:デフォルトの名無しさん
07/05/22 07:22:43
他にもwxやらGtkやらfltkやら乱立してるからなぁ・・・
良い物ができたとしてもboostの入り込む余地はあるんだろか
173:デフォルトの名無しさん
07/05/22 10:20:17
Notusちょっと面白そうだったが…放置されてるな
174:デフォルトの名無しさん
07/05/22 10:43:34
>>171
商売物で使うには法外な値段
175:デフォルトの名無しさん
07/05/22 12:24:48
dotoneto
176:デフォルトの名無しさん
07/05/22 16:10:41
GUIに速度は不要だからもはやC++でGUI作る意義は薄いと言えなくも無い
スクリプトエンジンに外注した方が楽だな
177:デフォルトの名無しさん
07/05/22 17:22:57
UIもOpenGLやDirectX使うのが今の流れ
178:デフォルトの名無しさん
07/05/22 17:40:55
CUIでも?
179:デフォルトの名無しさん
07/05/22 17:42:35
CUI自体が今の流れじゃないだろw
180:デフォルトの名無しさん
07/05/22 19:32:04
>>177
cairo使うのが今の流れ。
181:デフォルトの名無しさん
07/05/22 22:23:34
GUIはズールで
182:デフォルトの名無しさん
07/05/22 22:28:02
2;\cGDI;y5u/90%.e/)4tu@jxf,/4x/d0-:/y/?
183:デフォルトの名無しさん
07/05/23 13:05:03
c++と組み合わせて使うのに便利なGUIってなんだろ
c++である必要もないんだよね
184:デフォルトの名無しさん
07/05/23 18:24:36
ATL+WTL
185:デフォルトの名無しさん
07/05/23 20:18:40
CUIに2本毛が生えたのがGUI
186:デフォルトの名無しさん
07/05/23 20:30:57
C++/CLI
・・・ってすでに C++ じゃないか。
187:デフォルトの名無しさん
07/05/23 22:11:11
GUIと一口にいっても、グラフィックをバリバリ使うようなソフトは
やはりC++でないと処理が追いつかないこともあるから使われるだろう。
そうでない伝票入力とか在庫管理とかのオーダーメイドアプリは
もはや完全にWebに移行している。
もっともユーザインターフェースが最新のWebでも、
データベース入出力はいまだにCOBOLが使われたりするところもあるわけだが。
188:デフォルトの名無しさん
07/05/23 22:12:29
まあboostを使うような人はそういう売り物ソフトとはまったく無縁の人たちだろうけど
189:デフォルトの名無しさん
07/05/23 22:19:22
基幹にはやはりCOBOLを選ぶ by 不治通
190:デフォルトの名無しさん
07/05/23 22:22:12
NECのACOSシリーズもCOBOLだよ
191:デフォルトの名無しさん
07/05/23 23:46:49
Webアプリって紙の呪縛があるだろ。
帳票とかネックになんないの?
192:デフォルトの名無しさん
07/05/23 23:48:31
Japanese OK.
193:デフォルトの名無しさん
07/05/24 09:36:00
質問してもいいですか?
環境:c2d,OSX,i386,ppc(ロゼッタで確認だけ),Carbon使用
試してるboostライブラリは全てスタティック用でi386とppc(両方32bit)のユニバ
最適化はO0〜O3まで全部試してます。
regexライブラリをリンクしただけで、コード内で使わなくても2286byte〜3???byteメモリリークしちゃう
1331と1340リリース版両方で同じ状態、i386実行とロゼッタ実行でリーク量が数byte違ったり
ライブラリのO0〜O3の影響でもリーク量が変わってます、が、リンクしただけでリークするのは変わらず。
誰か修正方法知りませんか?、LeakTracerでソース位置が特定できなくて自分のレベルでは追いきれず。
(リークはするけど正規表現の動作そのものは一通り問題なかったりします、2286は固定で持ってるテーブルかなにか??)
(regex以外のビルドの要るライブラリはfilesystemくらいしか使ってませんが1331でも1340でもリーク無し)
xpressiveをOSX(Carbon使ってる状態のXcodeプロジェクトでしか試してないけど)で使うには
struct nil;とかのnilがobj-cのnilあたり?と被ってるようなので
ローカルな名前で書き換えて良さそうなnilは全部リネーム
これで"static regex"ではないregex風の方は一通り動きます、regexとほぼ同じに使えてリーク無しなのでこっち使ってます。
Let's boostさんにある"static regex"の方は
boostヘッダ側のエラーの表示された順に危なそうな変数名でローカルな物をリネームしてみていっちゃうと
compile_resultの
typedef typename compiler_type::BOOST_NESTED_TEMPLATE apply<op_type, State, Visitor>::type type;
で行き詰まりました。誰か対処方法知ってたら教えてください、高速らしいのに使えなくてしょんぼりorz
194:デフォルトの名無しさん
07/05/24 10:17:42
訂正
#include <iomanip>
#include <boost/xpressive/xpressive.hpp>
の順でインクルードしておけば"static regex"いけました、無知でごめんなさい
195:デフォルトの名無しさん
07/05/24 12:54:59
質問するならそれなりの書き方があるだろう。
〜ちゃうとか、orzとか、2chだからまともな書き方しなくていいと思ったら大間違いだ。
196:デフォルトの名無しさん
07/05/24 12:58:16
べつに訊き方なんでどうでもいいと思うが。
気に食わない奴は答えなきゃいいんだし。
197:デフォルトの名無しさん
07/05/24 13:08:51
僕は回答者をやってるつもりだから偉いんだぞお!
って言いたいだけだから華麗にスルーでいいよ
198:デフォルトの名無しさん
07/05/24 13:59:38
マルチを毛嫌いしてるのとか、マルチは悪みたいな風潮もなんだかなーと思う。
なんか昔のfjみたいな堅苦しさを感じる。別に感謝されたくて返答してるわけじゃないんだし。
マルチ嫌いをスルーすりゃいいんだけど。
199:デフォルトの名無しさん
07/05/24 14:03:51
いや、悪だろw
その自覚がないのはもっと手に負えないな。
どうしても複数箇所に投下したいなら、
その旨を記述しておくべき。
200:デフォルトの名無しさん
07/05/24 14:43:57
>>198
おまえ fj で苛められてただろw
201:デフォルトの名無しさん
07/05/24 20:02:15
NetNewsの場合は、
一つの記事を複数のグループにpostする機構があり、
ヘッダを見れば、他にどこのグループにもpostされていたか分かった。
メールのTo:のようにNewsgroups:に複数グループを記述できた。
この機構を使わず、個別にpostする行為のことをマルチポストと言ったから、
技術的に批判するだけの根拠があった。
豆知識な。
202:デフォルトの名無しさん
07/05/24 21:02:10
>>198
お前、マルチがなんで嫌われるのか本質的なことを理解できてないだろ。
203:デフォルトの名無しさん
07/05/24 21:14:07
スレ違いで伸びるウザさも理解して欲しいもんだがなぁ。
まぁ自分にだけ寛大なのはお互い様ではあるが。
204:デフォルトの名無しさん
07/05/24 21:25:18
手広く書き込んだほうが回答を得られる確率が上がるのでインターネットリテラシーに優れているといえるでしょう。
205:デフォルトの名無しさん
07/05/24 21:27:47
電柱一本に尋ね人のポスター貼るより
電柱百本に尋ね人のポスター貼る方が効果的
206:デフォルトの名無しさん
07/05/24 21:44:38
合理的
207:デフォルトの名無しさん
07/05/24 21:57:08
コスト対効果の問題
電柱一本に貼るのと電柱百本に貼るのとで、は前者の方が経済的
208:デフォルトの名無しさん
07/05/24 22:28:49
電柱全部が自分の自由にして良いものだと思ってるのが間違い。
209:デフォルトの名無しさん
07/05/24 23:24:56
電柱全部が自分の自由にして良いものだと思ってると思ってるのが間違い。
210:デフォルトの名無しさん
07/05/24 23:28:45
スレ違い
211:デフォルトの名無しさん
07/05/25 00:48:18
電柱に立ちションするとbootsが汚れるからやめような
せめて座りション
212:デフォルトの名無しさん
07/05/25 00:56:41
電柱にウンコしちゃだめだからね
213:デフォルトの名無しさん
07/05/25 09:50:03
boostのいい日本語リファレンスマニュアルがないので、
wikiを作ろうと思うんですが、作ったら書き込んでくれるひといますか?
214:デフォルトの名無しさん
07/05/25 10:04:24
俺が個人的に使ってる誤訳抜け満載のを張ってやるよ
215:デフォルトの名無しさん
07/05/25 11:52:56
>>213
新しく始めるより、翻訳プロジェクト進めてくれよ。
216:デフォルトの名無しさん
07/05/25 12:39:30
翻訳プロジェクトはどこにあるんですか?
217:デフォルトの名無しさん
07/05/25 12:45:16
>>216
>>1
URLリンク(boost.cppll.jp)
崩壊気味だけど。
218:デフォルトの名無しさん
07/05/25 13:19:13
こんだけライブラリの数が多けりゃ
翻訳プロジェクトとか途中で頓挫するに決まってる
219:デフォルトの名無しさん
07/05/25 13:22:50
一対一対応の翻訳を目指すから挫折する
俺の書いたprogress displayの訳なんて一行だぞ一行
220:デフォルトの名無しさん
07/05/25 13:23:47
だからプロジェクトにするんじゃなくてwikiにすればいいんだよ
221:デフォルトの名無しさん
07/05/25 15:46:53
まスパムが未来永劫無くならない事から見てもマルチの効率はいいんでしょ。
222:デフォルトの名無しさん
07/05/25 16:39:17
wiki作ってみました。
URLリンク(wikiwiki.jp)
223:デフォルトの名無しさん
07/05/25 17:09:16
pythonでGUI
Boost.pythonでc++と結合
224:デフォルトの名無しさん
07/05/25 17:17:42
で、pythonのGUIライブラリって何よ?
となって振り出しに戻る。
225:デフォルトの名無しさん
07/05/25 17:19:46
ptgtkとか、pyqtとか
226:デフォルトの名無しさん
07/05/25 17:20:46
wxPython一択じゃね?
227:デフォルトの名無しさん
07/05/25 19:06:35
90%くらいのパソコンはMFCが動くんでないの?
228:デフォルトの名無しさん
07/05/25 19:48:27
個人的にはMediaWikiのほうが慣れているから
こっちの乗っ取りでいいじゃないかと思った
URLリンク(www.cppll.jp)
229:デフォルトの名無しさん
07/05/25 20:57:09
そこはεπιστημηが管理人じゃねえか。
今はなきCマガジンのそいつの連載を知ってるが、
無知で無教養でネタもつまらん、最低の連載だったぞ。
さらにロリ系のエロ漫画家と交友関係があって、そいつの絵をCマガジンにも載せたほどだ。
Cマガジンが廃刊になったのはこいつのせいだ。俺は絶対許せん。
230:デフォルトの名無しさん
07/05/25 21:03:00
はいはい そういうのはよそでやってくれ
スレリンク(tech板)
231:デフォルトの名無しさん
07/05/25 21:14:26
>>229
あーあ
また博之の名誉毀損の賠償額が増えちゃったよw
232:デフォルトの名無しさん
07/05/25 22:27:35
>>229
*.cppll.jp の管理人は tietew だぞ。
233:デフォルトの名無しさん
07/05/25 23:07:43
επιστημηって紀元前のεπιστημηのこと?
やっぱり違う?
234:デフォルトの名無しさん
07/05/25 23:13:26
紀元前の奴がまだ生きてるわけないじゃん
235:デフォルトの名無しさん
07/05/26 07:49:15
>>229
エロ漫画家と知り合いなのはエピステーメじゃなくフィンローダの方だぞ。
まあどっちもCマガの記事はつまらんかったが。
236:デフォルトの名無しさん
07/05/26 08:09:52
おまえらカウントクラスをバカにすんな
237:デフォルトの名無しさん
07/05/26 08:30:15
>>222
今filesystemが書かれているけど
pathではなくbasic_pathにしたほうがいいと思う
238:デフォルトの名無しさん
07/05/26 08:36:28
wikiなんだから自分で直せば?
239:デフォルトの名無しさん
07/05/26 08:41:25
229の誰かトップに貼れよ
240:デフォルトの名無しさん
07/05/26 08:42:56
記事名を変える方法がわからん。
ってすまん、今名前変更に気が付いた。
241:デフォルトの名無しさん
07/05/26 08:44:05
で、変更しようとしたら管理者パスワードを要求された
やっぱり俺にはできないようだ
242:デフォルトの名無しさん
07/05/27 01:53:30
めもめも
URLリンク(www.kmonos.net)
243:デフォルトの名無しさん
07/05/27 23:00:04
>>242
さすがにちっと古くねえか?
244:デフォルトの名無しさん
07/05/29 03:42:14
初歩的な質問で申し訳ありません。
lambdaに条件演算子に相当するものはありますか?
以下のようなファンクタをさくっと書く方法を知りたいです。
struct MyFunctor : public unary_function<bool, const char*>
{
const char* operator()(bool x) { return x ? "YES" : "NO"; }
}
245:デフォルトの名無しさん
07/05/29 04:12:32
>>244 if_then_else_return(_1, "YES", "NO")
246:244
07/05/29 11:36:46
ありがとうございました。
247:デフォルトの名無しさん
07/05/29 20:50:28
$ cat ./test.cpp && g++ test.cpp && ./a.out
#include <iostream>
#include <deque>
#include <boost/lambda/lambda.hpp>
using namespace std;
using namespace boost::lambda;
int main ()
{
typedef deque <double> Container;
Container c0;
for (size_t i (0); i < 10; ++ i)
c0.push_front (i);
Container c1 (c0);
cout << "max: " << *max_element (c0.begin (), c0.end ()) << '\n';
for_each (c0.begin (), c0.end (), _1 /= *max_element (c0.begin (), c0.end ()));
cout << "c0: "; for_each (c0.begin (), c0.end (), (cout << _1 << ' ')); cout << '\n';
for_each (c1.begin (), c1.end (), _1 /= 9);
cout << "c1: "; for_each (c1.begin (), c1.end (), (cout << _1 << ' ')); cout << '\n';
return 0;
}
max: 9
c0: 1 8 7 6 5 4 3 2 1 0
c1: 1 0.888889 0.777778 0.666667 0.555556 0.444444 0.333333 0.222222 0.111111 0
最近lamdaを使いはじめました
c0とc1の内容が異なってくるのですがこれはしょうがないんですかね
このへんの解説ページなんかあれば教えていただけるとうれしいのですが
248:デフォルトの名無しさん
07/05/29 21:34:39
思いっきり/9で割ってるやん
249:デフォルトの名無しさん
07/05/29 21:46:55
,,,ィッッシミ彡三ミ、,
/彡彡三三三ミミ彡ミ、
/彡彡へ-‐'''゙゙⌒´ヽ、ミミミヘ
{彡彡-''゙゙ U ミミヘヘ{
|彡;{ u ミミミミ
|彡i ィッァ、 ィ≡ミ、 }ミミミ
r-;;{´ ィェァ、}--{ r‐ッ-、 }‐‐;;r''´}
ヽヽ_'゙__ノ,' ',ヽ__''゙__ノ :|/::) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
`| /(、, ,, ) :::|::,.} < そろそろイキそうだ、中に出して良いかい?
ヽ', ヽ弋''‐'''フ-ノ ,::ノ ハァハァ
ヽ,、 `‐‐'''´ ,.::::::ノ
/ヽ、__ニ___ノ''゙ .⌒\
アンアン / 人 。 。 丿\ \
\ \| 亠 / / / パン
/ ̄ ̄ ̄\ \⊇ 干\ ⊆ /
i'_liノ |_|iトil_}__,l ( 。 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|i.}┃ ┃ ミ;i|《 /⌒v⌒\ ) < 社長〜中出しして良いから次も主役お願いね♪
|lヽ'' ヮ ''' ,_) l/⌒\ ノ ) | \___________
/ | | | | パン
| |. Y | |__/ | | パン
| |ヽ__人___ノ| ト' | |/^ヽ
| | ゜ ゜ | |_/ ヽ__人_ノ
⊆, っ とーっ
〜〜〜〜〜その頃堀江ヲタは…〜〜〜〜〜〜
ほっちゃんは天使だおハァハァ シコシコ
(*´Д`) シュッ シコシコ
Σ⊂彡_,,..i'"':
|\`、: i'、
\\`_',..-i
\|_,..-┘
250:デフォルトの名無しさん
07/05/29 22:51:37
>>247
なんだこれ…
lambdaはデフォルトで定数項を参照で保存するのか。
constantで回避できるけど、なんでこうなってるんだろ。
251:デフォルトの名無しさん
07/05/30 00:41:06
>247
>250
脊髄反射で全くはずれた事を書きそうになったけど、ちょい調べてみた。
↓の通り、基本的に lambda は参照ではなくてコピーした値を保持している。
URLリンク(www.boost.org)
が、(↑にも書いてあるけど)複合代入演算子の左辺は参照で保存される(当たり前)。
で、(多分実装の手抜きのため?)左辺と右辺で参照か値かが異なる場合が対応されていないため、
/= の右辺も(const だけど)参照で受けてしまう。
cf. lambda/detail/operators.hpp
そのため、
_1 /= *max_element (c0.begin (), c0.end ())
の代わりに
_1 = _1 / *max_element (c0.begin (), c0.end ())
とすると、結果が c1 と同じになる。
252:247
07/05/30 03:18:16
>>250,251
よくわかりました
有難うございます
253:デフォルトの名無しさん
07/05/30 09:04:50
STLってさbegin (), end ()とか渡さなくても
上記のメンバ関数有るの分かってるんだから
クラスのポインタ受けとりゃいいんじゃないの
254:デフォルトの名無しさん
07/05/30 09:09:21
>253
組み込み配列を渡したくなったときのことを考えてみよう
255:デフォルトの名無しさん
07/05/30 09:50:03
>>253
boost::rangeがまさにそれをやってる。
>>254
既存のコンテナの一部を渡すのもそうだな。
256:デフォルトの名無しさん
07/05/30 10:23:45
>>253
オブジェクトへのポインタの間違い?
開始点と終了点を渡すiterator式のインターフェースの方がずっと汎用性がある。
例えば、途中から渡したい場合、
iteratorを持たない集合型オブジェクト上のiteratorを自前でつくる場合、
変換iteratorを使う場合など。
この辺の議論は20〜30年前に決着済みです。
257:デフォルトの名無しさん
07/05/30 10:34:58
>>256
コンテナがあればイテレータふたつは簡単に手に入るし、
イテレータがふたつあればそれを仮想的なコンテナとみなせるから、
コンテナとイテレータのどっちを基準にしても汎用性は変わらないだろ。
むしろ、利便性の問題。
258:デフォルトの名無しさん
07/05/30 10:42:52
>>255
> 既存のコンテナの一部を渡すのもそうだな。
などの利便性は、汎用性と言ってもいいのではないでしょうか。
259:デフォルトの名無しさん
07/05/30 11:02:56
2つのイテレータを引数に取る関数のラッパとしてコンテナの参照を引数に取る関数を作るのは容易だが、その逆はそうはいかない。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5099日前に更新/84 KB
担当:undef