06/09/23 15:00:11
語って.はぁと part boost::mpl::int_<3>
前スレ
part 2 スレリンク(tech板)
part 1 スレリンク(tech板)
■関連サイト■
Boost C++ Libraries
URLリンク(www.boost.org)
Boost 翻訳プロジェクト
URLリンク(boost.cppll.jp)
Let's Boost
URLリンク(www.kmonos.net)
boost info
URLリンク(shinh.skr.jp)
2:デフォルトの名無しさん
06/09/23 15:01:35
■関連書籍■
Boost C++ Libraryプログラミング
URLリンク(www.amazon.co.jp)
Beyond The C++ Standard Library
URLリンク(www.amazon.co.jp)
C++ Template Metaprogramming
URLリンク(www.amazon.co.jp)
The Boost Graph Library
URLリンク(www.amazon.co.jp)
■関連スレ■
C++相談室 part46
スレリンク(tech板)
【C++】STL(Standard Template Library)相談室 4
スレリンク(tech板)
BOOTSを語れゴラァ part2
スレリンク(tech板)
3:デフォルトの名無しさん
06/09/23 15:03:31
Loki
URLリンク(sourceforge.net)
JTC1/SC22/WG21 - The C++ Standards Committee
URLリンク(www.open-std.org)
POCO, the C++ Portable Components
URLリンク(www.appinf.com)
URLリンク(sourceforge.net)
The unofficial BCB Boost patches
URLリンク(bcbboost.sourceforge.net)
4:デフォルトの名無しさん
06/09/23 15:04:37
> 1.34 では Pointer Container のシリアライザも用意されるみたいだね
URLリンク(boost.cvs.sourceforge.net)
Unresolved Issues: CVS-RC_1_34_0
URLリンク(engineering.meta-comm.com)
5:デフォルトの名無しさん
06/09/23 15:19:51
>>4 のリンクがうまくはれていないので修正。
Unresolved Issues: CVS-RC_1_34_0
URLリンク(engineering.meta-comm.com)
>>1 乙
6:デフォルトの名無しさん
06/09/23 20:09:13
乙
ところで前スレはどういう流れだったっけ
7:デフォルトの名無しさん
06/09/23 20:19:46
コレ、まだ残ってたのかw↓
BOOTSを語れゴラァ part2
スレリンク(tech板)
8:デフォルトの名無しさん
06/09/23 20:43:09
>>7
そこはどう見ても履き物についてのスレだw
9:デフォルトの名無しさん
06/09/23 20:59:44
板違いスレか、服飾系板に強引に立てたネタスレかと思ったら素で間違えてんのかw
10:デフォルトの名無しさん
06/09/23 21:39:37
ずいぶんと懐かしいな
11:デフォルトの名無しさん
06/09/23 22:48:14
>>7
ホンマにブーツの話してるしw
12:デフォルトの名無しさん
06/09/24 00:08:55
>>11
間違いは間違いとして、その後で内容のほうを合わせようという建設的な態度は評価できるな
13:デフォルトの名無しさん
06/09/24 00:23:34
そういえば、自らの国家や民族に固執する(ry じゃなくて、C#スレを立てようとした 1 が
スレタイに半角の # が使えないことを知らなくてスレタイから # が消えて、
そのまんま C 言語のスレになったってのもあったな。
14:デフォルトの名無しさん
06/09/24 00:49:11
1のリンク先のレッツブーストつぶれちょる?
version134ていつでるんでしょうか、10月中にはでます?
15:デフォルトの名無しさん
06/09/24 01:31:11
>>14
いや、ちゃんとあるよ。
>>1のURLから最後の空白を削ってみろ
16:デフォルトの名無しさん
06/09/24 05:09:00
うむむ、なぜか空白が追加されてるね、末尾に。
>>1 のリンクって。
17:デフォルトの名無しさん
06/09/24 06:18:04
boost::filesystem の directory_iterator って、
いわゆるコンテナクラスライブラリのイテレータとは書式が違うね。
18:デフォルトの名無しさん
06/09/24 09:10:31
違わない。
19:デフォルトの名無しさん
06/09/24 09:40:14
あ、ごめん、begin() とか end() とか無いね、
って言う意味だった。
20:デフォルトの名無しさん
06/09/24 09:45:17
それはコンテナの方の特徴だな。
begin()/end()を持っている方が少数派。
例えばiostream。
21:デフォルトの名無しさん
06/09/24 17:51:52
Visutl Studio 2005 Express Edition で Boost をインストールしようとしたのですが
ワーニングがいっぱいでて1時間以上まって エラーも5個でて、
regexp の例題をコンパイルしてもエラーでだめでした。(エピステーメさんのHPの)
Boost を 2005 EE にインストールする方法を書いてあるHPがありましたが教えてください。
よろしくおねがします。
22:デフォルトの名無しさん
06/09/24 18:03:18
有ったのか無かったのかどっちやねん
23:デフォルトの名無しさん
06/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
キャラクタテーブルのコメント。いぱーい。
24:デフォルトの名無しさん
06/09/24 20:23:11
>>23 Unicode で保存し直すとかでも回避できたっけ?
25:デフォルトの名無しさん
06/09/24 20:34:16
>>21
何をして何のエラーが出たのか書いてよ。
PlatformSDK Build Environment
vcvars32.bat
boost/regex/user.hpp ->例題によってはこれの設定必要
bjam
の順で自分はやってるけど?
26:デフォルトの名無しさん
06/09/24 22:09:10
なんで lexical_cast<std::wstring> はあるのに、
lexical_cast<std::string> は無いんだろう。
27:デフォルトの名無しさん
06/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;
}
28:デフォルトの名無しさん
06/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 も所有権を主張していて、スコープを外れた途端に
いきなりデストラクタを呼び出しに行ったりしませんか?
29:デフォルトの名無しさん
06/09/25 10:51:52
>>28
URLリンク(boost.cppll.jp)
30:デフォルトの名無しさん
06/09/25 10:54:55
気になるなら明示的にrelease()すればいいんじゃね
31:デフォルトの名無しさん
06/09/25 10:57:53
>>28
何故自分で試さない?
32:デフォルトの名無しさん
06/09/25 11:37:05
>>29
リンク先の「タイプ量(コード量)を減らそうとして...」ての知らなかたよ。
33:デフォルトの名無しさん
06/09/25 12:26:03
eps_p(P)でPにセマンティックアクション付けられないの?
34:デフォルトの名無しさん
06/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.. ってして作業内容把握できるようにすると判りやすいかも
35:デフォルトの名無しさん
06/09/26 21:33:46
>>33
eps_p(p) >> p[f] ではだめなのか?
36:デフォルトの名無しさん
06/09/26 23:04:56
>>35
ちょっと量が多すぎてvectorにpush_backじゃ厳しいから
まずPにマッチする行数をincrement_aでカウントした後一気にメモリー確保して、
その後でdetailed_Pで実際にパースしようとしてるんだわ。
そうしたらマッチしてるのにセマンティックアクションが動かなくてさ。
うまくいかないからとりあえず普通にPでマッチさせて、そこからもう一回
bindでparse呼んでるんだけど、これが正しい解なのか悩んでる。
37:デフォルトの名無しさん
06/09/27 02:19:48
ドキュメントに書いてあるんだが。
URLリンク(www.boost.org)
38:デフォルトの名無しさん
06/09/30 00:11:40
|ω・) 1_34は~まだかな~
39:デフォルトの名無しさん
06/09/30 20:11:48
1.34はコードの量が倍くらいになるんじゃないか
40:デフォルトの名無しさん
06/09/30 22:40:11
bcc5.5 日本語でboost のビルドは
無理なんでよね?^^;
41:デフォルトの名無しさん
06/09/30 23:45:34
日本語でビルドってどういう意味だ?
42:デフォルトの名無しさん
06/09/30 23:48:41
ライブラリの構築、ぐらいでいいんじゃね?
43:デフォルトの名無しさん
06/10/01 00:16:46
「構築する」
44:デフォルトの名無しさん
06/10/01 00:32:57
んじゃコンパイルは
45:デフォルトの名無しさん
06/10/01 00:45:35
>>44
元来の英語の意味は「蒐集する、編纂する」というニュアンス。
コンピュータ用語としては「コンパイル」が広く普及しているので、そのままで桶。
46:デフォルトの名無しさん
06/10/01 00:50:42
コンパイルは、過労働で疲労困憊する、ってことかと思ってました。
47:デフォルトの名無しさん
06/10/01 00:51:40
あれだろ。サイレントメビウス書いた人の漫画
48:デフォルトの名無しさん
06/10/01 01:17:53
関数を書くときに
OptionalとExpressionTemplate使って辺値を
数式と計算に分離できるようにできるかな?
できたら数式のままいろんな計算できそうなんだけども。
49:デフォルトの名無しさん
06/10/01 01:20:59
のーみそこねこね
50:デフォルトの名無しさん
06/10/01 01:52:05
最近ハートが付いて復活したな…
51:デフォルトの名無しさん
06/10/01 06:59:28
1.34 全裸正座待ち中
52:デフォルトの名無しさん
06/10/01 08:43:49
CVSで最新取って来ればいいのに
53:デフォルトの名無しさん
06/10/01 09:28:27
プレイだから
54:デフォルトの名無しさん
06/10/01 16:40:13
日本人は低能知能なのには呆れますね。
私達中華人民はあなたたちの掲示板を拝見して笑ってみてますよ。ではありがとうございました。
55:デフォルトの名無しさん
06/10/01 17:01:27
ありがとう!
56:デフォルトの名無しさん
06/10/01 17:18:50
礼儀正しい方だね
57:デフォルトの名無しさん
06/10/02 00:49:04
こころゆくまで拝見してください
58:拝して見るのはあくまで自分な
06/10/02 12:19:15
>>57
日本語でどうぞ。
59:デフォルトの名無しさん
06/10/02 12:22:28
>54を見れ
60:デフォルトの名無しさん
06/10/02 12:58:34
自敬表現も日本語だろ。
61:デフォルトの名無しさん
06/10/02 19:30:53
中華人民は煽りも丁寧だな。さすが中華
62:デフォルトの名無しさん
06/10/02 23:41:17
うむ、我々もこういった物腰を見習わなければならんね。
63:デフォルトの名無しさん
06/10/03 00:51:37
他のスレでもやってたけど、ここでも塩撒いとこうぜ。
六四事件 天安門
64:デフォルトの名無しさん
06/10/03 06:57:16
台湾独立万歳!
65:デフォルトの名無しさん
06/10/04 12:38:27
まあ俺らがこのスレでやってることは彼らが2000年位前にすでに通った道だからな
66:デフォルトの名無しさん
06/10/04 12:43:21
>>65
そうそう。今では見る影もないけどね。>彼ら
67:デフォルトの名無しさん
06/10/04 15:53:11
じゃあ、俺たちもいずれ・・・
68:デフォルトの名無しさん
06/10/08 01:51:46
boost::operators見てこんな書き方が出来るの初めて知ったよ…
struct foo {
friend bool operator+(const int &lhs, const foo &rhs) {
//...
};
};
69:デフォルトの名無しさん
06/10/08 02:01:04
割と基本的なことだな
70:デフォルトの名無しさん
06/10/08 02:01:39
Barton-Nackman Trick
その本来の目的で使われることが無くなった、
興味深いworkaroundのコード。
テンプレート関数のオーバーロードができなかった時代に考案されたという……。
ADLの助けを借りずしてその関数を呼び出すことは不可能とされている。
民明書房「黎明期の貧弱なコンパイラとその制約」より
71:デフォルトの名無しさん
06/10/08 04:05:12
wserializationって、もしかしてまだ準備中?
Boostを導入しようと思ったきっかけが
シリアライズが楽にできそう、なんで、いきなり挫折しそう
72:デフォルトの名無しさん
06/10/08 23:41:59
特に問題はないと思うが。
ただ大域locale(std::locale::global)の設定をしないとうまくいかない場合があるはず。
73:デフォルトの名無しさん
06/10/09 19:16:27
>>72
よかった、頑張ってみます
さんくす
74:デフォルトの名無しさん
06/10/10 00:04:36
boost::filesystem::wpath
1.34 わくわく
75:デフォルトの名無しさん
06/10/10 09:41:46
てか、まだ 1.34 のレグレッションテストぜんぜん通ってないよ。
76:デフォルトの名無しさん
06/10/10 20:07:44
vc8 + STLport5.0.2 + Boost1.33.1の組み合わせを実行している人っていますか?
77:デフォルトの名無しさん
06/10/10 22:07:18
残念。
俺はvc8 + STLport5.1.0 + Boost1.33.1だ。
78:デフォルトの名無しさん
06/10/10 23:31:01
1.34て今年中には出るのか!?
79:76
06/10/11 12:53:48
>77さん
よろしければ その時のBOOSTのインストール方法をお教えいただけますか?
80:デフォルトの名無しさん
06/10/11 19:00:27
>>68
というか、「出来ないんじゃないか」と考える理由の方がわからんが?
81:73
06/10/11 20:35:01
あれから、ワイド文字を使わないシリアライズはできるようになりました
しかし、wchar_t文字列のシリアライズコードを書いてみたのですが動作しません
コードは25行なんですが、コードに関する質問は
質問スレのほうに書いたほうがよいでしょうか
82:デフォルトの名無しさん
06/10/11 20:37:58
ここでしなかったらスレが無駄過ぎる
83:73
06/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;
}
84:73
06/10/11 20:53:31
あ、メモリ確保してない^^;
85:デフォルトの名無しさん
06/10/11 22:08:27
>>83
C2027ってことはVisual C++だろ。
出力の中から、エラーを起こしたテンプレートがどこから実体化されたのか辿れるようになっている。
86:73
06/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>
87:73
06/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;
}
88:77
06/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
深くは使ってないんで、完璧にうまくいってるかは分からないけど。
89:76
06/10/12 13:23:24
77さん書き込みありがとうございます。
その方法でやってみるとBoostとSTLportがVC8上で共存できませんでした。
>bjam -sTOOLS=vc8_0 --prefix=
ではなく
bjam -sTOOLS=vc8_0-stlport --prefix=
が公式HP上で出るのを待つしかないのでしょうか??
90:デフォルトの名無しさん
06/10/12 15:28:52
>>89
ぐぐったらでてきた
URLリンク(d.hatena.ne.jp)
91:77
06/10/12 18:42:34
普通に使えてるけど……
92:デフォルトの名無しさん
06/10/12 20:51:42
もはやboost無しでは生きていけない。
cygwinにboostのパッケージが用意されていて助かった。
93:デフォルトの名無しさん
06/10/12 21:01:59
じゃぁ死ね
94:デフォルトの名無しさん
06/10/12 21:07:00
>>93
何だとゴルァ!
95:デフォルトの名無しさん
06/10/12 21:32:05
C++をどっぷりやってる人のblogとかは
boost使ってない事が無いな
96:デフォルトの名無しさん
06/10/12 21:36:26
boost禁止のプロジェクトにアサインされて死ねばぁ
97:デフォルトの名無しさん
06/10/12 21:58:03
つうかboostOKのプロジェクトなんてそうないだろ
98:デフォルトの名無しさん
06/10/12 22:02:52
>>95
んなこたない。boost使ってない奴はC++にどっぷりじゃないと思ってるだけだろ
99:デフォルトの名無しさん
06/10/12 23:26:17
>>98
つまり>>95にとって「C++どっぷり」と「boost使う」が同値なわけか
100:デフォルトの名無しさん
06/10/12 23:30:55
C++に詳しい奴がboost使うと思ってるんだろ。
実際は逆なんだけどな。
101:デフォルトの名無しさん
06/10/12 23:36:14
ああ、本当にC++に詳しい奴はBoostを作る、だからな。
102:デフォルトの名無しさん
06/10/12 23:37:59
>>100
逆っていうか、相関性はあまりない気が
詳しいかどうかじゃなくて、便利だから使うだけだしな
103:デフォルトの名無しさん
06/10/12 23:38:10
>>100-101
激しく同意
104:デフォルトの名無しさん
06/10/12 23:56:51
どっぷりというか魅せられた奴が多いとは思う
105:デフォルトの名無しさん
06/10/13 00:10:38
>>95
アイディアとかは参考にするし、似たようなもの実装することもあるし、
既に似たようなもの作ってたりとかだなあ。
スレッドとかファイルシステムとかのライブラリって結局自前じゃないと
いろいろ融通が利かなくって、他人のはめんどくさい気がするんだよなあ。
ちょっとずれるけど、C++もCPANみたいにFTPとかXMLとか応用的なライブラリが
まとまって管理されたりするといいなあとか思うな
106:デフォルトの名無しさん
06/10/13 00:35:18
GILみたいになんでもかんでもboostに投げればいいんじゃないかな?
107:デフォルトの名無しさん
06/10/13 07:54:25
大したことない自前ライブラリ使ってるから投げられないと思われ
108:デフォルトの名無しさん
06/10/13 08:55:25
まあ新しいライブラリとかが出たときは、いつでも「なんでもできるし、
もう自分で作る必要はない」とか売り文句がついてくるんだけどさ。
OWLとかMFCもATLもそうだったけど、そういうのの上位に作るとさ、その
ライブラリの衰退と共に自分のコードも死んじゃうんだよね。
あと、自前はたいしたことなくていいんだよ。必要なときに必要な箇所を
実装すればいいんだからさ。
109:デフォルトの名無しさん
06/10/13 09:12:12
Boostはその特性からして、衰退するときはC++と同時だと思うが。
110:デフォルトの名無しさん
06/10/13 09:29:40
それはそうかもね。MFCとかよりはだいぶ標準よりだろうし。
まあ、boostの場合は衰退の前にもっと繁栄しないとかなと。。
111:デフォルトの名無しさん
06/10/13 10:17:36
今は、C++からの逃げ道としてC#やjavaが用意されている時代です。
112:デフォルトの名無しさん
06/10/13 12:16:24
>>101
boostの開発者は自分で使いたいから作ったんじゃないの?
自分では使わないけれど他人に使わせるために作ってるわけ?
105の言うとおりに同等品を既に作ってあるとかなら別だけど。
113:デフォルトの名無しさん
06/10/13 12:37:39
人は何故mplを作るのか?
そこにテンプレートメタプログラミングがあるからだ。
114:デフォルトの名無しさん
06/10/13 12:42:21
>>112
ただboostを使ってるだけの連中は、boostを作ってる連中に比べれば全然C++に詳しくない。
って話だろ?
115:デフォルトの名無しさん
06/10/13 12:44:10
プロジェクトで使えなくとも、Boost のヘッダ見て部分的に移植するのは
いろいろと勉強になって楽しいけどな
特に detail/ 以下漁るといろんなモノ発掘できて楽しいw
116:デフォルトの名無しさん
06/10/13 12:48:55
>>114
ただC++コンパイラを使っているだけの連中は、C++コンパイラを作っている連中に比べれば(ry
117:デフォルトの名無しさん
06/10/13 19:18:21
>>115
たしかに。lightweight_mutex (shared_ptr で使用)だの、
phoenix (spirt で使用) だのは、ブラッシュアップして表に出して欲しいくらい。
118:デフォルトの名無しさん
06/10/13 22:14:55
でも、同等機能が複数あるのはやだなあ。統一してほしいものだ。
phoenixはlambdaと統合中とかどこかでみたような。。
119:デフォルトの名無しさん
06/10/14 13:11:22
>>105
順番の問題じゃない?下位のクラスが安定してきたらそのうちできるでしょ。
spirit使えばXMLパーサの実装も理屈的にはBNFを移すだけになるしさ。
120:デフォルトの名無しさん
06/10/14 16:27:50
C++ の場合は空間効率と実行効率の要求が分野によって全然違う上に、
そこをいくらでもチューンナップできる自由度もあるので、
なかなか汎用的な低レベル層を作るのは難しいという気がする。
で、それをテンプレートポリシー化によって汎用的にしすぎると
今度はコンパイル時間が許容できなくなったり、言語非互換の壁に
ぶちあたったりするという罠。
121:デフォルトの名無しさん
06/10/16 17:59:04
伸びないねこのスレ
C++は詳しくないけど面白そうなのでboost::spiritを学び始めた
どういったことに使おうかなーって思って
BNFの具体的な使われ方を調べようと思ったんだが
ググっても基本的な使い方ばっかりがヒットするorz
正規表現雑技のページとかが理解できたら
幅が広がりそうだが
今度は逆に応用過ぎて理解できない
122:デフォルトの名無しさん
06/10/16 18:19:59
おもしろいけど
ミニ電卓作るとか
自前でXMLパーサ作る位しか思いつかなかった
頭ひねって普通にCで書いた方がコンパイル速度でイライラしなくて済むけど…
123:デフォルトの名無しさん
06/10/16 19:26:36
すでにある程度作ってしまったプログラムの構造を変えずに
おまけ機能を追加するときに、
bindとかは大活躍してる
lambdaは使いこなせてない
124:デフォルトの名無しさん
06/10/16 20:11:14
そこでboost::lambda::bindですよ。
125:デフォルトの名無しさん
06/10/17 00:01:29
boost::interprocessって8月のも10月のもexampleにある奴すら
ビルドできないんだけど、誰かどこに手を入れればいいかわかる人居ます?
126:デフォルトの名無しさん
06/10/17 08:53:42
まあまだ日本で実務でばりばり使ってますって人は少ないんじゃない?
C++上級者が興味を持って、調べてる的な感じだよね。
てか、商用ではJavaかスクリプトになりそうだから、クロスでC++って
需要あんまなさそうとか。。
127:デフォルトの名無しさん
06/10/17 15:02:46
C++を(C++的に)使ってる人自体がまず少なそう。
128:デフォルトの名無しさん
06/10/17 15:33:05
んなアホな
129:デフォルトの名無しさん
06/10/17 16:11:04
lang = c++
lang == c
こういうことか!
…すいません。でも仕事で非標準(かつ多機能)のライブラリの利用を認めてるとこは多くないんじゃない?
130:デフォルトの名無しさん
06/10/17 18:35:35
shared_ptrに感動しますた
さりげなくスレッドセーフになっていてcoolです
131:デフォルトの名無しさん
06/10/17 21:50:45
スレッドセーフだったっけ?
132:デフォルトの名無しさん
06/10/17 21:55:43
参照カウンタの部分はスレッドセーフだな
133:デフォルトの名無しさん
06/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) ;
}
想定外のメモリーを参照しました
で落ちる。何が悪いのだろう。
134:デフォルトの名無しさん
06/10/18 16:38:12
オフィシャルサイトに何が起こったんだろう。
135:デフォルトの名無しさん
06/10/18 16:58:41
SFのipが変わったせいで転送に失敗してるとさ
じきに直るでしょ
136:デフォルトの名無しさん
06/10/18 17:02:39
あと急ぎの用があるなら
URLリンク(boost.sourceforge.net)
137:デフォルトの名無しさん
06/10/18 17:37:55
おお、さんきゅー!
138:デフォルトの名無しさん
06/10/19 00:32:34
>>132
でふぉでそうだったっけ?そしたら遅くないか?
139:デフォルトの名無しさん
06/10/19 00:35:46
スピンロックかも
140:デフォルトの名無しさん
06/10/19 00:49:28
Win32だとInterlockedExchange()あたり使ってるんじゃなかったか。
141:デフォルトの名無しさん
06/10/19 01:43:59
>>138 つ boost/detail/sp_counted_base.hpp
142:デフォルトの名無しさん
06/10/19 03:24:06
>>133
VC8+boost1.35で試したらちゃんと動いたけど
使ってるコンパイラとboostのバージョンは?
143:133
06/10/19 09:30:48
>>133
>>142
VC2003 + boost 1.33.1
です
とりあえずboostのバージョンあげてきます
144:133
06/10/19 09:34:24
URLリンク(sourceforge.net)
boost1.35なんてないよ
145:デフォルトの名無しさん
06/10/19 11:14:37
>>144
CVSの最新版が1.35
146:デフォルトの名無しさん
06/10/19 11:36:49
>133
out = 2.236068
g++(mingw3.4.5)+boost1.33.1 でも問題ないようにみえます。
147:デフォルトの名無しさん
06/10/19 11:43:43
コンパイラか
148:デフォルトの名無しさん
06/10/19 11:46:32
>>133
VC8+boost1.33.1でもちゃんと動くね
149:デフォルトの名無しさん
06/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はひとつだけ)
150:デフォルトの名無しさん
06/10/20 21:04:32
VS2003ではfunction1を初期化
norm_2Functor(&ublas::norm_2<ublas::vector<float> >);
でしか呼べないのね。
objectの意味ねえ
151:デフォルトの名無しさん
06/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);
で実際の関数を代入とか…
ヤッテランネ(ノ`□´)ノ⌒┻━┻
152:151
06/10/20 21:52:00
メンバ関数のswapがないから
swap(norm_2Functor, function1<float, ublas::vector<float> >(&ublas::norm_2<ublas::vector<float> >));
でないと無理か
そもそもできるかどうか知らんけど
153:デフォルトの名無しさん
06/10/20 22:03:06
腐ったコンパイラでなんとかしようという努力は不毛だぜ
154:デフォルトの名無しさん
06/10/20 22:38:40
>>152
そもそも一時オブジェクトをswapの引数にはできん
155:デフォルトの名無しさん
06/10/20 23:17:36
>>154
--->?swap技法?
156:デフォルトの名無しさん
06/10/21 00:24:57
中国人は帰れよ
157:デフォルトの名無しさん
06/10/21 00:43:07
>>155
意味不明
158:デフォルトの名無しさん
06/10/21 00:43:28
>>154
vectorが確保するメモリを要素数ぴったりに合わせるテクニックで
x.swap(std::vector<T>(x));
ってのがあったと思うけど、これもダメなの?
159:デフォルトの名無しさん
06/10/21 00:46:06
一時オブジェクトをswapの引数にするのは何も問題ない(ちゃんとしたコンパイラなら)
160:デフォルトの名無しさん
06/10/21 00:50:03
constでない参照引数に一時オブジェクトはダメじゃなかったっけ?
161:デフォルトの名無しさん
06/10/21 01:01:03
>>158
VC++2003で警告レベルを最高にするとwarningになるな。
162:デフォルトの名無しさん
06/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);は通った。
何じゃこりゃ。
163:デフォルトの名無しさん
06/10/21 02:05:58
>>158
swap技法はstd::vector<T>(x).swap(x);じゃない?
164:デフォルトの名無しさん
06/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なメンバ関数を呼べてしまう。
165:デフォルトの名無しさん
06/10/21 08:54:42
>>158
お前何にもわかってないのな
>>159
馬鹿確定
166:デフォルトの名無しさん
06/10/21 10:01:26
あ、一時オブジェクトに対して非constメンバを呼ぶのはいいのか。
167:デフォルトの名無しさん
06/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の)第二引数を渡し、最終結果を得たいという感じです。
168:167
06/10/21 21:20:16
fをgに変換する方法でも結構です。
よろしくおながいします
169:デフォルトの名無しさん
06/10/21 21:44:22
>>167
どうしてもその変換をしないと駄目?
第一引数が既にあるならそれを部分適用することは簡単なんだが。
170:デフォルトの名無しさん
06/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';
}
171:167
06/10/21 22:05:15
>>169
第一引数の部分適用が簡単なのは承知しているのですが…変換希望です。
172:167
06/10/21 22:23:29
>170
ありがとうございます。やってみます。
173:デフォルトの名無しさん
06/10/21 23:04:05
boost::bindでもいけるね
174:デフォルトの名無しさん
06/10/21 23:10:30
>>173
いってみてよ
175:デフォルトの名無しさん
06/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です
176:デフォルトの名無しさん
06/10/22 01:12:24
>>175
boost::bind(static_cast<int (*)(int, int)>(foo), _1, 100)
177:デフォルトの名無しさん
06/10/22 12:38:25
>>175
class Void{}Void_v;
template<class T1, class T2, class T3=Void>struct select_f;
の特殊化を作ってfooの引数にVoid型があるなしで選択するとかは。
178:デフォルトの名無しさん
06/10/22 12:42:09
>>177
は?
179:デフォルトの名無しさん
06/10/22 12:43:22
>>177
175は関数テンプレートな訳だが..
180:177
06/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);
こんな感じでキャストを使わない方法の案を提供したかったわけですよ。
181:デフォルトの名無しさん
06/10/22 13:39:27
キャストを使わないでそれを使うことに何の意味があるの?
あと、>177のように何の前置きにもなしに言って、理解してくれるエスパーだと思ったの?
182:177
06/10/22 13:55:49
>>181
キャストを使わない。
キャストを使ったときに起きるテンプレート関数の特殊化に対しての曖昧性をなくせる(たぶん)。
> あと、>177のように何の前置きにもなしに言って、理解してくれるエスパーだと思ったの?
タイピングの勢いだ。
183:デフォルトの名無しさん
06/10/22 14:28:28
> キャストを使ったときに起きるテンプレート関数の特殊化に対しての曖昧性
具体例が欲しいな
184:デフォルトの名無しさん
06/10/22 15:58:19
boost::lambdaのunlambdaとprotectがよくわからないんだぜ
185:デフォルトの名無しさん
06/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で使いたい場合
このオーバーロードの解決には結局、関数オブジェクトが手っ取り早いと思います。
186:デフォルトの名無しさん
06/10/22 17:13:50
>>185
それ、曖昧か?
後者は foo() についてポインタ型を扱う場合の特殊化を宣言しているので、
引数の型に応じて定義が使い分けられるだけじゃないの?
↓キャストでもコンパイルできたし。
int a, b;
(static_cast<int (*)(int*, int*)>(foo))(&a, &b);
187:185
06/10/22 17:59:14
>>186
boost::bindは?
188:デフォルトの名無しさん
06/10/22 18:02:01
>>187
boost::bind(static_cast<int (*)(int*, int*)>(foo), _1, &b)(&a);
これぐらい自分で補完しろよ。
189:デフォルトの名無しさん
06/10/22 18:35:54
>>188
コンパイル出来るんだ。へぇー。
190:デフォルトの名無しさん
06/10/22 19:04:01
がんばって早く「ごめんなさい」の言える大人になろーね。
191:デフォルトの名無しさん
06/10/22 19:23:43
ごめんなさい
192:デフォルトの名無しさん
06/10/22 19:40:14
>>190
だって食い下がって逆撫でしていれば
>>188みたいな知識ひけらかし大好き君が無償で色々書いてくれるんだもん。
こういう子は利用しない手はないって。
193:デフォルトの名無しさん
06/10/22 19:57:34
>>192
普通に質問すればいいのに、なんでわざわざそんな手段をとる必要がある?
194:デフォルトの名無しさん
06/10/22 20:19:00
回答をもらえる確率が上がるから。
195:デフォルトの名無しさん
06/10/22 20:25:02
まぁ、スレを客観的に眺めると、知識ひけらかし大好き君は>177と分かるんだけどね。
>176で終わってる質問だし。
それに>188の知識は>176以上のものではないし。
散々引っ張っといて同じモノしか出ないんじゃ、割に合わない。
単純に悔しくなった>177君が利用してやった振りしてるだけ。
196:デフォルトの名無しさん
06/10/22 20:47:18
>>182 に「たぶん」って書いてあるのは、ただの妄想ってことでいいの?
197:189
06/10/22 23:35:55
>>188
ごめん。
だれもつっこんでくれないから寝る前に一言
> boost::bind(static_cast<int (*)(int*, int*)>(foo), _1, &b)(&a);
ちょっと言い訳・・・・「&a」参照の罠に嵌ってました。以上です。では、おやすみ。
198:デフォルトの名無しさん
06/10/25 18:14:32
std::map みたいに扱えて、実はバックエンドがデータベースだなんて
すてきな使い心地のライブラリって無いものでしょうか。
199:デフォルトの名無しさん
06/10/25 19:42:34
boost::graph
と
ASLの adobe::forest
が車輪の再発明ぽい点について
200:デフォルトの名無しさん
06/10/25 20:28:36
ASL かわいいよ ASL
201:デフォルトの名無しさん
06/10/25 23:26:50
あるあ…(ry >198
202:デフォルトの名無しさん
06/10/26 00:02:53
>>201 あるんですか?
なんて言うライブラリか教えて貰えませんか?
今、std::map を boost::serialization でディスクに書き出しているんですが、
かなりデータ量が大きくなってきて、すべてをオンメモリで処理するのが
苦しくなってきました。
203:デフォルトの名無しさん
06/10/26 03:11:33
AllegroCache. これ最強。
204:デフォルトの名無しさん
06/10/26 09:38:05
boostいいね。使っているとスルメみたいに味わい深いわ。
しかし古い設計で組んでいた俺の昔のコードは一体何だったんだと。 orz
205:デフォルトの名無しさん
06/10/26 11:07:28
STLぽい数式処理と数値計算のできるライブラリーってないでしょうか?
せめて多項式か2次式だけでもできると
少し数値計算プログラムが楽になる
206:デフォルトの名無しさん
06/10/26 15:38:08
ASLの
adobe::dictionary_t
はstd::mapよりたくさん要素あつかえるとかtutorialに書いてあった
207:デフォルトの名無しさん
06/10/26 16:19:02
>>198
Berkeley DBでも使え。
208:201
06/10/27 00:43:04
ねーよ
209:デフォルトの名無しさん
06/10/27 08:40:10
>>201>>208
馬鹿?
210:デフォルトの名無しさん
06/10/27 11:05:09
>>198
つlibstldb4
211:デフォルトの名無しさん
06/10/27 16:20:16
>>198
なぜ boost スレへ?
212:デフォルトの名無しさん
06/10/27 20:13:30
std::plus()はreturn a+b;ですが、return a+=b;してくれる関数オブジェクトは無いでしょうか?
手前で作ればいいのですが、boostにあるならそっちをつかいたく。
213:デフォルトの名無しさん
06/10/27 20:57:59
_1 += _2
214:デフォルトの名無しさん
06/10/27 21:06:44
>213
それはコンパイルできんだろ..
215:デフォルトの名無しさん
06/10/27 21:11:33
class MyPlus : public std::plus,
boost::addable< point<T>
, boost::subtractable< point<T>
>
{
MyPlus operator+=(const MyPlus&);
};
でいけたらいいな
216:デフォルトの名無しさん
06/10/27 21:16:44
>>214
using namespace boost::lambda;
217:デフォルトの名無しさん
06/10/27 21:23:35
std::accumulate は?
218:217
06/10/27 21:25:48
あ、関数オブジェクトじゃなかったorz
219:デフォルトの名無しさん
06/10/27 21:30:13
>>216 +=はオーバーロードされていないと思うが。
220:デフォルトの名無しさん
06/10/27 21:38:25
んなあほな。
複合代入演算子はクラスの外からでも多重定義できるのだから、
boost::lambdaで使えないわけが無い。
221:デフォルトの名無しさん
06/10/27 21:42:58
+=は使える。
クラス外から多重定義できるかどうかは関係ないような。
222:212
06/10/27 21:51:39
>>213
できました。ありがとう
223:デフォルトの名無しさん
06/10/27 21:52:36
そうか、_1なんかはそれ自身ラムダオブジェクトだったな。
224:デフォルトの名無しさん
06/10/27 23:28:35
>>219
死ねカス
225:デフォルトの名無しさん
06/10/30 18:40:49
話題が無いな
226:デフォルトの名無しさん
06/10/30 18:54:49
話題ねぇ…
URLリンク(opensource.adobe.com)
今レビューされている、Generic Image Library が通れば、
各種画像サポートが実現されるわけで、非常に期待してる。
227:デフォルトの名無しさん
06/10/30 20:09:51
ほお adobeがopensourceとは..
228:デフォルトの名無しさん
06/10/30 22:09:56
通ればってどういうこと?
229:デフォルトの名無しさん
06/10/30 22:14:22
URLリンク(lists.boost.org)
ちうこと。
230:デフォルトの名無しさん
06/10/30 22:29:06
adobe ASLで
URLリンク(japan.zdnet.com)
ユーザーインターフェイスの自動生成?
本当にできるの?
231:デフォルトの名無しさん
06/10/30 22:31:59
なぜvigraじゃなくてgilなんだ
機能の豊富さからいったらvigraが上だろう
URLリンク(kogs-www.informatik.uni-hamburg.de)
232:デフォルトの名無しさん
06/10/30 22:42:28
>>231
作者がboostに提案したか否かだろ
233:デフォルトの名無しさん
06/10/30 23:51:16
>>230
発表された頃に斜め読みした限りでは
プログラマとデザイナで仕事を分離するという程度の内容だったような?
234:デフォルトの名無しさん
06/10/31 01:39:42
>>232
どの記事だったか忘れたけど
>vigraのほうが好きだけど,vigraは作者が一人だし、gilが採択されたら
>その作者がんばるだろうからいいじゃん
とか書いてあった
235:234
06/10/31 01:41:27
>>234
URLリンク(lists.boost.org)
これこれ
236:デフォルトの名無しさん
06/10/31 03:07:04
やる気のない実装を見るとRejectされそうだけどな
237:デフォルトの名無しさん
06/10/31 12:11:48
URLリンク(lists.boost.org)
VC7.1でコンパイルとおらねえじゃねえかよ
同じとこでこけやがる
238:デフォルトの名無しさん
06/10/31 18:46:57
LinuxのGCCでワイド文字全般がうまく機能しないです。
gcc3.3.6
libstdc++3.3.6
boostでなんとかなりませんか?
wcout << L"てれれのレ";
[****@ **] (沈黙)
239:デフォルトの名無しさん
06/10/31 18:51:43
端末の文字コードが間違っているなんてこと無いよね?
240:デフォルトの名無しさん
06/10/31 19:18:04
ないです。
241:デフォルトの名無しさん
06/10/31 19:24:22
出力をパイプでod -tx1に流して16進で見ても、やはり
[****@ **]./a.out | od -tx1
0000000 (沈黙)
242:デフォルトの名無しさん
06/10/31 19:41:44
スレリンク(tech板:294-304番)
これと同じ問題?
243:デフォルトの名無しさん
06/10/31 19:52:16
gccのバージョン上げろ
244:デフォルトの名無しさん
06/10/31 20:25:51
つまり L をコンパイラがまともに処理してくれていない?
245:デフォルトの名無しさん
06/10/31 20:58:26
そうだよ。-Sでアセンブラ出力みてみ。
246:デフォルトの名無しさん
06/10/31 21:14:59
バージョンの問題なのか?
247:デフォルトの名無しさん
06/10/31 21:39:46
>>2.4.6
--input-charsetが3.4からだから、そうだと思うんだけど。
248:デフォルトの名無しさん
06/10/31 21:40:21
あかん、アンカーがorz
249:デフォルトの名無しさん
06/10/31 23:02:31
>>248 誰がうまいこと言えと
250:デフォルトの名無しさん
06/11/01 01:37:53
function<int (int)> hohe(int x)
{
return boost::lambda::_1 +x;
}
でxを延命させるうまい方法はありますか? 別途関数を作ってbindとか、
plus<int>()にbindあたりはナシで。
251:デフォルトの名無しさん
06/11/01 01:48:57
>>250
延命も何も、λ式に保持されるのはその時点でのxの値で、
xへの参照ではないから、xの寿命を気にする必要はない。
252:デフォルトの名無しさん
06/11/01 04:26:38
gcc3.4 gcc4.0.2で試したらワイド文字関係がすこぶる正常。
結局バージョンの問題か。
253:デフォルトの名無しさん
06/11/01 09:28:50
もう少し前は日本語のみのワイド文字対応が入っていたんだけど、
3.3→3.4辺りで国際化した。あなたの使ったのは狭間の具合い悪いバージョン。
254:デフォルトの名無しさん
06/11/01 10:49:17
GUIライブラリのboost取り込みってどうなった?
255:デフォルトの名無しさん
06/11/01 11:27:37
そんな激しくプラットフォーム依存な物を
標準ライブラリに入れようとしているのか。
もしかして curses みたいなものか?
256:デフォルトの名無しさん
06/11/01 11:55:13
boost mailing listで
さっきbug fixしてupした
とかいってるやつはcvsのバージョンのことなのかな
257:デフォルトの名無しさん
06/11/01 17:30:47
lexical_cast.hppを見てみたら、半年くらい前に見たときと
大幅に違ってるんだけど、何か変わったの?
258:デフォルトの名無しさん
06/11/01 21:59:04
カレントプロセスのカレントディレクトリを取得する方法
ってありますか?
GetCurrentDirectoryみたいなやつ。
259:デフォルトの名無しさん
06/11/01 22:09:37
>>255
お前の中でThreadやfilesystemは一体なんなの?
260:デフォルトの名無しさん
06/11/01 22:57:40
そんなには激しくないプラットフォーム依存な物
261:デフォルトの名無しさん
06/11/02 01:13:53
>>258 boost::filesystem::current_path()
262:デフォルトの名無しさん
06/11/02 01:30:36
それLinuxだと実行ファイルのパスじゃなくて
userのカレントディレクトリを返しちゃうん
だよね。
これLinuxの仕様くさいから仕方ないか。
263:デフォルトの名無しさん
06/11/02 01:35:20
>>262
どこから実行ファイルのパスの話が出てきたんだ?
264:デフォルトの名無しさん
06/11/02 01:37:59
>>262
こいつアホすぎww
265:デフォルトの名無しさん
06/11/02 11:06:53
>>262
Windowsも似たようなもの
>>258の意図は知らないがcurrent_pathはたいてい役に立たない
266:デフォルトの名無しさん
06/11/02 11:07:31
>>257
最適化
数字は自前でパースするようになった
267:デフォルトの名無しさん
06/11/02 11:33:40
他Cスレで聞いても誰も答えてくれなかった
Cで行列演算といえば
LAPCK
boost::numeric::ublas
あたりが定番だけど
統計計算でお勧めは?
今boostで審査中や過去にrejectされたものでもいいので誰か教えて
使いたい機能は
単純に共分散行列を計算
正規分布に関係したいろいろな計算
できれば
kai^2 test
t-test
とかちょっと高度なこともしたい。
268:デフォルトの名無しさん
06/11/02 12:49:28
>>266
でも未だに1e+10とかは扱えないんだなw
269:デフォルトの名無しさん
06/11/02 12:57:56
boost::serialization で NaN (+inf とか -inf とかも)を
シリアライズできないのは痛い。
270:デフォルトの名無しさん
06/11/02 14:18:37
boostのclass名が
ClassName
じゃなくて
class_name
になってるのが気持ち悪い
なんでこんな命名規則になった
271:デフォルトの名無しさん
06/11/02 14:28:12
C++の標準ライブラリと同様の命名規則を採用したから。
272:デフォルトの名無しさん
06/11/02 16:40:38
識別子をなんでもかんでも小文字にしたくなって困る
273:デフォルトの名無しさん
06/11/02 17:13:19
>>267
boostじゃないけど
liboctave
libRmath
libgsl
あたり
274:デフォルトの名無しさん
06/11/02 23:31:11
次期標準でも concept 名だけは大文字になりそうだな
275:デフォルトの名無しさん
06/11/02 23:32:09
>>273
thx
liboctave はmatlab使いには便利そう
libRmath
本当の統計屋さんはやっぱりRを使うのだろうか
R使ったことない
liggsl
こんなのあったんだね。
でも多項式演算関係以外は既存libとかぎりなく一緒
276:デフォルトの名無しさん
06/11/03 02:10:07
>>270
おまえさんは標準C++ライブラリも気持ち悪いって言うんだろうな。
実際そういう人が結構多いようだ。
277:デフォルトの名無しさん
06/11/03 03:05:14
Javaに毒されすぎ
278:デフォルトの名無しさん
06/11/03 03:20:37
このスレ的には C++ に毒されてる連中が多いから
Java のメソッド名ナニアレ気持ちわるーい、となるのが正しい
279:デフォルトの名無しさん
06/11/03 03:40:40
むしろHaskellやPythonなんだが
280:デフォルトの名無しさん
06/11/03 03:47:52
HaskellもPythonもClassNameだな。
281:デフォルトの名無しさん
06/11/03 03:50:44
すべて小文字な命名法はlispを思わせる。
282:デフォルトの名無しさん
06/11/03 04:31:57
lispはハイフン区切りで全部大文字(CLASS-NAME)だろ。
283:デフォルトの名無しさん
06/11/03 08:11:55
というか(強制した時以外)大文字小文字の区別がない。> Lispのシンボル
284:デフォルトの名無しさん
06/11/03 12:34:11
正確には「Common Lispは・・・」と言うべきだろう
285:デフォルトの名無しさん
06/11/05 03:31:58
boostって Subversionではアクセスできないの?
cvsのみ?
286:デフォルトの名無しさん
06/11/05 03:35:19
>>285
前から話は出てるんだけどねぇ。
次のリリースの後にしようとして、リリースが延び延びになってる気配。
ちゃんと ML 漁れば、他に理由があるのかもしれないけど。
287:デフォルトの名無しさん
06/11/05 19:38:50
lambda_functor<U>のアドレスってどうしたらえられますか。
288:287
06/11/05 19:40:40
たとえば
(_1+_2)のようなラムダがあった場合
このlambda_functorのアドレスが知りたいのです。
289:デフォルトの名無しさん
06/11/05 19:43:31
そんなものは存在しません
290:デフォルトの名無しさん
06/11/05 20:40:51
>>289
無理か。諦めます。レスありがとう。
291:デフォルトの名無しさん
06/11/05 21:10:34
md5やsha1を計算するライブラリありますか?
crcはあるようですが
292:デフォルトの名無しさん
06/11/05 21:26:13
md5はそのままソース引っこ抜いて使えるようになってた。
この手の参照透過性のある関数を
特にパラメタライズするメリットは感じないが。
293:デフォルトの名無しさん
06/11/05 21:28:38
MD5はRFCにあるソースはK&R式の関数宣言なんでC++としてコンパイルしようとすると失敗するはず。
294:デフォルトの名無しさん
06/11/05 21:28:43
>md5はそのままソース引っこ抜いて使えるようになってた。
どこ?
295:デフォルトの名無しさん
06/11/05 21:30:11
RFC
296:デフォルトの名無しさん
06/11/05 21:30:37
>>295
ありがとう
297:デフォルトの名無しさん
06/11/05 21:34:49
Boost には無いので
URLリンク(sourceforge.net)
とか
URLリンク(botan.randombit.net)
とか
URLリンク(opensource.adobe.com)
URLリンク(opensource.adobe.com)
あたりで
298:デフォルトの名無しさん
06/11/05 21:38:29
>>293
コンパイルはそのまま通ったと思う。
数年前のことなので記憶が不鮮明だが、GNUのbinutilsから引っこ抜いた気がする。
299:デフォルトの名無しさん
06/11/06 00:37:42
>>293
そんなの1分で直せるじゃん
300:デフォルトの名無しさん
06/11/06 14:32:48
まだ特定してないんだけど、spiritのどこかで
using namespace std; の記述があるみたいですね。
(std::coutが名前空間を指定せずに使えてしまった)
これってちょっと問題あるような…。
301:デフォルトの名無しさん
06/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;
302:デフォルトの名無しさん
06/11/06 14:42:18
>>267
>>273
>>275
こんなのあったんだね
Boost.MathToolkit
URLリンク(www.johnmaddock.co.uk)
URLリンク(lists.boost.org)
303:デフォルトの名無しさん
06/11/06 15:26:41
>>300
>>301
>./iterator/impl/file_iterator.ipp
これがまずい.
他の使い方は関数内なので問題ないし,意図的というか必要な using directive.
304:デフォルトの名無しさん
06/11/06 15:30:51
boost mailing list に
新しいライブラリーをaccept するかのreviewが投稿されてるけど
ただのユーザーとしてのreviewを投稿してもいいのかな?
305:デフォルトの名無しさん
06/11/06 17:21:32
boostの中に
ClassNameって命名規則つかってるの1つもないのかな
例外なく
class_name
に修正されるのかな
306:デフォルトの名無しさん
06/11/06 17:25:32
大文字って、そこだけ目立つから、見にくくなる。
あと長すぎるシンボルも関数の引数のところで行が折り返して見にくくなる。
boostってほどほどで良い感じ。
307:デフォルトの名無しさん
06/11/06 17:34:22
ublas があるのに
boost.glasとかわけわかんね
URLリンク(glas.sourceforge.net)
308:デフォルトの名無しさん
06/11/06 20:27:15
>>305
Boost にはガイドラインがあって、そこでコーディングルールはある程度決まってる。
URLリンク(boost.org)
・クラス名や、メソッド名は class_name や method_name みたいにすること。
・テンプレートパラメータは TemplateParameter みたいにすること。
・分かりやすい名前にすること。
・マクロは MACRO_NAME みたいにすること。
309:デフォルトの名無しさん
06/11/06 20:29:55
間違えた。
×マクロは MACRO_NAME みたいにすること。
○マクロは、すべて大文字で、BOOST_ からはじめること。
だな。
310:デフォルトの名無しさん
06/11/06 22:27:44
>>304
投稿するのは自由だろう。「ただのユーザーとして」というのはちょっと引っかかるが。
不満を述べるだけじゃなくて、代案か、代案が出せないと考える理由を出すべきだろうね。
まぁ筋が通ってなければスルーされるだけ。何か考えがあるなら投稿しとけばいいと思うよ。
311:デフォルトの名無しさん
06/11/07 08:21:16
「ただのユーザーとして」
っていう表現にどんな意味がこもっているかにもよるよね。
何となく
「恥かきそうだったり辛そうだったりしたら、いつでも綺麗にバッくれて
俺の人生においてすべてを"なかったこと"にできる道を確保したまま」
という意味な気がするんで、同じく引っかかる。
312:デフォルトの名無しさん
06/11/07 08:58:36
>>311 は一生引っかかっていればいいと思うよ。
何かに。
313:デフォルトの名無しさん
06/11/07 09:29:40
ドンピシャなら絶対噛み付いてくるだろうなと期待はしていたけどw
314:デフォルトの名無しさん
06/11/07 09:31:05
>>312に言葉の重みを感じてちょっとワロタ
315:デフォルトの名無しさん
06/11/07 10:55:34
まぁよっぽど悔しかったんだろ。
316:デフォルトの名無しさん
06/11/07 19:41:42
>>226
GIL has been accepted as a boost library.
URLリンク(lists.boost.org)
317:デフォルトの名無しさん
06/11/07 19:51:41
>>316
通ったのか!
318:デフォルトの名無しさん
06/11/07 22:12:22
>>300 の問題は Spirit 1.84 だと修正されてた.
319:デフォルトの名無しさん
06/11/08 01:18:37
>>316
accepted
なのはいいけど肝心の GILのホームページが見れない
320:デフォルトの名無しさん
06/11/08 10:03:45
>>319
今は見れるようになってるね
321:gil
06/11/08 11:30:18
acceptの感動で気絶してました。
322:デフォルトの名無しさん
06/11/08 12:06:06
>>321 そのわりには Latest news が更新されていないじゃないか。
URLリンク(opensource.adobe.com)
323:デフォルトの名無しさん
06/11/08 12:29:56
gil頻繁に更新されてるみたいだけど
どこが変わったか書いてないんだよね
324:デフォルトの名無しさん
06/11/09 01:40:50
GILをVS2003で早速使ってるけど
fatal error C1204: コンパイラの制限 : 内部構造がオーバーフローしました。
とかおきるのはVS2005に乗り換えればなんとかなるのかねえ
325:デフォルトの名無しさん
06/11/09 10:16:50
で、1.34 はいつリリースなのかね?
326:デフォルトの名無しさん
06/11/09 10:32:21
今店出ました
327:デフォルトの名無しさん
06/11/09 11:56:38
延びないうちによろしく。
328:デフォルトの名無しさん
06/11/09 14:18:57
boost::filesystem::pathのコンストラクタではパスを表す
文字列を与えますが、windowでドライブ名を含めたパスを
扱うにはどうすればよいでしょうか?
単純に
path("C:\hoge");
とすると落ちてしまいます。
329:デフォルトの名無しさん
06/11/09 14:28:15
\\
330:デフォルトの名無しさん
06/11/09 14:51:34
path::default_name_check( &native );
331:デフォルトの名無しさん
06/11/09 16:09:25
name_check関数を設定すればえがったんですね。
ありがとうごぜーますた。
332:デフォルトの名無しさん
06/11/09 16:34:13
URLリンク(www.boost.org)
path( const char * src, name_check checker )
こういうコンストラクタがあるので、
コンストラクトのときだけ指定してやればいいんだぜ?
path p( "c:", native );
p /= "/foo";
assert( p.string() == "c:/foo" );
333:デフォルトの名無しさん
06/11/09 16:36:30
おっと、名前空間は適当につけてくれ?
334:デフォルトの名無しさん
06/11/09 19:27:37
それは見て分かっただよ。
でも、あんがとさん。
335:デフォルトの名無しさん
06/11/10 16:09:31
boost::graph
と
boost::numerics::ublas
を駆使した
graphical_modeling ( とりあえず partilce filterだけインプリメント)
ってパッケージ作ったらboostにアクセプトされると思うのだけど
どう思う?
336:デフォルトの名無しさん
06/11/10 16:31:12
まず形になってから言えばいいんでないかな?
337:335
06/11/10 16:41:43
>>336
死んでしまったらしいプロジェクトの再活性のために
メンバー募集してるような感じなので
URLリンク(sourceforge.net)
やる人が増えたらいいなって、それだけです。
338:デフォルトの名無しさん
06/11/15 14:23:40
>>324
SP1で解決されたと書いてるがどうだろう
339:デフォルトの名無しさん
06/11/16 22:12:55
boostにMFCのTRACEマクロと同等のものありませんか?
340:デフォルトの名無しさん
06/11/17 10:21:48
>>89
>>90
すっごい亀なんだけど,VC++8 と STLport 5.1 と
Boost 1.33.1 は完全には共存できないことが分かった.
URLリンク(d.hatena.ne.jp)
ここに書かれている方法を使えば,wave 以外のライブラリは
構築できる.でも,wave だけはどうやっても無理.
なぜかというと,spirit の tree_node<T> の定義が問題なんだ.
tree_node<T> が中で vector<tree_node<T> > を使っていて,
__has_trivial_constructor の引数にできないと怒られる.
ということは,spirit も使えないことになるわけだ.
VC++8 の人はおとなしく STLport 5.1 を諦めるか,
もしくは STLport の中のコンセプトチェックを外すか
しないと駄目だと思う.
341:デフォルトの名無しさん
06/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));
342:デフォルトの名無しさん
06/11/20 21:05:43
multi_arrayってコンストラクタ以外で要素数を変更できないのですか?
343:デフォルトの名無しさん
06/11/21 02:34:42
C++相談室 part54 から飛び火。
スレリンク(tech板:611-622番)
boost の導入が却下される理由を教えてください。
344:デフォルトの名無しさん
06/11/21 02:50:48
>>343
オブジェクトコードにスタンプが入っちゃうから。
345:デフォルトの名無しさん
06/11/21 09:31:14
まずSTLの導入が却下されてるからな
346:デフォルトの名無しさん
06/11/21 10:55:33
それって事実上のC++ダメ宣言?
347:デフォルトの名無しさん
06/11/21 12:58:06
>>343
VS2003でSP1あてないとコンパイル通らないコードがたまにあるから
348:デフォルトの名無しさん
06/11/21 13:02:39
>>343
コンパイルが遅いからとかw
いくらでも理由は考えられるし、わざわざここへチクりに来るような話題とも思えない。
349:デフォルトの名無しさん
06/11/21 16:56:47
URLリンク(www.boost-consulting.com)
boostって儲かるのかな
boostのreviewも裏でなにかありそうなかんじだ
GILとvigraの争いもなんか違和感がなくもなかった
350:デフォルトの名無しさん
06/11/22 10:17:52
STOP! 探偵ごっこ
351:デフォルトの名無しさん
06/11/22 18:04:13
boost::tokenizer で切り分けた個数を得る方法はありますか?
(イテレータでループしてもとめるのではなくて。。)
352:デフォルトの名無しさん
06/11/22 18:47:33
>>351
tokenizer はイテレータを移動するたびに区切りを探す仕様だから無理。
353:デフォルトの名無しさん
06/11/22 18:52:00
個数カウント関係は
boost::accumulators
の人に要望したら実装してくれるかも
354:デフォルトの名無しさん
06/11/22 19:08:11
>>350
探偵ごっこじゃなくて
vigraからGILに乗り換えるかで悩んでるんだよ
boostのreviewとやらが信用できるかどうかが、大きなファクター
なんか怪しいって思ってるやつが結構いるんだったら
boostのreviewを無視してvigraを使い続ける
355:デフォルトの名無しさん
06/11/22 23:52:45
vagina
356:デフォルトの名無しさん
06/11/23 00:07:40
viagra
357:デフォルトの名無しさん
06/11/23 01:27:31
Caverta で十分。
358:デフォルトの名無しさん
06/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
359:デフォルトの名無しさん
06/11/24 12:37:19
VC6は偽C++だからなぁ・・・
360:デフォルトの名無しさん
06/11/24 13:19:08
>>359
6.0じゃもう古過ぎてダメですか?
361:デフォルトの名無しさん
06/11/24 14:02:04
C++じゃないしな
VC8EE使った方がいいだろ
362:デフォルトの名無しさん
06/11/25 00:57:13
vc8でコンパイル通らないのと組み合わせてる場合はどうしたらいいんだろう
コンパイル通らないコードはdllにして読むことにするとかできるのか?
363:デフォルトの名無しさん
06/11/25 01:32:12
VC8でコンパイル通らない時点でまともなC++じゃない可能性が高いわけだが
DLLなどの方法で分離することはもちろん可能。(MSVCRTの衝突に注意)
364:デフォルトの名無しさん
06/11/26 16:48:43
あんまり関係ないことかも知れないけど、uBLASってなんて読んだらいいの?
うぶらす?マイクロブラス?
365:デフォルトの名無しさん
06/11/26 18:31:11
あっぷれカス
366:デフォルトの名無しさん
06/11/26 20:01:25
>>364
俺は発音しなければならない状況に立たされたことがないので不明
367:デフォルトの名無しさん
06/11/27 09:38:25
誰か俺にSFINAEの発音プリーズ
368:デフォルトの名無しさん
06/11/27 10:00:39
自分としては「えすふぁいなえ」などと変な読みをしてるけど
他人と口頭でSFINAEについて話したことがないのでどう言っていいかわからん
369:デフォルトの名無しさん
06/11/27 10:20:16
すふぃなぇ
370:デフォルトの名無しさん
06/11/27 10:46:18
エス 吹く アナル
371:デフォルトの名無しさん
06/11/27 11:34:46
ボーストが標準でついているコンパイラはありませんか??
372:デフォルトの名無しさん
06/11/27 12:12:46
>>365
URLリンク(uprecus.jp.land.to)
373:デフォルトの名無しさん
06/11/27 12:13:51
,.-─ ─-、─-、
, イ)ィ -─ ─- 、ミヽ
ノ /,.-‐'"´ `ヾj ii / Λ
,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
ノ/,/ミ三ニヲ´ ゙、ノi!
{V /ミ三二,イ , -─ Yソ
レ'/三二彡イ .:ィこラ ;:こラ j{
V;;;::. ;ヲヾ!V ー '′ i ー ' ソ
Vニミ( 入 、 r j ,′
ヾミ、`ゝ ` ー--‐'ゞニ<‐-イ
ヽ ヽ -''ニニ‐ /
| `、 ⌒ ,/
| > ---- r‐'´
ヽ_ |
ヽ _ _ 」
ウプレカス [ uBLAS ]
( 西暦一世紀前半 ~ 没年不明 )
374:デフォルトの名無しさん
06/11/28 02:00:21
ublasのsolveで使われるlower_tagやupper_tagはどのような意味があるのですか?
ドキュメントからは見つけられませんでした。
375:デフォルトの名無しさん
06/11/28 02:16:43
>Solves a system of linear equations with triangular form, i.e. A is triangular.
とあったので、Aは三角行列でなければならず、そのタイプを示すのがtagでしょうか?
もしそうなら結局LU分解しなきゃダメなのであまり使えないですねこれ・・・
376:デフォルトの名無しさん
06/11/28 02:34:33
atlas::cholesky_factor
のように三角行列しかうけつけない関数がある
普通の行列の上半分つかってを三角行列にするときに使うのが
upper_tag
377:デフォルトの名無しさん
06/11/28 06:42:02
>>364
ユーブラスじゃね?
378:デフォルトの名無しさん
06/11/28 12:51:52
>>377
>>373
379:デフォルトの名無しさん
06/11/29 14:39:30
Geometry Library ってひょっとして複数の候補があるのか?
URLリンク(boost-consulting.com)
いったいどれを使ったらいいんだ
380:デフォルトの名無しさん
06/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...
と表示されて終了してしまいます
どうしてでしょうか?どなたか解決策を教えてくださいお願いします
381:デフォルトの名無しさん
06/11/29 23:29:29
sdkへのパス通して↓でうちはいけた(いま使ったことのある範囲ではだけど
>bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install
エラーもエラーで長いから憂鬱だよな
382:デフォルトの名無しさん
06/12/01 22:51:51
>>381ありがとうございます
sdkへのパスとは
C:\Program Files\Microsoft Visual Studio 8\SDK
のことでしょうか?
パスを通すというのは、システム環境変数のpathに追加するということですよね?
色々追加してやってみましたが、結果は変わりませんでした
383:デフォルトの名無しさん
06/12/01 23:15:17
URLリンク(www.boost.org)
vsvars32.batを編集する必要がある
384:デフォルトの名無しさん
06/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の通りです
385:デフォルトの名無しさん
06/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
何でやってもダメということは何か基本的な設定が出来てないのでしょうか?
386:デフォルトの名無しさん
06/12/03 01:50:50
vcvarsall.batの
@set INCLUDE=
@set LIB=
の部分に;で区切って追加する
387:358
06/12/03 07:12:58
VC++6.0、IDEも軽くていいんだけどなぁ。
MFCのランタイムも普及してて、Win98以降のOSなら何でも動くし。
でも、そろそろ新しいバージョンに移行した方がいいのかもね…
考えてみれば、8年前の開発環境なんだよね… >6.0
388:デフォルトの名無しさん
06/12/03 07:14:27
テンプレートの対応もアレだしね。6.0
389:デフォルトの名無しさん
06/12/03 18:33:22
phoenix::bindがspirit::parseのオーバーロードを解決してくれない・・・
lambda::bindならいけるのに・・・
390:デフォルトの名無しさん
06/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の基本を勉強して再挑戦してみます
スレ汚ししてすみませんでした
それから答えてくれた皆さんありがとうございました
391:デフォルトの名無しさん
06/12/03 22:32:02
自分は@setにboostのパスも通してるな
必須なのかは忘れた
よくがんばった。もうこれでいいじゃない
URLリンク(www.boost-consulting.com)
392:デフォルトの名無しさん
06/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側の問題でしょうか?
それともコンパイラオプションが何か足りないのでしょうか?
393:デフォルトの名無しさん
06/12/06 18:33:41
URLリンク(www.kmonos.net)
これだけでは、boost.testの便利さが今ひとつ理解できない
394:デフォルトの名無しさん
06/12/06 19:31:20
CPPUNITでいいんじゃね
395:デフォルトの名無しさん
06/12/06 21:51:02
bjamでいろんなコンパイラ上で一気にテストできる
問題はbjamの使い方がよく分からないこと
396:デフォルトの名無しさん
06/12/08 15:24:39
scoped_arrayはvectorと違ってソートできない?
397:デフォルトの名無しさん
06/12/08 15:47:25
>>396
なんで?
398:デフォルトの名無しさん
06/12/08 16:40:54
begin(),end()が無いから
399:デフォルトの名無しさん
06/12/08 16:49:42
ポインタ渡せばいいじゃん。
ランダムアクセスイテレータの用件満たしてるよ。
400:デフォルトの名無しさん
06/12/08 17:02:05
了解
ありがとう
401:デフォルトの名無しさん
06/12/08 17:32:49
math.Geometryの下がカオスで試そうという気自体おきない
しかしGeometry関係の処理はしたい。
boost以外を探すべきか
402:デフォルトの名無しさん
06/12/08 20:01:44
>>398
つmake_iterator_range
403:デフォルトの名無しさん
06/12/10 21:09:05
επιστημη氏ってboostに関して何か書いてたっけ?
MFCからSTLに関しては、いろんな所に書き散らかしてるけど
404:デフォルトの名無しさん
06/12/10 21:43:46
>>403
なんの脈絡もなく突然どうした? スレを間違えたのか?
とりあえず、例の翻訳プロジェクトには参加してるみたいだけど。
URLリンク(sourceforge.jp)
405:デフォルトの名無しさん
06/12/11 07:05:53
>いろんな所に書き散らかしてるけど
を見て、さらにスレ違いな質問を思いついた。
boost使いってPC系ではどんな雑誌読んでる?情報収集はネットのみ?
406:デフォルトの名無しさん
06/12/11 07:18:35
「boost使い」と名乗っていいレベルかどうか自信ないけど、
俺は雑誌は一切読まない。
いや、別に「絶対読まねえぞ」みたいなこだわりがあるわけじゃないけど。
407:デフォルトの名無しさん
06/12/11 10:41:12
最近はPC系というかプログラミング系の雑誌自体あんま見かけないしな
boost devel や c++.moderated つまみ食いしてた方がよほど有益
408:デフォルトの名無しさん
06/12/11 10:49:26
日経ソフトウェアとインターフェースと、あとなんかあったっけ?
409:デフォルトの名無しさん
06/12/11 19:31:43
俺もプログラミング系の雑誌は読まんな。
bitとか良い雑誌があった頃が懐かしい。
410:デフォルトの名無しさん
06/12/11 21:15:10
それこそ
boost.spritで遊ぼう!
みたいな特集を組むある意味アホな雑誌がでてたら買う
411:デフォルトの名無しさん
06/12/11 21:22:51
正規表現特集でboost.regexがちょこっと紹介されるのが関の山だな。
412:デフォルトの名無しさん
06/12/11 22:16:53
C/C++ Users Journalが合流したDDJとか。
URLリンク(www.ddj.com)
413:デフォルトの名無しさん
06/12/11 22:56:30
boostってlokiのtypelistに相当するやつあります?
414:デフォルトの名無しさん
06/12/11 22:58:44
>>413
mpl::list
415:デフォルトの名無しさん
06/12/11 23:30:11
thx
416:デフォルトの名無しさん
06/12/12 00:42:18
拡張子hppって古めかしい気がするのは俺だけ?
#include で拡張子なし <boost/shared_ptr> って動きは無いのだろか?
417:デフォルトの名無しさん
06/12/12 01:17:54
>>416
かつて、標準化委員会は理想に燃えていました。
拡張子などという原始的なもので、
ファイルの種類を表すべきではないという強い意志がありました。
はて、2006年になっても、その理想は実現されそうにないのですが。
418:デフォルトの名無しさん
06/12/12 01:31:13
どっちでもいいけど、標準C++ライブラリと違うのは気持ち悪い
419:デフォルトの名無しさん
06/12/12 02:27:45
>>417
そのへんって確か、過ちを認めて今からでも元に戻そうって動きもなかった?
420:デフォルトの名無しさん
06/12/12 03:08:53
>>419
今後出る標準ライブラリに拡張子をつけられたとしても。
いまある標準ライブラリはそのまま残すしかないでしょ。
たとえこんなものでもね
// これはC99のiositreamとの下位互換性のためにあるぜ。
//実体はiostream.hな。
#include <iostream.h>
421:デフォルトの名無しさん
06/12/12 03:10:50
>>419
それは、たぶんこれだろう。ちょっと違う。
URLリンク(www.open-std.org)
"We should accept the fact that we made a serious mistake and rectify it, however belatedly, ..."
422:デフォルトの名無しさん
06/12/12 03:11:31
拡張子ないとエヂタとか使うとき後からシンクタック指定するの面倒やん
423:デフォルトの名無しさん
06/12/12 07:58:42
俺は、拡張しありでいいが、.cppと.hppはどういうわけだか好きになれない。
.Cと.hにしている。大文字小文字区別しないファイルシステムだと問題の種になることもあるが。
424:デフォルトの名無しさん
06/12/12 08:03:12
>>423
なんで技術的デメリットを無視してまで理由のはっきりしない好みを優先させるの?
425:デフォルトの名無しさん
06/12/12 09:25:24
趣味だから
426:デフォルトの名無しさん
06/12/12 09:48:40
C++ でしか使えないようなヘッダなのに .h を使うのは嫌いだナ
(Cからでも使えるようなヘッダなら .h で問題ない)
.cpp / .hpp とか、 .cc / .hh とか、ちゃんと名前が揃っていればまあ良いんじゃないかと
427:デフォルトの名無しさん
06/12/12 09:50:51
俺は .h / .cpp だな。
不揃いじゃね? と言われれば、うーん、確かにそうなんだが。
428:デフォルトの名無しさん
06/12/12 13:04:07
>>427
俺もそれ。hppはなんか嫌い。
429:デフォルトの名無しさん
06/12/12 13:05:33
>>416
せっかく標準がユーザー側のヘッダとぶつからない配慮してくれてんのに、
同じルールにしたら意味ないじゃん
430:デフォルトの名無しさん
06/12/12 17:13:15
>>422
#includeで指定するヘッダ名は実際のファイル名である必要はない、少なくとも標準のものは。
たとえばBorland C++では適当な拡張子を付けたファイルをインクルードしている。
431:デフォルトの名無しさん
06/12/12 18:23:17
>>430
理想と現実は違うよ。
432:デフォルトの名無しさん
06/12/12 18:39:42
え? 理想の話をしてるんじゃないの?
433:デフォルトの名無しさん
06/12/12 20:12:44
理想じゃなくて規格の話だろ
434:デフォルトの名無しさん
06/12/12 21:18:39
理想の規格はどうあるべきかという話だよん
435:デフォルトの名無しさん
06/12/12 23:34:22
という夢を見た
436:デフォルトの名無しさん
06/12/13 18:06:28
testプログラムを1つ与えると
交差検定も自動でやってくれるようなプログラムがあったはずなのだけど
boostの中にはないの?
437:デフォルトの名無しさん
06/12/15 19:19:14
>>380
いまさら亀レスで悪いんだが、
俺も同じエラーで失敗しとります。
コマンドラインのログ追っかけていたら、
MKDIRコマンドで失敗しとりました。
"MKDIR"が"MKDIR1"になってて、ディレクトリを作れないようです。
最初に
stageディレクトリを作れません。→死亡
lack of stage なのでlibs作れません →死亡
で以降すべてエラー。
俺はmsvc6.0なんで>>391も使えないし・・・
どこを直せばいいか分からぬ、、
誰か助けてorz
438:デフォルトの名無しさん
06/12/15 19:24:24
丸二日スレストってるので僭越ながらageさせて頂きます
439:デフォルトの名無しさん
06/12/15 22:17:27
vc8はタダなんだから落としてこいよ
440:デフォルトの名無しさん
06/12/15 22:17:45
bjamのバージョンを下げたらビルドできました
でも最新のでやりたかったです。
誰かエロい人いたら
bjamの3.1.13-1
で出来るか試してみてくれませぬか、
3.1.11-1だと上手くいきました。
441:デフォルトの名無しさん
06/12/15 22:44:19
そこまでしてVC6にしがみつく理由がわからん。
442:デフォルトの名無しさん
06/12/15 22:54:37
gccもあるし、8にもそのうち乗り換えるさ…
つかコンパイラの話しじゃなくて、bjam3.1.13-1が動かなくない?
って話しで
443:デフォルトの名無しさん
06/12/15 23:16:56
プリコンパイル済みヘッダー と boost.testって一緒に使えないのかな
444:デフォルトの名無しさん
06/12/15 23:44:45
VC6は(今の基準では)C++として腐ってるからBoost向きではない
445:デフォルトの名無しさん
06/12/15 23:53:02
VC6は2038年問題とかだけでも捨てるべきだろ。
少なくとも業務で使ってるってのならその会社は潰れてしかるべき。
ぜひ潰れて欲しい。
446:デフォルトの名無しさん
06/12/16 01:39:05
Cとしてしか使わないならVC6最高じゃん
447:デフォルトの名無しさん
06/12/16 01:49:43
>>466
同感!
最近 STL 使おうって思ってやっと 2005 に切り替えました!
448:デフォルトの名無しさん
06/12/16 02:23:20
激しくスレ違いで申し訳ないが…
8だとテンプレートをネスト出来たりするかね?
ならば今すぐ買いに行くさ。
449:デフォルトの名無しさん
06/12/16 02:34:38
するする。今すぐ買いに行け。
450:デフォルトの名無しさん
06/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 ; } ;
451:デフォルトの名無しさん
06/12/16 02:39:46
まじかよ…
部分特殊化だけかと思ってた…
今すぐ買いに行くわ
確かファミマにあったはず。アカデミックだけど。
452:デフォルトの名無しさん
06/12/16 02:44:32
あ~、後者ですわ。
デフォルト指定は無理なのかぁ…、
まぁいい機会だし買いに行きま。
453:デフォルトの名無しさん
06/12/16 02:44:41
>テンプレートテンプレートパラメータのデフォルト引数
そんな言語機能があったなんて!
いったいなんのためにあるんだろう。
454:デフォルトの名無しさん
06/12/16 03:29:27
メタ関数として使えそうなんで用意したけど実際にはいまいち使えなかった、
という感じか?>テンプレートテンプレートパラメータ
455:デフォルトの名無しさん
06/12/16 03:47:12
いや、テンプレートテンプレートパラメタには意味があると思うんだが、
テンプレートテンプレートパラメタ「の」デフォルト引数ってなかなか出てこない発想じゃないだろうか。
ふつうの関数だと
void f(int (*g)(int = 7)){}
不正みたいだし。
456:デフォルトの名無しさん
06/12/16 03:50:58
普通に使いますから。
テンプレートクラスでデフォルト引数が使えるのは(allocatorなど)当たり前のことだし、
テンプレートの引数に、テンプレートクラス使えないのは不便で仕方がない。
457:デフォルトの名無しさん
06/12/16 06:04:31
そこで、boost.preprocessorですよ。
458:デフォルトの名無しさん
06/12/16 06:06:57
え、VC8でも
hoge<hage<int>>;
みたいのはできないの?
デフォルト引数を定義しなければ使えるってこと?
459:デフォルトの名無しさん
06/12/16 06:15:31
>>458
シンタックスエラー!
460:デフォルトの名無しさん
06/12/16 06:40:06
uho!
461:デフォルトの名無しさん
06/12/16 06:46:08
>>457
preprocessorで何ができると?
462:デフォルトの名無しさん
06/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;
こういうことをやりたいんですが、もっとシンプルに記述できる方法はないでしょうか?
463:デフォルトの名無しさん
06/12/17 06:55:37
プリプロセッサを使ってもシンプルにはならないだろうし、読みにくくなるだけかと。
そもそも何でそういうことがしたいのか分からない。
渡されたコンテナがconstでなければ、書き換える。
constであれば書き換えないという、奇妙な関数でも書きたいのだろうか。
464:デフォルトの名無しさん
06/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] を適用
465:デフォルトの名無しさん
06/12/17 23:17:11
>>464
うわぁ、Boost.Rangeチョー便利ナリ・・・
boost::sizeとかあるし。sizeof(a) / sizeof(a[0])とかしてたのが馬鹿みたいだ。
いいものを教えてもらった、ありがとう。
466:デフォルトの名無しさん
06/12/18 08:19:06
templateもろくに通らないからVC6から2005に切り替えたよ
467:デフォルトの名無しさん
06/12/18 15:00:59
今度はワイド文字ストリームがろくに使えないVC 2005。
468:デフォルトの名無しさん
06/12/18 16:09:31
VC 2005 SP1で直る・・・はず・・・だといいな・・・