【C++】Boost使い集まれ!
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNGDownload/Documentはこちらからどうぞ:
http://www.boost.org/
関連スレ
C++相談室 part11
http://pc3.2ch.net/test/read.cgi/tech/1032345774/
STLスレッド part2
http://pc3.2ch.net/test/read.cgi/tech/1026793823/
0002デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1008593126/
0004デフォルトの名無しさん
NGNG(^Д^)
0005C++使い
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGこれをg++でコンパイルするとコンパイラのエラーが出る。
2.95と3.2の両方で。コンパイラのバグなのか、プログラムの
バグなのか、ライブラリのバグなのかは不明
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG・boost info
http://user.ecc.u-tokyo.ac.jp/~g940455/wp/boost/
・Hattareme Programming
http://www.dodgson.org/lab/hat/
・Let's boost
http://www.kmonos.net/alang/boost/
・Regex
http://www.s34.co.jp/cpptechdoc/article/regexpp/
・Boostを使おう
http://www.emaki.minidns.net/Programming/tools/Boost/
0014デフォルトの名無しさん
NGNGこんなわたしも boost 使いですか?
0015sage
NGNG業界標準のスマートポインタとしてboost::shared_ptrを使う意義は大きいんじゃ?
下手な独自開発のスマートポインタを公開して得意げな連中に比べれば。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNGなかなかいいんぢゃない。
0018デフォルトの名無しさん
NGNGマンセー
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNGSTL本は山のように出ているんだから、一冊くらい出してくれても良いのに。
0021デフォルトの名無しさん
NGNGghcで遊んでて「遅いなあ」とか思ってたけど、
そのはるか上を逝く。当たり前だけど。。
>>20
ネットの情報とソースコード、これで十分でしょ。
出たとしても売れないよ(藁
0022STL刷れ466
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1026793823/466-469n
もうひとつ教えていただきたい事が・・。
class Foo { public: void bar(int i); }; があるとき、
std::mem_fun1_t< void, Foo, int > f( &Foo::bar ); が
やはりVC6でコンパイルできません。例によって戻りがvoidでなければ
とおります。
この問題をboostで回避することはできないでしょうか?
教えてください。
0024デフォルトの名無しさん
NGNGmem_fun1_t は 参照の参照問題の回避以外はSTLと
確か変わらんので無理だと思った。かわりにmem_fnの
返値構造体を持てばいいのだろうが、実装依存らしいので
これもやめたほうがいいだろう。
…ということで汎用のファンクタにしてしまえ。
boost::function2<void, Foo*, int> f( boost::mem_fn(&Foo::bar) );
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGできました。ありがとーございます。
現在、boost::bindがVCでコンパイルエラーになるってので格闘中。
いや本当はbind1stで事足りるんですけどね。
0027デフォルトの名無しさん
NGNGオレは買うぞ!!
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG"Unknown compiler version - please run the configure tests and report the results"
というエラーが出てコンパイルできない場合があるのですが、やはりgcc3.1以前を
使わないといけないのでしょうか。
0030デフォルトの名無しさん
NGNGウィンドウズアプリケーションで、WinMainの引数から
コマンドラインが渡されていたら、それをstd::setにinsertする処理をしたいんです
そこで
std::set<std::string> CmdLine;
if (*lpCmdLine != NULL) {
std::string CmdLineStr(lpCmdLine);
boost::tokenizer<> CmdLineTemp(CmdLineStr);
for (boost::tokenizer<>::iterator it = CmdLineTemp.begin(); it != CmdLineTemp.end(); ++it) {
CmdLine.insert(*it);
}
}
とやってみたのですが、「-a -bc&d」というコマンドラインを渡すと
「a」「bc」「d」に分解してくれちゃいやがります
確かデフォルトの分割は空白でされると聞いたのですが、どうも嘘だったようで・・・
本当は「-a」「-bc&d」にしたいのですが、どうしたらいいんでしょうか?
003130
NGNGif (*lpCmdLine != NULL) {
std::string CmdLineTemp(lpCmdLine);
std::size_t breakpoint = 0;
// テンポラリが空になる(区切りの空白が見つからなくなる)まで繰り返す
while (breakpoint != std::string::npos) {
// 空白までを1単位として、メンバへ格納して、その分を削除する
breakpoint = CmdLineTemp.find(' ');
CmdLine.insert(CmdLineTemp.substr(0, breakpoint));
CmdLineTemp.erase(0, (breakpoint + 1));
}
}
というコードだと何も問題ありませんでした
0032デフォルトの名無しさん
NGNGHoge::sortが Cmp cmpfn を受けとる必要があるんですが、
template < typename Cmp > void Hoge::sort( Cmp cmpfn );
と
typedef boost::function< bool, const Moga*, const Moga* > Cmp;
void Hoge::sort( Cmp cmpfn );
のどちらがより適切でしょうか?
003332
NGNGださい..
003432
NGNG実は前者で書いていたんですが、boost::mem_fn( &Hoge::sort<> )
するとg++(2.93)がinternal compiler errorで御臨終する罠に落ちまして。後者のような書き方ってアリなのかなぁと思ったのです。
あまりSTL,boostともに理解できていないのですが。。
0035デフォルトの名無しさん
NGNGそれをエラーと呼んで良いものか。
0036デフォルトの名無しさん
NGNGそもそも自作のクラスが32でいうところのcmpfnを
メンバ変数に保持しなければならないときその型は
何にするのがいいの?そのクラスをクラステンプレート
にしてもいいんでしょうけどインスタンス化が面倒な
予感
何か考え違いをしているのかなぁ。
0037デフォルトの名無しさん
NGNGSTLスレのほうがいいんじゃない?
# ...読んでいる人がまったく同じだったりする罠
# ちなみに漏れは回答わからず(鬱
0038デフォルトの名無しさん
NGNG試しにヘッダインクルードしただけなのに
VC++6.0 エラー73個
Bcc5.5 内部の致命的エラー2個
0039デフォルトの名無しさん
NGNGhttp://www.boost.org/libs/graph/doc/table_of_contents.html
多分知ってると思うけど、洋書でもいいなら本出てるよ。
The Boost Graph Library User Guide and Reference Manual
http://www.amazon.co.jp/exec/obidos/ASIN/0201729148
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNGあー本当だ。デフォルトだと ispunct/isspace で切るみたいだね。
typedef boost::tokenizer<boost::char_separator<char> > SpaceTokenizer;
boost::char_separator<char> sep(" ");
SpaceTokenizer CmdLineTemp(CmdLineStr, sep);
for (SpaceTokenizer::iterator ...
くらいでどうよ?
>>36
そのcmpfnがクラスの性質にとって重要な一部分なら、
例えば std::set みたいにテンプレート化すべきな気がする。
その場合は set< char, less<char> > と set< char, greater<char> >
が別の型であるべきだと思うので。
そうでもないなら、
例えば class WindowManager が各Window用のコールバック関数を
保持する…みたいな場合なら、必要に応じて適当に
関数ポインタなり boost::function なり loki::Functor なりで。
004336
NGNG>関数ポインタなり boost::function なり loki::Functor なりで。
この、"関数ポインタで受ける" という方法が、具体的にどうなるのか
思いつかないのですが、ちょっと教えて頂けませんか?
0044デフォルトの名無しさん
NGNG使い込むなら別の資料が欲しいところ。しかし英語で探しても
boost本家とBGL本しかちゃんとしたものが見つからん…。
0045デフォルトの名無しさん
NGNG自ら書く鹿
0046デフォルトの名無しさん
NGNG004730
NGNGなるほど、char_separator<>なるものが存在したのですか・・・
ざっと解説サイト回っただけだとオフセットセパレータの話ばっかりだったので
キーワードを教えてもらえただけで大変助かりました
どうもありがとう
0048デフォルトの名無しさん
NGNGgraphはregex++以上にソース読むのつらい。
yacc&lexも使ってるし。
0049デフォルトの名無しさん
NGNG自分はそのチェックをはずして 3.2 で使ってる。
といっても、スマートポインタくらいしか使ってないけど。
0050デフォルトの名無しさん
NGNG文字列へのポインタconst char* lpstrを
boost::lexical_cast<string>(lpstr)とやると
ポインタそのものの数値が文字列化されてしまうんでしょうか?
数値なら文字列にして、文字列ならそのままにして
ファイルへ保存するクラスを作っているんですが
なんとかテンプレート化できないものか悩んでおりまする・・・
いやいや、そんなわけないよ。ちゃんとCの文字列型→stringへの変換が行われます。
boost::lexical_cast<string>(static_cast<void*>(lpstr))とやれば別だけど。
ていうかそのくらい試してみればいいのに。
005250
NGNGmap< string, map< string, string > > IniMap;
に
template <typename value_type>
inline void SetIni(const char* section, const char* key, const value_type& value) {
IniMap[section][key] = boost::lexical_cast<std::string>(value);
}
とやってみたんですが、数値なら上手くいくのにconst char*が渡ると怒られます
もしかしてlexical_castの問題じゃなくて、テンプレートに対する理解が足りないとかいう話でしょうか・・・
環境はBCC5.5.1+BCC添付のSTL+BOOST1.28
0053デフォルトの名無しさん
NGNG文字列に空白が含まれていませんか?
空白が含まれている場合、
operator>>は空白までで区切ってしまうので
全部出力されません。
そのため、bad_lexical_castが投げられてしまいます。
自分の出した解決策はconst char *の時や
string型の時の特殊化(オーバーロード?)を作るです。
うまいことやればうまくいきます。
0054デフォルトの名無しさん
NGNGoperator<<を介して文字列スとリームに変換されてから
Targetの方にoperator>>を介して変換されています。
005550
NGNG空白は含まれていません
型毎に特殊化するって、boost::type_traitsを使う方法でしょうか?
もしそうだとして、type_traitsって実行時に型特性を判断できるんですか?
005653
NGNGいえ、そうではありません。
単純に
template <typename value_type>
inline void SetIni(const char* section, const char* key, const value_type& value) {
IniMap[section][key] = boost::lexical_cast<std::string>(value);
}
inline void SetIni(const char* section, const char* key, const char* value) {
IniMap[section][key] = value;
}
inline void SetIni(const char* section, const char* key,const std::string &value) {
IniMap[section][key] = value;
}
をそれぞれ用意するだけです。最後の引数を変えたものを用意して
文字列だったらloxical_castを使わずそのまま代入するということです。
それと、loxical_castにconst char *のNULLを渡しても落ちました。
その線はないでしょうか?
005750
NGNGなるほど、と、いうことは
型が明示されている関数が宣言されていた場合、
どの型にも当てはまらなかった場合にテンプレートが使われる
という認識で良いんでしょうか?
boostとは関係無い話題ですけど・・・
0058デフォルトの名無しさん
NGNGlexical、な。
>>52
同じ環境でやってみて
#include <map>
#include <string>
#include <boost/lexical_cast.hpp>
using namespace std;
map< string, map< string, string > > IniMap;
template <typename value_type>
inline void SetIni(const char* section, const char* key, const value_type& value) {
IniMap[section][key] = boost::lexical_cast<std::string>(value);
}
int main()
{
// SetIni( "hello", "world", 3 ); // safe
SetIni( "hello", "world", "hoge" ); // safe
// SetIni( "hello", "world", "hoge huga" ); // abnormal termination
// SetIni( "hello", "world", (const char*)NULL ); // abnormal termination
}
ってな感じでうまく実行できたけど。念のためもう一度
空白かNULLポインタを疑ってちぇっくした方がいいと思われ。
005932
NGNG次のコードがコンパイルできません。
#include <vector>
#include <algorithm>
#include <boost/bind.hpp>
class B { // abstract
public: virtual void foo(void) = 0;
};
class D : public B { // concrete
public: virtual void foo(void) {}
};
void func(int x, B& y) {}
int main(void) {
std::vector<int> vi;
B* d = new D;
std::for_each( vi.begin(), vi.end(),
boost::bind(func, _1, (*d))); // *d がまずいらしい
return 0;
}
0060続き
NGNGboost/bind.hpp:211: could not convert `
(+a)->boost::_bi::list1<A1>::operator[](const boost::_bi::value<T>&) const
[with T = B, A1 = int&]((this + 4))' to `B&'
となってしまいます。どうにかする方法はないでしょうか・・。
神々の皆さん教えてください。
006159
NGNGboost::ref がないだけじゃん・・・・
お騒がせしました。
boost::ref(*d) でつね。
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGboost,geenric,STL,C++相談室
こんなにいくつもいらないよ。
それにC++プログラマで今時テンプレートを
使えないやつの方がヤバイ。
そういうやつはソースも読まずにSTLを
使ってたりするから信用ならん。
boostはもうここまで来たら避けては
通れないっしょ。
Lokiにしたってある程度使ってると
大体慣れてくる(ような気がする)。
という訳で出来ればC++相談室に一本化する
ようなほうにいってくれるとうれしいな。
v(^・^)v
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGこのスレはC++スレとSTLスレの総意でついこのあいだ独立したばっかりだと思うが・・・
一本化するなら、C++相談室スレッドとC++(準)標準ライブラリスレッドくらいには分けて欲しい
0066デフォルトの名無しさん
NGNGclass TEST{
private:
int a, b;
public:
int AddA(int v, const TEST &test){return v + test.a;}
int AddB(int v, const TEST &test){return v + test.b;}
};
vector<TEST>tests;
intalla= accumulate(tests.begin(), tests.end(), 0, boost::bind(&S_FileInfo::AddA, _1, _2)));
intallb= accumulate(tests.begin(), tests.end(), 0, boost::bind(&S_FileInfo::AddB, _1, _2)));
みたいなことをしたいのですが、 boost::bind あたりの使い方がよくわからずコンパイルエラーが起きてしまいます。
どうすればいいでしょうか?
0067デフォルトの名無しさん
NGNG同意。STL/Boost/Genericスレはノイズが少なくて良い。
0068デフォルトの名無しさん
NGNG禿堂。
もう関連スレが細分化されすぎて見づらい。
>>63
>今時テンプレートを使えないやつの方がヤバイ
まぁまぁ。気持ちは分からなくもないが人それぞれ、
ソースそれぞれってことで。
0069デフォルトの名無しさん
NGNGあまり自信ないですが、
>>boost::bind(&S_FileInfo::AddA, _1, _2);
は、
boost::bind( &func , TEST instance, _1, _2 );
では?
そして、この返り血は op( int , TEST & ) なので、accumulateの
関数にはならないかと思うんですが。
0070デフォルトの名無しさん
NGNGop( int , TEST & ) なので、accumulateの 関数にはならない
はうそでした。申し訳ない・・・
>>int AddA(int v, const TEST &test){return v + test.a;}
thisはいずこに?
class TEST
{
int AddB(int &v){return v +b;}
}
void sum(TEST &x, int &v )
{
x.AddA(v);
}
std::for_each( tests.begin(), tests.end(), boost::bind( addop,_1,boost::ref(b) ) );
とかなら分かるけど・・
0071デフォルトの名無しさん
NGNGやりたいことがさっぱりわからんが、適当に見当つけるとこういうことか?
class TEST{
private:
int a, b;
public:
int AddA(int v){return v + a;}
int AddB(int v){return v + b;}
};
vector<TEST> tests;
int alla= accumulate(tests.begin(), tests.end(), 0, boost::bind(&TEST::AddA, _2, _1));
int allb= accumulate(tests.begin(), tests.end(), 0, boost::bind(&TEST::AddB, _2, _1));
007266
NGNGせっかくコードを提示していただきましたが、
自分の能力不足か、理解できないです。
スミマセン。
>>71
なぞのサンプルから推測していただきありがとうゴザイマス。
提示していただいたコードでコンパイル通りました。
boost::bind の理解不足でした。
ありがとうございました。
0073デフォルトの名無しさん
NGNGソウデモナイヨ。(周囲見てると)
書いてて鬱なのでsage。
0074デフォルトの名無しさん
NGNG(C言語のそれと同等の)structがあるとき、その全てのメンバをprivateにした上
でsetter/getterをなるべく自動的に作成するような、上手い方法はありませんか?
0075デフォルトの名無しさん
NGNGpublicにあるのといっしょじゃないの?
0076デフォルトの名無しさん
NGNGできれば全部virtualだと嬉しかったりします。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNGまぁ、iteratorでforループまわす真似を何があっても絶対しないばか
りか同僚のそういうコードを片っ端から書き直してみたりとか、それ
でいてindirect_iteratorは使いまくってみたりとかしてたらブチ
キレる人もいるわな(わら
008483
NGNG知らないってことで失礼。
はやくブチ切れられるようになりたーい。
0085デフォルトの名無しさん
NGNG真面目な話、
親クラスのメンバをQUERYする
方法がないから、そう簡単な方法は
ないと思われ。
0086デフォルトの名無しさん
NGNGi see.
あきらめます。
0087デフォルトの名無しさん
NGNG汎用厨は反省汁!!
・・・・・・オレモナー
0088デフォルトの名無しさん
NGNGを使いこなし、成り行きで(苦笑) templateのpartial specializationをしている自分
がいて、いまちょっと感動してる。。3日前はstd::bind1stもよくわからなかったのに。
このスレにお世話になることがあったらよろしくおねがいします。
008988
NGNGtypedef boost::tuple<int> hoge;
tuple_test_VC6.cpp(63) : warning C4091: 空白の宣言が見つかりました。
tuple_test_VC6.cpp(63) : error C2143: 構文エラー : ';' が '<' の前に必要です。
tuple_test_VC6.cpp(63) : error C2059: 構文エラー : '<'
g++だと問題なかったのですが、VCで通す方法はありませんか?
ご存知の方、ご教授ください。
0090デフォルトの名無しさん
NGNG用件は単刀直入に(w
0092デフォルトの名無しさん
NGNG(((;゚Д゚)))
0093デフォルトの名無しさん
NGNGで、3日寝ると忘れる、と。
009488
NGNGありそ。
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNGおれもれも。
0099デフォルトの名無しさん
NGNGhttp://www.boost.org/libs/bind/mem_fn.html によると、
It supports member function pointers with more than one argument らしいんですが、
2つ以上の引数をとるメンバ関数ポインタをmem_fnに渡して嬉しいケースって何かありますか?
そうして得られたfunction objectはbind1st/2ndで扱えないと思いますので、それなら
mem_fnなんて使わないでboost::bindだけ使っていれば良い気がしてなりません。
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNGいいのですね?
0103デフォルトの名無しさん
NGNGCのインターフェイスをラップしただけのものなんて
正直入れないで欲しいな。
0104デフォルトの名無しさん
NGNGこいつはすごい プライベートでも仕事でもメタメタProgramminging
0105デフォルトの名無しさん
NGNG0106キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
NGNG0108デフォルトの名無しさん
NGNGtemplate<class Ite1, class Ite2, class Ite3, class Func>
for_each_3( Ite1 a, Ite1 end, Ite2 b, Ite3 c, Func f )
{
while( a != end ) f(*a,*b,*c), ++a, ++b, ++c;
}
とかやりたい時…って普通やりたくないか、そうか。うむ。
010999
NGNG0110デフォルトの名無しさん
NGNGgunzip bjam.exe.gzで解凍しようとしたら
gunzip: bjam.exe.gz: not in gzip format
とのエラーになる。
どうやって解凍すればいいの?
0111デフォルトの名無しさん
NGNGbjam.exe.gz: MS Windows PE Intel 80386 console executable not relocatable
って言われるから、単に拡張子が間違っているじゃねーのか ?
とりあえず、bjam.exe にリネームして、ウィルスチェックしてから実行すればいいと思う。
(なんかあっても、責任は取れないけど...。)
0112デフォルトの名無しさん
NGNGjamっての辞めてほしいんすけど。
0113110
NGNGmv bjam.exe.gz bjam.exe
./bjam.exe
としてみたら
bash: ./bjam.exe: Permission denied
boostが嫌いになりそうだ...
0114デフォルトの名無しさん
NGNGはしてますか?
0115110
NGNG-rwxr-xr-x
となっています (chmodする前から)
0116デフォルトの名無しさん
NGNGchmodじゃないの?ていうか、それくらい(略
>>112
そだね。漏れもmakeにしてほすぃ、と思う。
けど、boostのソースん中にjamのソースは入ってるから、バイナリだけ作って、
boost入れたら消せばいい。バイナリ自体も配付されてるしな。
0117デフォルトの名無しさん
NGNGIEで落とすと、IEが落としながら勝手に解凍したりしつつ
拡張子はそのまんまという迷惑なことをやってくれるが、
そういうことでなくて?
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNGもしくはちゃんと参照カウントさせて別スレッドに渡す方法ってありますか?
例えばPostThreadMessageとかで
0120デフォルトの名無しさん
NGNGちゃんとMutex入りとかになったはず、確か。
0121110
NGNGしてCygwin上で実行したらうまくいった。
出来上がったライブラリの拡張子がlibになってしまうのでaに変えたが、
それ以外は(今のところ)問題なし。
お騒がせしました。
0122デフォルトの名無しさん
NGNGmakeだとちゃんとSTLportを使ってくれるんですが。
0123122
NGNG0124デフォルトの名無しさん
NGNGコンパイラによるので何とも言えんが、ちゃんと
-sTOOLS=gcc-stlport
とか
-sTOOLS=msvc-stlport
とかやってるか?
0126デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNGusing namespace boost; しなくても、min( a, b ); が
多重定義でコンパイルエラーになるのは俺だけでしょうか。
とりあえず、std::min( a, b ); にして凌いだけど、、、
なんで、グローバル名前空間にminが見えるわけ?
今後 min はstdを明示的に指定しないと使えない?
マイクロソフトみたいな真似はやめれ!
0129デフォルトの名無しさん
NGNGインクルードしないようにすればいいじゃなくて?
0130デフォルトの名無しさん
NGNGいや、試したけど大体何インクルードしてもエラーになる。
あと、多重定義ってのは嘘で、オーバーロードの曖昧さでした。
ライブラリのバージョン上げた途端コンパイル通らなくなって
カナーリビビッタヨ
0131デフォルトの名無しさん
NGNGうちだと VC6SP5 + boost 1.29.0 (STLは標準のもの) で
#include <algorithm>
#include <boost/cast.hpp>
using namespace std;
//using namespace boost;
int main()
{
return min(1,2);
}
using namespace boostしてもしなくても、何の問題もなく通ったけど。
<windows.h> のminのせいとかいうオチは流石にないよな?
0132デフォルトの名無しさん
NGNGもしかしてSTLPortのせい?
#include <algorithm>
#include <boost/cast.hpp>
using namespace std;
int main()
{
return min( 1, 2 );
}
error C2667 〜
error C2668 〜
なんだけど、確かにSTLPort下げると通る!
013336
NGNG0134デフォルトの名無しさん
NGNG0135133
NGNG0136デフォルトの名無しさん
NGNG#define min(x,y) (x<y?x:y)
マイクロソフトは最高最強のソフトメーカーです
0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG関数ポインタがわからんのか?
0139デフォルトの名無しさん
NGNGいやわかりますが・・
関数ポインタに boost::bind とかで作った関数オブジェクトを代入できるんですか?
0140デフォルトの名無しさん
NGNGマイクロソフト≒My糞ソフト
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGワロタ
0143デフォルトの名無しさん
NGNGできないよ?だから42氏が、必要に応じて
関数ポインタを使うなりboost::functionを使うなり適切な物を、
とゆーとるのではないだろうのか。
0144デフォルトの名無しさん
NGNG#undef minしちまえ
0145デフォルトの名無しさん
NGNG#include "windows.h"
}
(ry
ヽ(`Д´)ノもう来ねえよ!ウワァァン!!!
0146デフォルトの名無しさん
NGNG>>136
0147デフォルトの名無しさん
NGNGソナコトシテイイノ?
0148デフォルトの名無しさん
NGNG激しくワラタ。
>>147
#include <windows.h>
#undef min
// 自分用minの定義
0149デフォルトの名無しさん
NGNG動きません。助けてください。
0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNGなにか間違ってます?
0152デフォルトの名無しさん
NGNGこうだったかな?
0153デフォルトの名無しさん
NGNG0154128
NGNG俺のせい?
0155デフォルトの名無しさん
NGNG#define NOMINMAX
#include <windows.h>
#include <algorithm>
>>149
マクロはやめれ
0156デフォルトの名無しさん
NGNGイイ!
0157デフォルトの名無しさん
NGNGboost::preprocessorでどうぞ。
#define PRED(D,STATE) BOOST_PP_LESS_D(D,(STATE),1001)
#define OP(D,STATE) (BOOST_PP_INC(Abone(STATE)))
static int Abone(int res){
std::cout << res << " あぼーん\n";
return res;
}
int main(){
BOOST_PP_WHILE(PRED,OP,1);
std::cout << std::endl;
return 0;
}
0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNG定数しか扱えなかったみたいだ。。。吊ってくる。。。
0160デフォルトの名無しさん
NGNGうむ、これはおまいのせいなので、ここは罪滅ぼしにSTLPort+boostの
どの辺がマズかったのか調べて報告してくれると嬉しいなっと。
0161デフォルトの名無しさん
NGNG#ifdef BOOST_MSVC
namespace std{
// Apparently, something in the Microsoft libraries requires the "long"
// overload, because it calls the min/max functions with arguments of
// slightly different type. (If this proves to be incorrect, this
// whole "BOOST_MSVC" section can be removed.)
inline long min(long __a, long __b) {
return __b < __a ? __b : __a;
}
inline long max(long __a, long __b) {
return __a < __b ? __b : __a;
}
// The "long double" overload is required, otherwise user code calling
// min/max for floating-point numbers will use the "long" overload.
// (SourceForge bug #495495)
inline long double min(long double __a, long double __b) {
return __b < __a ? __b : __a;
}
inline long double max(long double __a, long double __b) {
return __a < __b ? __b : __a;
}
}
using std::min;
using std::max;
# endif
上でやってるminマクロのundefとかは良いとして、一番下の一体何?
0162161=154
NGNGとりあえず、対策は
boost/config/stdlib/stlport.hpp に
#undef BOOST_MSVC // min, max バグ修正
とか入れとけばOKみたい
バグっぽいので、次期バージョンでは修正されているでしょ
0163161=154
NGNG>>162 は嘘だ、BOOST_MSVCは他のとこでも使われてる!
#define BOOST_STLPORT_MSVC とか定義して >>161 のとこだけ外してくれ
0164デフォルトの名無しさん
NGNGMicrosoftも見習ってほしい
0166デフォルトの名無しさん
NGNG偉大なるビル大師に命を賭して忠誠を誓う際に使います(w
BCは…使ったことないのでスマソ…
0167デフォルトの名無しさん
NGNG不便でしょうがない・・。
0168デフォルトの名無しさん
NGNGVC7なら昔から通っていたみたいだが、VC6の話でつか?
http://www.boost.org/status/cs-win32.html
0169デフォルトの名無しさん
NGNGとか言って Stop しますた。
メイクファイルいぢって /Zm200 オプションつけて動かしたらコンパイル通ったけど、
これで OK なの?
0170名無し~3.EXE
NGNGこれであの変なjamとかいうのを覚えなくて済みます
0171デフォルトの名無しさん
NGNG>>169
漏れも同じ環境だけど出なかったよ。
> 「コンパイラのヒープが足りない」
ヒープかよ…なんだろ?
とりあえず…メモリは十分?
0172169
NGNGレスありがと。
致命的なエラー C1076 だそうで。
P�V-800MHz、Mem-933MB、Windows 98SE、VC6SP5、STLport-4.5.3、boost-1.29.0。
169 の通り一応コンパイル通して、とりあえず Web に転がってる簡単な
サンプルとか動かしたけど問題出ないような。
やや不気味。
0173デフォルトの名無しさん
NGNGテンプレートを展開するときに必要なメモリがヒープの大きさを越えたんだろ。
0174172
NGNGいやー、それは何となくわかるんだけど。
ただ、こういうエラーが出るという情報が全く知らなかったんで、
漏れが何かおかしい事をしたか不安だったわけで。
したら、ついさっき↓を見つけて安心しますた。
http://page.freett.com/shelarcy/diary2002-10.html#boost_1_29_0_regex
0175デフォルトの名無しさん
NGNG0176171
NGNG漏れの確か128だった。
0177安芸
NGNG0178デフォルトの名無しさん
NGNGその age かたはダメ。
唐揚げにして
0179デフォルトの名無しさん
NGNG0180唐揚
NGNGテンプレート使うのがメンドクセー状況下(VC++が自動生成するクラスとか)
で、あるクラスに、(継承関係のない)任意のクラスのオブジェクトを保持しなければならんとき、
意地でもvoid*を避ける目的で使ったことがある・・がそれだけ。
0181デフォルトの名無しさん
NGNGプッシュできるようになっているみたいですね。もう少し使ってみます。
便乗質問よろしいでしょうか?boost::multi_arrayを使おうと思い、ドキュメント
のサンプルをコンパイルしたら下のようなエラーが出てコンパイルできません。
コンパイラはBCC5.6.1です。
Assertion failed C:\Program Files\Borland\CBuilder6\Include\boost/multi_array/multi_array_ref.hpp(172) : id != 0 at c:\helena\bcc\indep\symtab.c(1142)
gcc3.2(MinGW)だときちんとコンパイルできます。やはりBCCは糞でしょうか?
0182デフォルトの名無しさん
NGNGcompiler status(cs-win32.html)を見ると、bcc5.5.1ではmulti_arrayが
failとなっているので、その流れでbcc5.6.1もだめなのでしょうね。
0183デフォルトの名無しさん
NGNGunionなんぞになかなかご登場願わないC++としては使いどころも限られ。
って感じですかね?
0184デフォルトの名無しさん
NGNGですよね。mem_funを使った動的バインディングをコンテナで適用する
程度ですからね。
0185デフォルトの名無しさん
NGNGって?
0186デフォルトの名無しさん
NGNGこういう事を言いたかったのです。
struct A {
virtual void func() { std::cout << "A" << std::endl; }
};
struct B : public A {
void func() { std::cout << "B" << std::endl; }
};
int main()
{
std::vector<A*> v;
v.push_back(new A);
v.push_back(new B);
std::for_each(v.begin(), v.end(), std::mem_fun(&A::func));
}
0187デフォルトの名無しさん
NGNG低脳でスマンコ
0188デフォルトの名無しさん
NGNGboost::anyとはあまり関係ないか・・・・スマソ
0189デフォルトの名無しさん
NGNGそれだとVCの勃ち場が。
0190デフォルトの名無しさん
NGNGVCの方が若干boostに対しては優しいみたいだよ。BCCはテンプレート
周りが弱いようだ。
0191デフォルトの名無しさん
NGNGBCCは良いのかと思っていたが↑をみると悪い意味でいい勝負だね。
まぁ http://pc3.2ch.net/test/read.cgi/tech/1026793823/756n- などを見る限り両方うんこ。
0192デフォルトの名無しさん
NGNG優しいというか、VCユーザの方が多いのでそっちの対応には
力が入っているだけというか。
0193デフォルトの名無しさん
NGNGex )
class ApplicationDataContainer
{
public:
typedef std::string KeyType;
typedef boost::any ValueType;
typedef std::map< KeyType, ValueType > ContainerType;
template< typename T > void SetValue( const KeyType id, const T& value )
{
return data_[id] = value;
}
template< typename T > void GetValue( const KeyType& id, T& value ) const
{
ContaierType::const_iterator i = data_.find(i);
value = boost::any_cast<T>( i->second );
}
private:
ContainerType data_;
};
boost::any は、union で定義されている VARIANT などとは比べ物になりませんな
0194デフォルトの名無しさん
NGNGなるほど・・・・boost::anyに入れたら、取り出す時はboost::anycastを
使うのか。という事は保存状態は、多分void*とかになってるんだろうな。
0195デフォルトの名無しさん
NGNG>>194
違う。
テンプレートを利用した、エレガントでナイスな仕組みになっている。
一度、ソース読んでみろ。
0196193
NGNGboost::any は、 void* のようなポインタじゃなくて、
ちゃんと ValueType 型(代入された値の型)のオブジェクトを作成し、
そこへ 引数を渡しているから、元のオブジェクトがすでに無くても大丈夫。
void* var1;
boost::any var2;
{
std::string s("文字列");
var1 = reinterpret_cast<void*>( &s );
var2 = s;
}
std::cout << reinterpret_cast<std::string*>(var1)->c_str() << std::endl; // だめ
std::cout << boost::any_cast<std::string>(var2).c_str() << std::endl; // OK
0197デフォルトの名無しさん
NGNGソース読んでみました。こんな短いクラスでanyのような機能を実現
できるんですねえ。
>>196
std::cout << reinterpret_cast<std::string*>(var1)->c_str() << std::endl; // だめ
は大丈夫じゃないかと思うのですが、やっぱりだめなのでしょうか。
0198デフォルトの名無しさん
NGNG大丈夫なワケないだろ・・・
スコープとポインタ理解してるか?
{
std::string s("文字列");
var1 = reinterpret_cast<void*>( &s );
} // string sはスコープを越えたので破棄される
/* この時点でvar1は解放済みの領域を指している */
std::cout << reinterpret_cast<std::string*>(var1)->c_str() << std::endl; // NG
たまたまうまく動いたからといって
それが正しいコードとは限らない
(むしろこの場合深刻なバグにつながる)
0199デフォルトの名無しさん
NGNGすんまそん。{}のブロックに囲まれていたのを見過ごしていました。
#というか勝手に取り去って悩んでいた・・・・
0200デフォルトの名無しさん
NGNG「いらないと思ったのではずしたら変な動きをします」系
初心者でもっともやっかいなタイプだな
まぁ、そこで終わらなければ上達が速いタイプでもあるんだが
何とかと天才は紙一重
0201デフォルトの名無しさん
NGNG言葉を額面通りにしか受けとれんよーでは、まだまだ。
相手の状況も考えて判断下さんとな。
0202デフォルトの名無しさん
NGNG文中にある要素をどうやったらコピペし損ねられるんですか(藁
しかも>>199で
>#というか勝手に取り去って悩んでいた・・・・
と自発行動であったことを明言してるし
スレ違いsage
0203デフォルトの名無しさん
NGNG頼むからスレ荒らすな。
せっかくマターリ進行なのに。
0204デフォルトの名無しさん
NGNGプログラムを作ってみたのですが、std::bitsetとの違いって一体何なのでしょ
うか?やっぱり実行時にサイズを決められることだけでしょうか?
#include <iostream>
#include <boost/dynamic_bitset.hpp>
int main()
{
int mx;
std::cout << "max = ";
std::cin >> mx;
boost::dynamic_bitset<> bt(mx);
for (int i = 2; i < mx; i++)
if (bt[i] == 0)
for (int j = i + i; j < mx; j += i)
bt[j] = 1;
for (int i = 2; i < mx; i++)
if (bt[i] == 0)
std::cout << i << ' ';
std::cout << std::endl;
}
0205デフォルトの名無しさん
NGNGと、思ってたけど違うの?
ってか、名前からしてそれだけのような
きがするが。
マニュアル読むしかないようなきが。
0206デフォルトの名無しさん
NGNG基本的にはそれだけ。
あと、まぁ、 is_subset_of / is_proper_subset_of が存在すること。
0207デフォルトの名無しさん
NGNGis_proper_subset_of の方が真部分集合であるということでしょうか?
boostのhelpを読んでいたらそのように読めるのですが。
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG終了。
0210デフォルトの名無しさん
NGNG誰か使ってみた人います?
0211デフォルトの名無しさん
NGNGムズカシイネ。
0212デフォルトの名無しさん
NGNGこれ見た?そんなに難しくはないと思うよ。
http://user.ecc.u-tokyo.ac.jp/~g940455/wp/boost/iterator_adaptors.html
0213デフォルトの名無しさん
NGNGindirect_iteratorsとtransform_iteratorsとfilter_iteratorsの3つを覚えて
おけば取り敢えずは人に自慢できそうですね:-)。
>>212
なるほど。boostのhelpは英文なのでいま一つ理解できませんでしたが、
日本語で書いてもらうとやっぱり読みやすいですね。サンクス。
0214デフォルトの名無しさん
NGNGクッションとなる関数 (indirect_ ならポインタはずしだけ行ってファンクタを又呼び) を用意したほうがわかりやすいという罠もあるけどね。3日後に意味がわからないことがたまにある。。。。。
0215デフォルトの名無しさん
NGNGそうなんですか。boostの中身は確かに標準STLを組み合わせれば実現
できそうなものが多いですね。
indirectのindirectというのは二重にかぶせればいいのかな?
0216デフォルトの名無しさん
NGNGそれはポインタのポインタをコンテナに入れてるってことか?
それはちょいと設計見直した方がよいような気が。
0217デフォルトの名無しさん
NGNGそうです。いや、単に動くかどうか試してみたかったのです。
どうやら動くようです。
int main() {
std::vector<int**> is;
int a[] = {11, 22, 33};
int *aa[] = {&a[0], &a[1], &a[2]};
is.push_back(&aa[0]);
is.push_back(&aa[1]);
is.push_back(&aa[2]);
std::cout
<< std::accumulate(boost::make_indirect_iterator(boost::make_indirect_iterator(is.begin())),
boost::make_indirect_iterator(boost::make_indirect_iterator(is.end())), 0)
<< std::endl;
}
0218monologue
NGNGが、それでも引数の微妙な型合わせが必要な場合がある。
で、xxx_iteratorシリーズご登場。
という流れなのかなぁ。std::あるごりずむ( b, e, boost::bind(&CMFCのなんちゃら::ほげ,... )
とか書いてるときはキモチいいのは確かなんだけど。
0219デフォルトの名無しさん
NGNGhttp://ex.2ch.net/test/read.cgi/entrance/1035686805/
0220デフォルトの名無しさん
NGNG漏れの場合は(最近のソースコードをgrepしてみると)多い順に
1. bind (圧勝)
2. shared_ptr
3. lexical_cast
あとは少しだけfunction, any, format, tuple, scoped_array , ... 数えるとキリがない
という感じです。
0221デフォルトの名無しさん
NGNG1. scoped_ptr
2. lambda
3. noncopyable
4. date_time
てな感じだな。shared_ptrを使う機会が意外とほとんどない。
0222デフォルトの名無しさん
NGNGアンケートか。ほんだら揚げとこか。
1. noncopyable
2. regex
3. format
0223デフォルトの名無しさん
NGNG2) shared_ptr, scoped_ptr
3) prior, next, ref, cref
こまかいのばっかだな〜。
BCC なものでlambda がいけないのが痛いです。
2. regex
3. noncopyable
前は sprintf() をラップする std::string format(const char *fmt, ...)
を書いたもんだけど・・・。
0226デフォルトの名無しさん
NGNG2) ptr_fn
3) shared_ptr
0227デフォルトの名無しさん
NGNG2. scoped_ptr
3. regex これを使い始めてからruby/perlはあまり使わなくなった。
4. format printf一族と手が切ることが出来た。
0228デフォルトの名無しさん
NGNGスタック上にオブジェクトを置くのではなくscoped_ptrを使うとうれしい
のってどういう時なんですか?
使いどころを激しく教えてホスイです!
0229デフォルトの名無しさん
NGNG2. format
3. regex
4. lexical_cast
5. tokenizer
…文字列処理が多いんで。
0230デフォルトの名無しさん
NGNGboost::array 知りませんでしたが
http://www.kmonos.net/alang/boost/classes/array.html
いいですね。普通の配列風に初期化できるのはすごくいい。
begin, end, size できて、本物のコンテナに入れなおすのも楽だし…
0231デフォルトの名無しさん
NGNGint main(void)
{
int num1;
printf("あなたの年齢を入力してください。\n");
scanf("%d",&num1);
double num2;
double num3;
printf("あなたの身長と体重を入力してください(センチ、キログラム)。\n");
scanf("%lf",&num2);
scanf("%lf",&num3);
printf("あなたの年齢は'%d'です。\n");
printf("あなたの身長は、%lf、あなたの体重は%lfです。\n");
return 0;
}
このプログラムを実行したところ身長の入力をした時にruntime errorが
出てきたんですけど、エラーは0なんですけどこれはなぜなんでしょうか?
ご指導いただけたら幸いですm(__)m
0232デフォルトの名無しさん
NGNGこのスレに質問するのは著しく不適切です。
0233デフォルトの名無しさん
NGNGC/C++の宿題なら俺にやらせろ!
http://pc3.2ch.net/test/read.cgi/tech/1021862587/l50
0234233
NGNG0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG>>221じゃないけど、
例えばコンストラクタでnewしてデストラクタでdeleteするとき。
そのポインタをscoped_ptrでラップする。
vectorでもいいけど、オーバースペックかな?と思う時があるのと、
const auto_ptrよりも意味が明確に思えるんで。
0237デフォルトの名無しさん
NGNG俺が良く使うのは、pimpl イディオム使って実装を隠蔽するケース。
0238デフォルトの名無しさん
NGNGなるほど、それは確かに便利ですね。ありがとうございました。
0239デフォルトの名無しさん
NGNGその点、auto_ptr は中途半端。
0240デフォルトの名無しさん
NGNGboost::aryって int hoge[] = {1, 2, 3}; の模倣はできないんですかねえ?
固定長配列、私の用途だと要素数を明示したくないことがしばしば。
0241デフォルトの名無しさん
NGNGs/ary/array/;
anyと混ざった・・・鬱
0242デフォルトの名無しさん
NGNGnext, priorに関連することなのですが、
なんでポインタ型のイテレータ(cont.begin()がT*を返す)
を直接インクリメント(デクリメント)する
のはダメなの?
typedef vector<int> cont_type;
cont_type cont;
...
for(cont_type::iterator it=++cont.begin() //bad!
; it!=cont.end()
; ++it)
{
...
}
文法的にも問題あるようには見えないんだけど...
なにか文法的に矛盾してしまうこととかあるの?
0243デフォルトの名無しさん
NGNGスレ違い。
0244デフォルトの名無しさん
NGNG一応next, priorに関連すると思うんだが…
0245デフォルトの名無しさん
NGNG右辺値と左辺値を勉強してきてくれ。
++ 演算子は右辺値にしか適用できない。
T* は左辺値。
右辺値を返す関数は型が T*&。
0246デフォルトの名無しさん
NGNGレスTHXです。
そっか。考えてみたら、
++246;
と一緒か。
結局スレ違いだった。スマソ...
0247デフォルトの名無しさん
NGNG左右が逆じゃありませんこと?
かくいうおれもよく間違えるんだが。
0249デフォルトの名無しさん
NGNGプログラムを書いてみたのですが・・・・・どういう時に使うとよいのでしょうか?
typedef boost::tuple<int, double, std::string> Btids;
Btids func()
{
return boost::make_tuple(1, 1.1, "abc");
}
int main()
{
Btids x;
x = func();
std::cout << boost::get<0>(x) << ' ' << boost::get<1>(x) << ' ' << boost::get<2>(x) << std::endl;
std::cout << boost::tuples::set_open('[') << boost::tuples::set_close(']') << boost::tuples::set_delimiter(',') << x;
}
0250デフォルトの名無しさん
NGNGtypedef boost::shared_ptr<int> Bsi;
bool ValueComp(const Bsi& bs1, const Bsi& bs2){
return *bs1 < *bs2;
}
int main()
{
std::vector<Bsi> vsi;
vsi.push_back(Bsi(new int(1)));
vsi.push_back(Bsi(new int(4)));
vsi.push_back(Bsi(new int(3)));
vsi.push_back(Bsi(new int(5)));
vsi.push_back(Bsi(new int(2)));
std::sort(vsi.begin(), vsi.end(), ValueComp);
std::vector<Bsi>::const_iterator pos = vsi.begin();
while (pos != vsi.end())
std::cout << *pos++ << std::endl;
}
0251デフォルトの名無しさん
NGNG*pos++を**pos++としたら数字は表示されました。
しかしまだソートがうまく行きません。
0252デフォルトの名無しさん
NGNGboost::shared_ptrはstd::auto_ptrと違い、コンテナに入れてソートしても
いいんですよね。
0253デフォルトの名無しさん
NGNGVC6SP5 でうまく行っておりまする・・・。
0254デフォルトの名無しさん
NGNGありがとうございます。
ついでなのですが、ValueCompを次のような叙述関数で書くべきなのでしょ
うか?これはboostの質問ではないですね。
struct ValueComp : public std::binary_function<const Bsi&, const Bsi&, bool> {
bool operator()(const Bsi& bs1, const Bsi& bs2) {
return *bs1 < *bs2;
}
}
0255デフォルトの名無しさん
NGNGメシ食ってたYO!!!
関数オブジェクトを用いる一番の利点は、コンパイラに処理をインライン展開
させる事らしい。
250 の書き方だと関数ポインタが発生するから、インライン展開できなくなる。
not2() とかも使えないし。
それでもいいなら好きなように。
0256デフォルトの名無しさん
NGNGありがとうございます!!手間を惜しまず関数オブジェクトにします!
0257デフォルトの名無しさん
NGNG>++ 演算子は右辺値にしか適用できない。
適用すると右辺値になる、が正解じゃないの?
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNGあの辺の構文てオナニーにしか見えないんだが。
開発者のジョークだろ。
0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNGstd::sort(v.begin(),v.end(),*_1 < *_2);
と書くほうが 関数オブジェクト用意するより見やすくない??
ifだとか色々使うのはもう潔く関数オブジェクトにしたほうがいいとは思うけど
0262デフォルトの名無しさん
NGNG意地でもワンライナーな皆さんを応援しちゃうぞ、みたいな。
# 好んで使いますが(w
0263デフォルトの名無しさん
NGNGできる所がうれしい。
難を言えば、gccぐらいでしか動かない事かな。
composeってcompose_f_gx_hyとか?あれは欲しいよ。二つの文字列
をある基準で比較する時なんかにstd::lexicographical_compareと
組み合わせてよく使っている。
0264デフォルトの名無しさん
NGNGcomposeの奴、書いてみてー。
0265デフォルトの名無しさん
NGNGSTLスレッドからの転載だけど、例えばstringを大小文字区別しないで辞書順に
挿入したりソートしたりする時とか。
struct StrCmpi {
bool operator() (const std::string& s1, const std::string& s2) const {
return std::lexicographical_compare(s1.begin(), s1.end(), s2.begin(), s2.end(),
boost::compose_f_gx_hy(std::less<char>(), std::ptr_fun(std::toupper), std::ptr_fun(std::toupper)));
}
};
int main()
{
typedef std::map<std::string, size_t, StrCmpi> Ssize;
Ssize mp;
mp.insert(std::make_pair("test1", 123));
mp.insert(std::make_pair("Test2", 456));
Ssize::const_iterator pos;
for (pos = mp.begin(); pos != mp.end(); ++pos)
std::cout << "string = " << pos->first << ", size_t = " << pos->second << std::endl;
}
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNGstruct StrCmpi : public std::binary_function<const std::string&, const std::string&, bool> {
bool operator() (const std::string& s1, const std::string& s2) const {
return std::lexicographical_compare(s1.begin(), s1.end(), s2.begin(), s2.end(),
boost::compose_f_gx_hy(std::less<char>(), std::ptr_fun(std::toupper), std::ptr_fun(std::toupper)));
}
};
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNGptr_fun使わないで、関数オブジェクトを呼び出すようにすれば
いいじゃん。その代わり既存のライブラリは使えなくなるが。
0270デフォルトの名無しさん
NGNG後者だったりする場合、boostって使えてますか? 使ってる人感想きぼうん
0271デフォルトの名無しさん
NGNGhttp://216.239.33.100/search?q=cache:hOeO5TxQ0e8C:boost.sourceforge.net/regression-logs/cs-linux.html+Kylix+boost+bind&hl=ja&ie=UTF-8
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNGBCCはboost::lambda、boost::format、boost::array、boost::multi_array以外は
だいたい通るよ。kylixが糞なのだと思う。
0274デフォルトの名無しさん
NGNG今 C++ コンパイラ作り直してるから、それが出て完成度が高まるまで
待つしか。
0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNGある人いる?
0277デフォルトの名無しさん
NGNGboost使っても、コードの中に"boost"とかいう文字列でも入らなければ、
使った事はまずわからないような気もするが。
テンプレートライブラリはそういう点ズルができそう。
0278276
NGNG$ g++ hoge.cpp
$ nm a.out |grep boost
080493fc W _ZN5boost12lexical_castISsiEET_T0_
0804a3ea W _ZN5boost16bad_lexical_castC1ERKS0_
0804a3ca W _ZN5boost16bad_lexical_castC1Ev
0804a488 W _ZN5boost16bad_lexical_castD0Ev
0804a40c W _ZN5boost16bad_lexical_castD1Ev
0804a4c2 W _ZNK5boost16bad_lexical_cast4whatEv
0804b00c V _ZTIN5boost16bad_lexical_castE
0804a548 V _ZTSN5boost16bad_lexical_castE
0804b018 V _ZTVN5boost16bad_lexical_castE
$ strings a.out |grep boost
N5boost16bad_lexical_castE
$ strip a.out
$ strings a.out |grep boost
N5boost16bad_lexical_castE
0280デフォルトの名無しさん
NGNG.?AVbad_any_cast@boost@@
boost::bad_any_cast: failed conversion using boost::any_cast
.?AVuse_count_is_zero@boost@@
0281デフォルトの名無しさん
NGNGだよね。きっと。
0282デフォルトの名無しさん
NGNGたとえば regex.hpp には次のような条がある。
/*
*
* Copyright (c) 1998-2002
* Dr John Maddock
*
* Permission to use, copy, modify, distribute and sell this software
* and its documentation for any purpose is hereby granted without fee,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation. Dr John Maddock makes no representations
* about the suitability of this software for any purpose.
* It is provided "as is" without express or implied warranty.
*
*/
ということで、バイナリには "Copyright (c) 1998-2002 Dr John Maddock"
を埋め込んで、ドキュメントには上の条文全文を記しておけばよいらしい。
でも不安なのは、"this software" というのが何を指すかだ。こちらが作った
プロダクト全体を指す、とか解釈されたらたまらんw
0283続き
NGNG// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
// Copyright (c) 2001, 2002 Peter Dimov
//
// Permission to copy, use, modify, sell and distribute this software
// is granted provided this copyright notice appears in all copies.
// This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
//
// See http://www.boost.org/libs/smart_ptr/scoped_ptr.htm for documentation.
//
となっている。こちらは copyright notice だけでよいらしい。
でも、"the above copyright notice" じゃなくて、"this copyright notice"
になっているところが不安。まさか条文全体のことを指してるとかw
0284デフォルトの名無しさん
NGNG[copyright.h]
namespace {
const char* regex_hpp = "Copyright (c) 1998-2002 Dr John Maddock";
const char* scoped_ptr_hpp = "(C) Copyright Greg Colvin and Beman Dawes 1998, 1999."
"Copyright (c) 2001, 2002 Peter Dimov";
}
とでもしておいて、boostをincludeするときにコイツも一緒にincludeすればいいかな。
ありがとう。
0285デフォルトの名無しさん
NGNG基本的にMITとか変形BSD的なライセンスだから、そんなに気にせんでいいと思うが。
・ソースを公開するときにはboostのライセンス表記をそのまま残す
・ドキュメントにはCopyRight表記を残す
で。
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNGコメントじゃいかんの?
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNGといわれても、普通は#includeするだけだから残すもなにもないとおもうんだけども。。
0293デフォルトの名無しさん
NGNGライブラリ部分を改変した場合の話なんじゃ?
0294デフォルトの名無しさん
NGNGなる舗道
0295デフォルトの名無しさん
NGNG・バイナリへの埋め込みは推奨(義務ではない)。
・作成したプログラム等に付属するドキュメント等には
明記する必要はなし。
・ライブラリを改変等した場合に©表記の必要が
でてくる。
であってる?
0296デフォルトの名無しさん
NGNG・作成したプログラム等に付属するドキュメント等にはライブラリ冒頭の
ライセンス条項をそのまま転記する必要がある(*)。
・ライブラリを改変等した場合に元のライブラリ冒頭の?表記を削除
してはいかん。
(*)必要ないライブラリもある(scoped_ptr他)
だと思われ。
0297デフォルトの名無しさん
NGNGs/?表記/copyright表記/
化けてしまったよ。
0298デフォルトの名無しさん
NGNGboostも使っている人っています?boost使うことを密かに画策中なんですが。
0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNGおいおい
0301デフォルトの名無しさん
NGNG僻むほど難しくないから使ってごらん。
ほんとに。
0302デフォルトの名無しさん
NGNG簡単ですがそれが何か?
0303298
NGNG0304デフォルトの名無しさん
NGNG0305298
NGNG僕は便利だと思っているのですが、それはどうやら間違った考えだったので304=299さんのように
boostなどはきっぱりと使うのをやめ、まっとうなコーディングに戻ります。
お導きありがとうございました。
...とでも言って欲しいんでしょうか?意図を量りかねる。
0306デフォルトの名無しさん
NGNG> 意図を量りかねる。
それは馬鹿だから。
0307299
NGNGperl >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> boost
0308デフォルトの名無しさん
NGNGperl厨のせいにしようとしてるよ。
必死だな。よっぽど悔しかったと思われる。
0309デフォルトの名無しさん
NGNGいろいろ試しているんだけどよくわからない・・だれかhelp.
typedef boost::indirect_iterator_pair_generator<
std::vector<var*>::iterator, // 元になるイテレータ(or ポインタ)
var // operator*(operator*())が返す修飾なしの型
// ここにconstと非constについての参照型やポインタ型が並ぶが省略可
> iterator_gen; // とりあえず命名
std::vector<var*> var_list;
iterator_gen::iterator i(var_list.begin());
iterator_gen::const_iterator j(var_list.begin());
0310デフォルトの名無しさん
NGNG面白かつ便利そうなので使ってみようと思うのですが,いまいち情報が少なくて...
コーディングしたときの速度なんかについても教えてほしいです.
やはり,便利と速度は両立しないのでしょうか?ここが特に気になります.
0311デフォルトの名無しさん
NGNGbind, iterator_adaptors あたりは、最適化(inline化)しないと遅いかもしれない。
でも、最適化かければぐちゃぐちゃにinline化されてなかったことになる(言い過ぎ)
のであまり気にしてない。
そもそも、boostと一口にいわないで、boostのどれ、と言わないと答えにくいと思われ。
0312デフォルトの名無しさん
NGNGどうinline化されるのか見たいんだけど、asm出力見る以外の方法ないかな?
http://public.kitware.com/GCC_XML/HTML/Index.html を使うのはどうかと
妄想しているんだけど使ったことあるひといません?
0313デフォルトの名無しさん
NGNGregex++を使いたいと思って入れてみたんですが,
CodeWarrior5用のプロジェクトファイルは発見できたものの,
8では読み込めずどうしたものかと。。。
regex++の場合は単に,hppをincludeすればいいというわけにはいかないんですよね?
0314デフォルトの名無しさん
NGNGtemplate<typename A> struct iterator_gen :
boost::indirect_iterator_pair_generator<
std::vector<A*>::iterator,
A
> {};
あと適当にHelper関数作ったほうが便利だと思うけど、
std::iterator_traitsとかboost::type_traits の詳細を忘れた。。。
0315デフォルトの名無しさん
NGNGvc60にて、"boost/lambda/lambda.hpp" をインクルードしただけで
"fatal error C1001: 内部コンパイラ エラー" というエラーが発生してコンパイルができません。
回避方法をご存知の方がいらっしゃったら教えてください。よろしくお願いします。
0316デフォルトの名無しさん
NGNGhttp://www.boost.org/status/cs-win32.html
無理そう。。。。
0317デフォルトの名無しさん
NGNG無 駄 で す
0318rubyist@カラアゲうまうま
NGNG0319デフォルトの名無しさん
NGNG「2003年初頭リリースのMicrosoft C++コンパイラ新版では
ISO C++標準に対して98%近い準拠になる」
残り2%の非対応部分にboostが引っ掛かってしまう悪寒
0320デフォルトの名無しさん
NGNGhttp://www.zdnet.co.jp/news/0211/09/nebt_03.html
こんな肩書きの仕事があるんだねえ。
0321デフォルトの名無しさん
NGNGそこりの2パーセントがなんなのかを列挙して欲しいところですな。
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNG読んでるんだが、ここに出てくる "intrusive counting" とか
"intrusive-counted smart pointer" の意味がよく分かりません。
誰か教えてくだされ。
0325デフォルトの名無しさん
NGNGつまり、参照カウントであれリンクリストであれ、管理される対象としての
オブジェクトの中身をいじるようなのがintrusive (侵入的) と呼ばれるわけだね。
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNG存在することの方が驚きだ(ぉぃ 具体的に、どのあたりの処理系が
サポートしてるんでしょう? ちょっとドキュメント読んでみたいぞ。
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGどうもありがとうございました。
0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNGΛ ・・・モナーの耳、でもないし・・・。
0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNGmodulo ≡λ(x, y : N→N) x%y
0336333
NGNG0337デフォルトの名無しさん
NGNGλ算法→lispのlambda→boost::lambdaじゃないの?
でも、λ算法がなぜλなのかは知りませんです。
0338デフォルトの名無しさん
NGNG>>276 - >>297
Boostのライセンスは、cppllの、
ttp://www.tietew.jp/cppll/archive/5773
のスレッドが参考になります。
0339由来
NGNG__λ...________
{
}
日本海{
0340デフォルトの名無しさん
NGNGこれってやっぱり仕事で使うのはヤバイ?保守性下がる?
コードは小さくなりそうなんだけど。。。
0341デフォルトの名無しさん
NGNG強力だし、面白いから癖になって乱用しそうなヨカソ
0342デフォルトの名無しさん
NGNGTypelistには前に驚いたけど、これにもびっくり。
Cをそれほど深くやっていたわけじゃないので正直驚いた。
マクロプログラミングマンセー!!!
0343デフォルトの名無しさん
NGNG今まで強調されてたマクロの弊害が、ウソみたいに思えてくるから不思議ですね。
マンセー!!!
でもやっぱりこれはライブラリ内のような特殊な場所だけで使うべきものかな。
可読性も重要な要素だし。。。
0344デフォルトの名無しさん
NGNGリストはまともに動くとして、配列は、SIZE(要素数),
ELEM(要素取得),DATA(そのままの値)の三種類のマクロしかないし、
タプルに至ってはかなり動作がおかしい。汗
#define LIST (a, b, c)
BOOST_PP_LIST_TO_TUPLE(LIST)
でTUPLEを作成すると
⇒ ( a , b , c )
と余分なスペースが入ってしまいます。
これがBOOST_PP_TUPLE_*マクロにおいては致命的だったりします。
使おうと思ってるひとは要注意です。
boost内部で結構使いまくってるから、それ見ればいいんだろうけど、
そこまでやるような元気はいまのところはないしなあ。。。
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNG動作がおかしいのはあなたの頭ではないかと
存じますがいかがでございましょうか?
> #define LIST (a, b, c)
それtupleでしょ?
> これがBOOST_PP_TUPLE_*マクロにおいては致命的だったりします。
なにが?
#include "boost/preprocessor/list/adt.hpp"
#include "boost/preprocessor/list/to_tuple.hpp"
#include "boost/preprocessor/list/size.hpp"
#include "boost/preprocessor/tuple/elem.hpp"
#include "boost/preprocessor/tuple/reverse.hpp"
#include "boost/preprocessor/tuple/to_list.hpp"
#include "boost/preprocessor/stringize.hpp"
#include "boost/preprocessor/arithmetic.hpp"
#define LIST (a, (b, (c, BOOST_PP_NIL)))
#define LIST_SIZE BOOST_PP_LIST_SIZE(LIST)
#define TUPLE BOOST_PP_LIST_TO_TUPLE(LIST)
TUPLE
BOOST_PP_STRINGIZE(BOOST_PP_TUPLE_ELEM(LIST_SIZE, 1, TUPLE))
#define TUPLER BOOST_PP_TUPLE_REVERSE(LIST_SIZE, TUPLE)
BOOST_PP_TUPLE_TO_LIST(LIST_SIZE, TUPLER)
( a , b , c )
"b"
(c, (b, (a, BOOST_PP_NIL)))
0347デフォルトの名無しさん
NGNGいや、LISTの件は打ち間違い。訂正ね。
>( a , b , c )
だからこれがうまいこと処理されないのよ。
これから無駄なスペースを取り除くのはREPEATを使ってやるしかなさそうだけど、
今考え中。
0348デフォルトの名無しさん
NGNG評価されます。
0349デフォルトの名無しさん
NGNGREVERSEとTO_LISTとELEMに関してはなんの問題もないと思う。
というかスペース云々も関係なし。
REMとEATの使い方がおかしいらしい。もうちょっと試してみますね。
失礼しました。m( )m
0350デフォルトの名無しさん
NGNGBOOST_PP_TUPLE_REM(3)(a, b, c)はどうもうまくいかないなあ。
(a, b, c)のところが文字列そのままなら上手くいくんだけど、
#define切った値だとうまくいかず。
やってることは
#define TUPLE (a, b, c)
BOOST_PP_TUPLE_REM(3)TUPLE
ってだけなんだけど、
BOOST_PP_TUPLE_REM_3(a,b,c)
ってところまででプリプロセッサが評価するのやめちゃう。
あと一つなんだけどなあ。。。
上のヘッダーにはちゃんと
#define BOOST_PP_TUPLE_REM_3(a, b, c) a, b, c
ってのが入ってます。
無知な私に誰か助け舟よろしこ。
環境 cgywin g++ 3.2
0351デフォルトの名無しさん
NGNG#include "boost/preprocessor/cat.hpp"
#include "boost/preprocessor/tuple/rem.hpp"
#define TUPLE (a, b, c)
BOOST_PP_CAT(BOOST_PP_TUPLE_REM(3), TUPLE)
a, b, c
0352デフォルトの名無しさん
NGNG素晴らしいです。thanx!!!
0353デフォルトの名無しさん
NGNG#include <boost/preprocessor/control/if.hpp>
#include <boost/preprocessor/tuple/eat.hpp>
#include <boost/preprocessor/tuple/rem.hpp>
//リストからタプルとその要素数を作成
#define LIST (a, (b, (c, BOOST_PP_NIL)))
#define LIST_SIZE BOOST_PP_LIST_SIZE(LIST)
#define TUPLE BOOST_PP_LIST_TO_TUPLE(LIST) //( a , b , c )
//タプルのカッコを外す
BOOST_PP_CAT(BOOST_PP_TUPLE_REM(LIST_SIZE),TUPLE)
//⇒ a, b, c
//条件により、タプルの消去または整形を行う
#define OP(x, y, z) (x * y * z)
#define MACRO(n) BOOST_PP_CAT(BOOST_PP_IF(n, OP, BOOST_PP_TUPLE_EAT(LIST_SIZE)),TUPLE)
MACRO(0) //expand to nothing
//⇒
MACRO(1)
//⇒ (a * b * c)
/*
いちおう後から誰か見るかもしれないので、まとめてみました。
BOOST_PP_TUPLE_REM、および、BOOST_PP_TUPLE_EATのサンプルコード
においては上のようにBOOST_PP_CATを使うのがよさそうです。
*/
/* >>346さん、>>351さん、激しく感謝! */
0354デフォルトの名無しさん
NGNG#include <boost/preprocessor/list/to_tuple.hpp>
抜けてた
おれもう、ダメぽ
0355ヒキコモラ
NGNG0356デフォルトの名無しさん
NGNG他の人と共同でプログラムを作成するときに、
・AさんはBoostをインストールしている
・Bさんはインストールしていない
こういう状況で、AさんのコードをBoostのインストール無しで
Bさんの環境で使用することはできるのでしょうか?
0357デフォルトの名無しさん
NGNGもちろんできません。
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNGあとはただのテンプレートライブラリです。
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNGそれをBさんのPCに設置するのを「インストール」とは言わんのか
0362デフォルトの名無しさん
NGNGそれかLIBにするか。でもexportキーワードをサポートしてないコンパイラだと
そもそもboostをLIBにすることはできん。
0363デフォルトの名無しさん
NGNG実行ファイルに埋め込まれたものを設置する場合
「Aさんのプログラムをインストール」と言うことはあっても
「Boostをインストール」とは普通言いません。
>>359にあるライブラリを使わなければすべてインライン展開
されますから別途ランタイムも必要ありません。
0364デフォルトの名無しさん
NGNGコンパイル済みプログラムではなくてコードと書いてありますが何か?
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNG0367356
NGNGでも、なんとなくわかりました。
ようするに、大抵のやつは、boost以下のディレクトリを
そのままコピーしちゃえば使えるってわけですね。
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNGきちんと消化してから移行
0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNGこちらで細々とやっていきます。
0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNGLokiの方が実装が綺麗なんですが、boostは機能が多い。またSTLに
似せて作られているので使いはじめるのは割と簡単。また半公式的
ライブラリという形でサポートも一応続けられるだろう。
みなさんのお考えを聞かせて。
0374名無しさん@Emacs
NGNG#include<boost/mpl/vector.hpp>
#include<boost/mpl/push_back.hpp>
#include<boost/mpl/at.hpp>
using namespace boost::mpl;
typedef vector<int,int,int> types1;
typedef push_back<types1, int>::type types2;
typedef at_c<types2, 2>::type type;
BOOST_STATIC_ASSERT((boost::is_same<type,int>::value));
int main(){}
このようなコードでコンパイルすると以下のようなメッセージが出ます。
test.cc: `boost::mpl::push_back<types1, int>' の初期化:
test.cc:7: `boost::mpl::at_c<types2, 2>' から実体化されました
test.cc:7: ここで実体化されました
test.cc:7: base class `
boost::mpl::push_back_traits<boost::mpl::aux::vector_tag<3>
>::algorithm<types1, int>' has incomplete type
test.cc: `boost::mpl::at_c<types2, 2>' の初期化:
test.cc:7: ここで実体化されました
test.cc:7: no type named `tag' in `struct types2'
test.cc:7: 文法エラー が `;' トークンの前にあります
test.cc:8: `is_same' undeclared in namespace `boost'
test.cc:8: `type' was not declared in this scope
test.cc:8: 構文解析エラー が `>' トークンの前にあります
test.cc:8: ISO C++ forbids declaration of `BOOST_STATIC_ASSERT' with no type
何がおかしいんでしょうか?
環境はcygwin g++-3.2です。
0375デフォルトの名無しさん
NGNG作者さん曰く、
http://lists.boost.org/MailArchives/boost/msg40024.php
> Basically, what compiler is trying to say here is that
> 'push_back' on 'vector' is currently not implemented, - sorry! I know it
> differs from what the docs say, and it's on my to do list. Meanwhile, if you
> switch to using 'push_front' instead, everything will work just fine.
だそうな。
0376デフォルトの名無しさん
NGNGどうもありがとう。mplが非公開な理由が分りました。
しばらくはその実装を見ながらゆっくりじっくり勉強する方がよさそうですね。
0377デフォルトの名無しさん
NGNG0378カラアゲ
NGNG0379デフォルトの名無しさん
NGNGなにか理由があるのかな?
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG試しにコンパイルしようとしたのは、libs/thread/tutorial/count.cppです。
$/usr/bin/g++-3.2 -I/usr/include/boost -lpthread -lstdc++ \
-lboost_thread counter.cpp -o counter
こんな感じにコンパイルしたのですが、全てのthreadライブラリ関数において
エラーが出ている模様です。
gccの基本的な使い方が悪いとは思うのですが、どこをどうしたらいいのやら
全く分りません。助けてください。
0383デフォルトの名無しさん
NGNGerror message はどんなのが出とるんじゃい。
-L で boost_thread の場所をし忘れてるだけとかじゃあるまいな。
0384デフォルトの名無しさん
NGNG○ 場所を指定し忘れてる
イッテクル
0385デフォルトの名無しさん
NGNGDebianなのでlibboost_thread.aは/usr/libの下にあります。
なのでディレクトリ指定は要らないはずです。
エラーメッセ―ジですが、先頭の数行だけ貼らせてください
/tmp/ccvytNoa.o(.text+0xba): In function `main':
: undefined reference to `boost::thread_group::thread_group[in-charge]()'
/tmp/ccvytNoa.o(.text+0xed): In function `main':
: undefined reference to `boost::thread_group::create_thread(boost::function0<void, boost\
::empty_function_policy, boost::empty_function_mixin, std::allocator<boost::function_base\
> > const&)'
/tmp/ccvytNoa.o(.text+0x12e): In function `main':
: undefined reference to `boost::thread_group::join_all()'
/tmp/ccvytNoa.o(.text+0x145): In function `main':
: undefined reference to `boost::thread_group::~thread_group [in-charge]()'
/tmp/ccvytNoa.o(.text+0x162): In function `main':
: undefined reference to `boost::thread_group::~thread_group [in-charge]()'
/tmp/ccvytNoa.o(.text+0x1c8): In function `__static_initialization_and_destruction_0(int,\
int)':
0386デフォルトの名無しさん
NGNGlibboost_thread.aはどこにあったファイルをコピーした?
libs/thread/build/bin/libboost_thread.lib/gcc/release/runtime-link-static/threading-multi
にあった奴をlibにコピーして使うとうまくリンクできて実行できました。
0387デフォルトの名無しさん
NGNGレスありがとうございます。
えーと、Debianなのでapt-getしたまでです。
Debian/unstableのboostは1.29です。
もしかしたらバイナリの互換性がないg++-3.1で
ビルドされているのかもしれないですね。
それもありえるとは思うのですが、でもgcc3は
3.2に積極的に移行を進めているわけだし
それもなさそうな・・・んー
0388デフォルトの名無しさん
NGNG0389名無しさん@Emacs
NGNGbjamの使い方が分からないので、DebianやGentooを使っているのですが(藁、
どうしてもリンクエラーが出ます。ともにバージョンはboost-1.29,gcc-3.2
ソースは以下のような極単純なもの。Gentooに関してはgcc-3.2でビルドして
いるので、例のバイナリ互換性の話は関係ないはずです。
/* test1.cpp */
#include<boost/thread/thread.hpp>
boost::thread th;
int main(){}
エラーは以下の通りです。
/usr/bin/g++-3.2 -Wall -I/usr/include/boost -L/usr/lib -static -lboost_thread test1.cpp -o test1
/tmp/ccwtA3Jx.o(.text+0x36): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `boost::thread::thread[in-charge]()'
/tmp/ccwtA3Jx.o(.text+0x65): In function `__tcf_0':
: undefined reference to `boost::thread::~thread [in-charge]()'
collect2: ld はステータス 1 で終了しました
make: *** [test1] エラー 1
もう分からない。。。これ以上はスレ違いなのでよそへ逝きます
0390デフォルトの名無しさん
NGNGもしかしてビルド時に何か失敗してるかも。
bjamの使い方は簡単です。
http://www.boost.org/tools/build/index.html#Jam
から目的のOSにマッチしたbjamを落とし、実行ディレクトリに入れます。
boostをインストールしたディレクトリをカレントディレクトリにしてから
bjam[enter]
と入力するだけで、gccベースの場合は自動的にコンパイルしてくれます。
0391デフォルトの名無しさん
NGNGやってみよう!
0392デフォルトの名無しさん
NGNG382氏はDebian使ってるってんだからわざわざビルドさせんでも…
という気がする。
0393デフォルトの名無しさん
NGNGソースをビルドしなくても使えるの?
0394デフォルトの名無しさん
NGNGLinux のディストリビューションの一つ。
> ソースをビルドしなくても使えるの?
何か激しく勘違いしてると思われ。
0395デフォルトの名無しさん
NGNGそうなんですか?
>わざわざビルドせんでも・・・
と書いてあったのでてっきりそうなのかと。
0396デフォルトの名無しさん
NGNGビルド済みのが自動で落としてインストールできるようにパッケージ化されてんの。
http://packages.debian.org/unstable/devel/libboost-dev.html
ぶっちゃけ、WindowsUpdate みたいなものっつーか。
0397デフォルトの名無しさん
NGNGそれ(・∀・)イイ!!ぜひWindowsにも実装して欲しいものだ。
と言ってもビルドはboostに限って言えば非常に簡単なのだが。
0398デフォルトの名無しさん
NGNGして試される事を強くオススメしたい。
出来るものは同じかもしれないが、もしかしたら違うかもしれないし。
0399デフォルトの名無しさん
NGNGGoSub よく使うけど。
GoTo と一緒で、使い様って事でしょ。
0400399
NGNG0401デフォルトの名無しさん
NGNGgccなんかでもcontribというディレクトリに違うライセンスの
ファイルを嫌そうに入れてあるけど。
0402デフォルトの名無しさん
NGNGここで訊くな。
0403デフォルトの名無しさん
NGNG0404デフォルトの名無しさん
NGNGlexical_cast って、 ワイド文字に対応してないんだね。
wstring str = lexical_cast< wstring >( x ); でコンパイルエラーが出たときは涙でたよ
0405デフォルトの名無しさん
NGNG実のところこのlexical_cast、ver 1.29.0 では wchar_t 系統にに関する対応がさっぱりだったり
lexical_cast<string>("space is included") で例外を投げたりしてしまってよろしくないのですが、
次版ではその辺含めてかなりパワーアップする模様。
ということらしい。(http://www.kmonos.net/alang/boost/classes/lexical_cast.html より)
0406デフォルトの名無しさん
NGNGつーか標準で
#ifndef USE_WIDE_CHARACTOR
typedef char char_t
#define str_t( text ) (text)
#else
typedef wchar_t char_t
#define str_t( text ) L(text)
#endif
typedef std::basic_string< char_t > tstring;
typedef std::basic_stringstream< char_t > tstringstream;
とか定義して、
tstring str = str_t("12.4");
とか出来るようにしてほしい。
0407デフォルトの名無しさん
NGNGんな事したらchar→wcharの変換が…
0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1038031395/961
0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNGBOOST_PP_*の使用を強制させようとしたのだけど、どうも周りから
同意が得られませんでした。みなさんのところはどうですか?
こういうのってみんなで一斉に始めないとダメだと思うのだけど。
0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNG上がしっかりしてるだけまだマシ。
漏れの所なんて…
0421IP記録実験
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNG恒久保存なんて無理でしょ。
0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNG0429IP記録実験
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0430デフォルトの名無しさん
NGNG|:::└┬┘:::|
|:::┌┴┐:::|
/ ̄ ̄\ ノ::::::丶 /:::::::\. / ̄ ̄\
| 記念 .> (::(,,゚Д゚)(゚ー゚*)::) < パピコ .|
\__/ |:∪::::| |::::∪::|. \__/
〜((((:::::))(((:::::)))〜
∪ ̄U U ̄∪
0431デフォルトの名無しさん
NGNGそれ以外の時間は実況板にいる実況厨には無関係な話な訳で
ip?どれだけでも取ったってください
無責任発言を繰り返す馬鹿や殺人予告するど阿呆が減っていいんじゃないっすか?
0432デフォルトの名無しさん
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバで生意気なIPをシめてやる実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
赤黒い怒張が暴れているということはお尻がおねだりしていることを視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPをシめて何か今までと変わることってあるのでしょうか?
・今までより、肉棒は硬度を増していく。
・裁判所や警察からの舌技があった場合にはサーモンピンクの亀頭が徐々に姿を現すことがある。
0433デフォルトの名無しさん
NGNGイスラエルのひろゆこ---インドのよしゆき---中国のひろゆこ---北欧のひろゆこ---カナダのひろゆこ---エジプトのひろゆこ
---自宅のひろゆこ
に聞けば一発で分かります。
0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNGデジャヴか鯖がいかれたのかとオモタヨ...
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNG奇遇だね
0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNG訴状が来た時点ではまだ削除しなくておkなんじゃないの?
0443デフォルトの名無しさん
NGNGだからこそ荒らされたわけだよね。
犯人にそれ以上の請求をすべき。
0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGひろゆきが出てきたらもの凄い勢いで1000まで逝ってしまった・・・。
0446デフォルトの名無しさん
NGNGhttp://www.2ch.net/
トップにあるじゃねーか
0447デフォルトの名無しさん
NGNGチャンスですね。。奪還!
0448デフォルトの名無しさん
NGNG/ ´_ゝ`) IP太郎です。
| /
| /| |
// | |
U .U
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNGどういった手続きをとればいいんですかね?
0451デフォルトの名無しさん
NGNGこんなコピペ達も怖くて貼れなくなるわけで……。
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNGどんなスレでも糞スレの雰囲気を漂わせるからねぇ。
ある意味すげーけど。
0456デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG会社から削除依頼あったのに、無視してる時点で社会人失格!
2ちゃん失格!
で、今更なにを・・・
0459デフォルトの名無しさん
NGNG日付とIDを入力すると、IPアドレスの上位3組だか、下位3組だかが
表示されるやつ。
全パターンをデータベース化して持ってたらしいけど、
ヒマなやつもいるもんだと驚愕したものです。
0460デフォルトの名無しさん
NGNGIP取られても問題ないかと・・・
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGhttp://live2.2ch.net/test/read.cgi/news/1042035002/
674 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 23:36 ID:1BXnvYvY
通報する人は、IPはあるので管理者に連絡してくれれば、
「捜査関係事項照会書で照会しますよー」って言ってたて伝えてくださいー。
902 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 23:41 ID:1BXnvYvY
>警視庁の情報提供っていうフォームで通報していいですか?
フォームでもよいかと。
通報者の電話番号とかもきちんとかいといたほうが
取り上げられる可能性高いです。
ホントは110のほうがいいんですが、、
0464デフォルトの名無しさん
NGNGhttp://shopping.yahoo.co.jp/shop?d=jb&id=07107411
-----------------------------
「2ちゃんねるのウラオモテ超入門」
マイウェイムック、143ページ
監修・2ちゃんねる
発行・マイウェイ出版株式会社
発行日・2003年2月20日
値段・1429円
0465デフォルトの名無しさん
NGNG0466デフォルトの名無しさん
NGNGどこで見えるのか教えてちょーだいよ。
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNG0470デフォルトの名無しさん
NGNG書き込んだ人間に通知することが合理的に可能な方法としては、
2ch上(削除依頼対象のスレ)でやる以外にないでしょう。
後段はいまいち意味不明。発信者の特定は第三者機関からの要請があってから行えば十分な筈ですが?
0471デフォルトの名無しさん
NGNG0472山崎渉
NGNG0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNG起きたらPCサスペンドしてて、表示されてた最後のメッセージ見たら
「接続をリセットされました」。
で、もっかいupdateしようとしたら、
サーバーが落ちてるっぽい。
もしかして漏れのせいでつか?
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNG今度はCrayC++だってよ。NetBSDの移植みたいに、
こういうのにリソース食われてライブラリの開発が遅れてるんだな。
0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人 Ψ
/ ) < >__Λ∩
_/し' //. V*゚д゚)/
(_フ彡 / ←>>477
0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNGboost/preprocessorのMensonidesさんハケーン
0481474
NGNG0482山崎渉
NGNG0483デフォルトの名無しさん
NGNGboostのドキュメントの日本語訳に関するプロジェクトが
始まってます。使っているOSやコンパイラの垣根を越えて
共同作業というのもたまにはいいのではないでしょうか。
0484デフォルトの名無しさん
NGNGgcc3.2、bcc5.5ではコンパイル通らないぞ( ゚Д゚)ゴルァ!と思ってたら
VC6で通ってしまった。
世の中わからんもんだなぁ。。。
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNG英語力が激しくなくて巧く訳せん!!鬱だ。
どうでもいいけど、>>483は道化師であるに一票。
ということで、このスレは、今後三日間書き込みがない場合、Boost-jpのグチスレになります。
0488デフォルトの名無しさん
NGNG似たような書き込みをしてみようかと考えなかったわけじゃないけど、おいらぢゃないよ〜。
・・・まぁ、誰かは知らんが、困ったらあの翻訳者MLででも訊いて、がんばっちくれ。
0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNGたしか無い・・・と思った・・・
まぁ auto_ptr コピって
delete => delete []
にするだけでいい・・・んじゃないかな、たぶん・・・
0493デフォルトの名無しさん
NGNGBoostにすら無いとは・・・。
改造なら、boost::*_ptr/boost::*_array的には、
・auto_arrayに改名
・operator[]を実装
まだある鴨
0494デフォルトの名無しさん
NGNG「std::auto_ptrの配列版」ならできて、
「std::vector」だとできないことって、なんかある?
0495デフォルトの名無しさん
NGNGboost::scoped_array ならあるが、代入はできんな。
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNGMakefileのJam版だと思われ
0498デフォルトの名無しさん
NGNG聞いたこと無いけど。
0499497
NGNGhttp://www.boost.org/tools/build/index.html
ここでも読んどけや
0500497
NGNGhttp://www.boost.org/tools/build/build_system.htm
0501デフォルトの名無しさん
NGNG以下で(不格好だが)なんとかなるかも、と思う。
std::auto_ptr<std::vector<int> > p;
...
std::cout << p.get()[1] << std::endl;
0502デフォルトの名無しさん
NGNGおぉう、素早い。
なるほど、Perforce Jam → Boot.Jam ですな。
なんだかmakeより使えそうなんだけど、日本語の情報はあんまりネェですな。
英語ドキュメントだけでしばらくがんばってみます。
0503デフォルトの名無しさん
NGNGきゃはは、なんだそりゃ?素直にvector使えって。
0504デフォルトの名無しさん
NGNG501に言ってもしょうがないだろう。
0505デフォルトの名無しさん
NGNGC++3版に書いてある標準ライブラリの場合は使うための要件を満たさないとあるけど・・・
0506デフォルトの名無しさん
NGNG残念ながら、使うための要件を満たさない。
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNGstd::auto_ptr<std::vector<int> >
↑これが「auto_ptrをコンテナの要素に使えるか」と関係あるのか?
0509デフォルトの名無しさん
NGNG>>503は「素直にvectorを使え」と言ってるから
vectorの要素に使えって意味だと思ったんだけど。
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNG>>491の「auto_ptrの配列版」ばかりに目が行ってたよ・・・
0512デフォルトの名無しさん
NGNGしかも主目的だったuBlasのサンプルプログラムが走らなかった罠。
該当ファイルをincludeする意外に必要な事ってありますか?
0513デフォルトの名無しさん
NGNGhttp://www.boost.org/status/cs-win32.html
これ見てコンパイラそのものを検討汁。
0514名無しさん
NGNG0515デフォルトの名無しさん
NGNGボロボロです。
http://216.239.33.100/search?q=cache:hOeO5TxQ0e8C:boost.sourceforge.net/regression-logs/cs-linux.html+Kylix+boost+bind&hl=ja&ie=UTF-8
0516デフォルトの名無しさん
NGNGuBlasのサンプルは"pass"だから逝けると思ったのだけど……
何でだろう……もちっとあがいてみます
0517そういえば
NGNG0518デフォルトの名無しさん
NGNGあったにはあったけど。
http://groups.yahoo.com/group/boost/files/auto_array_ptr/
中は自分で確かめれ。
0519面白そ
NGNGpossible to use boost::dynamic_any::any instead of Boost.Function. Though
this new solution is less specialized and probably slower then
Boost.Function it has one advantage demonstrated in the example below:
typedef boost::dynamic_any<
boost::mpl::list<
boost::dynamic_any::call<void (int &)>,
boost::dynamic_any::call<void (double &)>
>
> flexible_function; // 2 in 1!
int main()
{
flexible_function f;
f = ++_1; // increment for int and double
int i = 2;
f(i); // ++i
double d = 3;
f(d); // ++d
}
0520デフォルトの名無しさん
NGNG自分が使うためだけに訳すのなら徹底的に手抜きするが、
これはそうはいかない。何人もの人が読むはずだから。
頑張ろう。他にもプロジェクト参加中の方書き込みキボン。
0521デフォルトの名無しさん
NGNG>>487-488。
つーかさ、俺もプロジェクトは応援はするが、
おしゃべりなら cppll でやれや。
0522デフォルトの名無しさん
NGNGcppllでは最近BDTの話題がなくなってる。
皆翻訳が大変な事に気づいて必死なんだろう。
Boostjp-devメーリングリストもcvsのアップデート情報
だけです。
0523デフォルトの名無しさん
NGNG妙な直訳和訳が多いね。参加してないから偉そうなこと言えないけど。
0524デフォルトの名無しさん
NGNG直訳が一番安全なのですよ。内容をよく把握してないのに変に
意訳すると、意味が変わってしまい大変な事に。
0525デフォルトの名無しさん
NGNG内容をよく把握してない直訳には今までさんざんひどい目に遭わされたぞ。
カンベンしてくれ。
0526デフォルトの名無しさん
NGNG文脈によって意味が変わる単語も多いしね。
んで結局、原文の該当個所を調べて(和英翻訳)
辞書を引き直す(英和翻訳)という2度手間になってしまうし。
0527デフォルトの名無しさん
NGNGそれは最悪。訳文が意味不明な上に間違った知識まで植え付けられ、
読まない方がマシだね。
>>526
英語は初歩的な単語ほど文脈によってコロコロ意味が変わるから
ややこしいね。
関係代名詞を何回も使い長々とした文になっている場合は、単語を
取り除いてから機械翻訳に掛け、枠組みを把握した後で隙間を埋め
直すという方法を使っている。
#予想通りこのスレはBoost-jpのグチスレになりました。
0528デフォルトの名無しさん
NGNG最初から全部自分で訳した方が速い気がするが・・・
0529デフォルトの名無しさん
NGNGたとえ最良の翻訳でも、所詮は劣化コピー。
0530デフォルトの名無しさん
NGNG1行目はその通りだが
2行目はそりゃ、文学系の文書に使うセリフだろ
0531デフォルトの名無しさん
NGNGそりゃそうだが、日本語訳をする事により、英語が苦手でBoost
をあまり使いこなせていない潜在的Boostユーザーが増えるの
ではないかという期待があるからこそ訳が頑張れる。
0532487
NGNG0533490
NGNG0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>534
0536デフォルトの名無しさん
NGNGboost::variant なかなか面白そうだな。
0537デフォルトの名無しさん
NGNGそんなチミは
哲学・思想書を読むことがあったら
古代ギリシア語やラテン語で読むんだね
0539デフォルトの名無しさん
NGNGそれは1.30かい?
0540デフォルトの名無しさん
NGNGチミはどうして古代ギリシア語やラテン語を知る前から、
その哲学や思想に興味をもつことができるんだい?
0541デフォルトの名無しさん
NGNGしかしBoostのドキュメントが英語で書かれていると言っても、
BoostそのものはC++で書かれているので、別に英語を知らなく
てもよいじゃない?
0542デフォルトの名無しさん
NGNG0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNG1.31、に入れるかどうか現在MLで投票中なりよ。
boostのyahoo!groupsの置き場にあるので見てみるとよいかと。
>>540
例えば自分の好きな小説のモチーフとして、ダフニスとクロエが使われている
ということを知ってギリシャの古典に興味を持つとか、論理学の勉強をしてて
流れとして触れられたプラトンのイデア論について深く知りたいと思うとか、
あるいはそんな回りくどくなくても、高校生の時分に倫理の授業で知って、でも何でも。
別に「原典の翻訳」を読まなくても、幾らでも興味は持てると思うけど?
>>541
そうそう、同意。ライブラリのドキュメント、なんつーのはその面で、
原文を読むのも(間違いのない)翻訳を読むのも同じ価値があると思う。
だから、速く簡単に読めるようになる和訳が非常にありがたいケースだ。
# それと比べて、哲学だの思想だの文章とは全然毛色が違うだろ、と。
0545デフォルトの名無しさん
NGNG翻訳されたドキュメントが不可欠。何もやっていない香具師が横から
口出すのはウザイ。>529みたいなのを言うのはPC-UNIX系だけかと
思ってたけど、こんなところにもいたか。英語をそのまま読むのが
一番なのは事実として、でもそれでは認知されるのも限界があること
も確かなんだな。
0546デフォルトの名無しさん
NGNGそんな漠とした興味のところから
すぐにラテン語を勉強しようということになるのかニャ〜
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNGこの前ソフトウェア板で見た。
0549529
NGNGあたしゃ>>525-528あたりの流れに対して素朴な感想を述べたまでで、
特にBoostの翻訳プロジェクトに対して言及したわけじゃないよ。
日本語ドキュメントがあること自体は>>545の指摘通り有益なことだし。
0551デフォルトの名無しさん
NGNG自慢話はこちらでどうぞ。
http://pc.2ch.net/test/read.cgi/prog/1043098718/
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNGいらっしゃいませんでしょうか?どのくらい使えるんでしょう?
boost の web には icc6@win2k のテーブルしか載ってないのですが…
0554デフォルトの名無しさん
NGNG他のライセンスのものとまぜるとどうなるのか、
libpthreadよりも興味があります。
0555デフォルトの名無しさん
NGNG>>338
// 「どう」という日本語は曖昧すぎて答えづらいので、もっと
// 具体的に書いた方が望む結果を得られる確率が上がります。
0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNG#include <iostream>
#include <boost/regex.hpp>
int main()
{
using namespace std;
boost::RegEx r("a\\Z");
cout << (r.Search("a\nb") ? "match" : "not match") << endl;
return 0;
}
0559デフォルトの名無しさん
NGNGくれないのかぁっ!!知らなかった・・・
spirit とかいつまで経っても spirit.hpp しか無いからおかしいと思って
いたんだが・・・
スレ違いスマソ
0560デフォルトの名無しさん
NGNGboostコンパイルする場合
必ずiostreamはstlportの方をコンパイルして使う必要があるのですか?
0561デフォルトの名無しさん
NGNG0562アシュル ◆adhRKFl5jU
NGNGおれと同じだw
0563デフォルトの名無しさん
NGNGバグッポ。
正規表現が"a\\n*"でもマッチしてるし。
Boost-Users行き。
0564デフォルトの名無しさん
NGNG"a\\n*$"
0565デフォルトの名無しさん
NGNG便利な機能だとか、ここが優れているとか。
0566デフォルトの名無しさん
NGNGvc7+stlportで使ってる場合はどのメイクファイルでコンパイルすればいいの?
0567デフォルトの名無しさん
NGNGげえ、RegExバグ付きかよ。
これから先何を信用すればいいんだ・・・。
ところで、このスレと関係ないけどpcreってどうすかね?
Perlコンパチ正規表現ライブラリだそうで。
日本語使えないっぽいけど。
0568デフォルトの名無しさん
NGNGpcreは、マルチバイト関連は一応UTF-8にのみ「実験的対応」というステータス
らしい。詳しいことはしらないが
character classにはASCII文字しか指定できなかったり
そもそもUTF-8を使っておきながら、文字分類をUNICODEの定義ではなく
古典的なctype.hによっているため
「一応マルチバイトも意識はしてます」というレベルだと思われ。
apacheは以前はHenry Spencerの版にebcdic対応パッチを当てた
ものを使っていたが、最近はpcreを使ってるみたいね。
0569デフォルトの名無しさん
NGNG前、C++ 関連の ML で見た記憶が。
0570デフォルトの名無しさん
NGNGvc7+stlportで使ってる場合はどのメイクファイルでコンパイルすればいいの?
0571デフォルトの名無しさん
NGNG注目。
0572デフォルトの名無しさん
NGNGPCREつーと、こんなのがあるんだな。
0573デフォルトの名無しさん
NGNGhttp://lists.boost.org/MailArchives/boost/msg44852.php
1.30.0正式版はいつになるんだ・・・?
0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG落として解凍してみたけど、ドキュメントの1.29から変更したファイルだけ
タイムスタンプが変わっているのでありがたい。すぐわかる。
#Boost-jp の訳頑張っています。もうラスト・スパートに突入って感じですね。
0576デフォルトの名無しさん
NGNGぬ る ぽ。
0577デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>576
0578デフォルトの名無しさん
NGNGる 漏れとしてはLet's Boostがあれば十分だ。
ぽ
0579デフォルトの名無しさん
NGNG使うときはソース読んでまつ
0580デフォルトの名無しさん
NGNGなれなかった日本人が何人か使い出すかもしれない。俺的にはそれで
十分。
0581デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>578
0582デフォルトの名無しさん
NGNG俺の環境(windows2000、 vc6)だと
まず、ダウンロードしてきたbjamがうまく動かない。ダメポ。
で、bjamビルドする。attribはコマンドじゃねーよって言われて、ハアァ?。
C\WinNT\System32
をコンパイラ時の環境設定(VCVARS32.BATのパス)に入れる。ていうか、デフォルトで動いてください。
windows2000で使えないかとおもったよ。
ビルドした、bjam使ったら、うまくできました。
めでたし、めでたし。
0583デフォルトの名無しさん
NGNG{
public:
    c_error( const std::string& when , int c_errno );
};
void f( const char* name )
{
    if( std::remove( name ) != 0 )
    {
        throw c_error( "remove" , errno );
    }
}
↑のようなコードでは、removeによって設定されたerrnoが、
c_errorのコンストラクタに渡る保証はありますか?
std::string::string(const char*)の実装、引数の評価順によっては、
まちがったerrnoが渡ってしまう可能性があると思ったのですが・・・。
Boostとなにが関係あるかっていうと、boost::filesystem内で
例外を投げるコードがこんな感じになってまして。
0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNGリンク中...
path_test.cpp.obj : error LNK2001: 外部シンボル ""public: __thiscall boost::filesystem::path::path(class _STL::basic_string<char,class _STL::char_traits<char>,class _STL::allocator<char> > const &)"
(??0path@filesystem@boost@@QAE@ABV?$basic_string@DV?$c
har_traits@D@_STL@@V?$allocator@D@2@@_STL@@@Z)" は未解決です
っていう、エラーが9つでる。
ちなみにライブラリ(マルチスレッド、スタティックリンク版だと思う、、、、)をいれないと、
エラーが25個くらいでるでつ、まーあたりまえといえばあたりまえだが。
あと、レッツブーストのページのソースをビルドするとこんなエラーが、、、
error C2504: 'basic_ofstream<char,class _STL::char_traits<char> >' : 定義されていない基本クラスが宣言されています。
コンパイルされたクラスのテンプレートのインスタンス化 'boost::filesystem::basic_ofstream<char,class _STL::char_traits<char> >' の参照を確認してください
error C2678: 二項演算子 '<<' : 型 'class boost::filesystem::basic_ofstream<char,class _STL::char_traits<char> >' の
左オペランドを扱う演算子は定義されていません。(または変換できません)(新しい動作; ヘルプを参照)
error C2039: 'close' : 'basic_ofstream<char,class _STL::char_traits<char> >' のメンバではありません。
cl.exe の実行エラー
filesystem_2.exe - エラー 3、警告 0
なんでーーーー?
0586デフォルトの名無しさん
NGNGドキュメントを見る限り、filesystem::fstream は VC6では
はねられるように読めるが。
0587デフォルトの名無しさん
NGNGthx。確かに使えないと書いてあるっぽい。
でも、
__thiscall boost::filesystem::path::leaf(void)const " (?leaf@path@filesystem@boost@@QBE?AV?$basic_string@D
V?$char_traits@D@_STL@@V?$allocator@D@2@@_STL@@XZ)" は未解決です
って、 boost::filesystem::path とか、他のでもでるんですよね、、、
で、bjam悪いのかと思って、VC6でビルドしてみる。filesystemを除いてビルドしてみる。
stlport使わないでビルドしたライブラリ使ったら、リンクエラー。
exeのほうもstlport使用しないようにしたら途中でアボン(まぁ当たり前かな?)。
で、stlport使用でビルドしてみる。キターーーーー、うまくいったよーーーーー。やたーーー。
ちなみにstdafx.cppにソースをインクルードしてみましたが、これでよろしいのでしょうか?
他に、makefile使わないで作成する方法とかありますでしょうか?。
0588デフォルトの名無しさん
NGNG規格を読んでくとstd::allocatorがerrnoを変えない保証とかが
実はあったりするのかもしれんが、確かにぱっと見まずそうだな。
boostのMLに投げてみたら?
0589583
NGNG「boostのMLに投げる」って簡単?
Boostのサイトからいろいろ辿ってみたら、
結構めんどくさそうでしたが。
基本的に英語の読み書きがメンドクセェってのが多分にありますがね。
0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNG十分実用的に使えますか?
使っている人ってどのくらいいますか?
大丈夫ならこれを機に移行してみたいのですが。
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNGえ?マジですか?
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNG何を基準に速いとか遅いとか言ってるのかわからんが、
専用に作った物の方が汎用の物よりは速いと考えるの
が一般的だろう。
ヘタレの作った専用ルーチン vs 大ベテランの作った汎用ルーチン
だと、良い勝負だろうけど。
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNGゲームにはファミコンレベルからPS2レベルまであるわけだし、
Pentium 90Mhzぐらいでも速いといわれていた時期もあるわけだし、
boostと専用のものとじゃ100Mhzも処理速度の違いなんて無いだろうし、
そんな適当な説明じゃ実用的かどうかなんて判断できません。
0598デフォルトの名無しさん
NGNGそれから正直、プリプロセッサーメタプログラミングは
別にコジェネ書いた方が楽だね
0599デフォルトの名無しさん
NGNGみんなが使うと俺の優位性がぐらつくだろうが!!
0600デフォルトの名無しさん
NGNGワラタ
ついでに600ゲト
0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNGなりたいので、勉強してみます。
次に何を使うといいでつか?
0604デフォルトの名無しさん
NGNGnoncopyable
bind
any
この辺か?
0605デフォルトの名無しさん
NGNGlambda
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG一度は費用対効果というものを真剣に考えてみる必要がある。
習得コストや可読性を考えるとほとんどの開発者が
コストを回収しきれていないのが現実。
そのコストを貴重な休日で穴埋めしたいならそれでもいいけどさ。
0609デフォルトの名無しさん
NGNGBoost-jpやり直しか?今タイムスタンプをチェックしてる。
結構変わってるね。
0610デフォルトの名無しさん
NGNG次は MPL だろ。どー考えても。
>>608
仕事では使ってないよん。あくまで趣味。
っつーか仕事は VC++6.0 なので・・・
0611デフォルトの名無しさん
NGNG0612デフォルトの名無しさん
NGNG英語が良くわからないので検索してもサッパリ。
0613デフォルトの名無しさん
NGNG素質アリダヨ。
MLつってもメーリングリストじゃないよ。Meta Language。
0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNGfs::directory_iterator end;
fs::directory_iterator it(fs::current_path());
while(it != end)
{
std::cout << ".";
++it; // ←ココ
}
VC6、マルチスレッドでコンパイルすると ++it が
処理を返さなくなるけど、これは仕様ですか?
>585
VC6でfilesystem::fstreamを使うなら、
std::basic_ofstream<char, std::char_traits<char> >();
を最初に挿入しとくと通るよ。
0616デフォルトの名無しさん
NGNGほれ。
ttp://groups.yahoo.com/group/boost/files/lexical_cast_proposition/
あと、何気に 1.30.0 の lexical_cast がバージョンアップして、ワイド文字対応になった。
0617デフォルトの名無しさん
NGNGBoost使いには意外と関数型言語使いが混じってるんじゃないかと思う。
私はHaskell知ってからBoost知ったクチだし。
0618デフォルトの名無しさん
NGNGマジThx!
つーか1.30になってからlexical_castのドキュメント変わってるとマズイことに。
何故かは秘密♥
0619デフォルトの名無しさん
NGNG#define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
しないとエラーが出るようになった。VC7。どうして?
0620デフォルトの名無しさん
NGNGしくじったそうだ。↓のメッセージを追え。
http://lists.boost.org/MailArchives/boost/msg45656.php
0621デフォルトの名無しさん
NGNGTHX !! あらかじめ、インスタンスを生成しとくのね!?
グローバルで定義したり、boostの中に書いてみたり、使用クラスのなかで宣言してみたり
typedefしたり、うまくいかないでガセか?と、おもったけど、使用する関数で宣言すれば通るのね。
0622デフォルトの名無しさん
NGNG使えない。。
よく見ると、ドキュメントに記述があるのに、ヘッダファイルには痕跡がないし。
後、pathも使おうと思ってたのに、path::path()からして動かない。
vc6のせい?
ドキュメントに使用が書いてあるのに、実際には、まだ開発中って
珍しくないこと?
0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNGした。
0625デフォルトの名無しさん
NGNGコンパイルして、libファイル作って、
リンクもさせているはずなのに。
リンクのさせ方が変なのかなあ?
vc6+sp5です。
ちょっと出ていました。すみません。
0626デフォルトの名無しさん
NGNGエラーメッセージは出ないのに、実行してみると動作しないってことだよな?
0627デフォルトの名無しさん
NGNGgreg_day_of_weekは宣言されていないというエラー、
pathに関してはリンカエラーが出ます。
0628デフォルトの名無しさん
NGNGboost::gregorian::greg_weekday
pathのほうは、リンクのさせ方が変なんだろうな。
依然としてエラーの内容はわからんがな。
質問するなら、エラーメッセージをそのまま貼り付けるのがベストだ。
0629デフォルトの名無しさん
NGNGboost::filesytem系は動いてますよ。
bjamで作ったlibはリンクエラーでまくったので、自分でlib作成しましたが。
stlportのiostream使ってるかどうかで、リンクエラーでたりするのがうざい。
regex++みたいに、自動でライブラリやdllをいっぱい作成して、コンパイル時に適当なlibwo
選んでくれるようにデフォルトでならないかな・・・。
0630デフォルトの名無しさん
NGNGgreg_weekdayなんですか。
気づかなかった。。。
書き直したら全部うまくいくようになりました。有り難う。
filesystemの方は、
test.cpp
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/path.hpp>
string pathName = (LPCSTR)GetDocument()->GetPathName(); // データファイルのパス
for ( size_t i = 0; i != pathName.size(); i++ ) {
if ( pathName[ i ] == '\\' ) pathName[ i ] = '/';
}
boost::filesystem::path dataPath( pathName );
というソースで、
0631デフォルトの名無しさん
NGNGtest.obj : error LNK2001: 外部シンボル
""public: __thiscall boost::filesystem::path::path(class _STL::basic_string<char,class _STL::char_traits<char>,class _STL::allocator<char> > const &)"
(??0path@filesystem@boost@@QAE@ABV?$basic_string@DV?$char_traits@D@_STL@@V?$allocator@D@2@@_STL@@@Z)" は未解決です
なんていうリンクエラー。
629さんの言うように、libを自分で作らないと行けないのかなあ。
環境は、VC6+sp5+stlport4.5.3で、STLportのiostreamを使用。
bjam "-sTOOLS=msvc-stlport" "-sBUILD=debug release <runtime-link>static/dynamic <stlport-iostream>on"
でやってみて、生成物を[プロジェクト]→[設定]の
[リンク]→[オブジェクト/ライブラリモジュール],[追加ライブラリのパス]
で呼ぶようにしてるんだけど。。
0632629
NGNGでも自分でlib作成したらでなくなったけどね。
ところで、stdafx.hを使うプロジェクトでlib作成するときってさ、
stdafx.cpp に boost のソース を#include <boost/filesystem.cpp>とかしても問題ないのかしら?
(と、昔書いたが放置、、むしろ、VCスレで聞け?)
0633デフォルトの名無しさん
NGNGそれって、ライブラリのビルドのときにSTLport使われてんの?
0634デフォルトの名無しさん
NGNGif "%OS%" == "Windows_NT" set PATH=%MSDevDir%\BIN;%MSVCDir%\BIN;%VSCommonDir%\TOOLS\%VcOsDir%;%VSCommonDir%\TOOLS;%PATH%
if "%OS%" == "" set PATH="%MSDevDir%\BIN";"%MSVCDir%\BIN";"%VSCommonDir%\TOOLS\%VcOsDir%";"%VSCommonDir%\TOOLS";"%windir%\SYSTEM";"%PATH%"
set INCLUDE=%MSVCDir%\Include\stlport;%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%INCLUDE%
set LIB=%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%
set VcOsDir=
set VSCommonDir=
set STLPORT_PATH=%MSVCDir%\Include\stlport;
というように環境変数を設定した後に、
bjam "-sTOOLS=msvc-stlport" "-sBUILD=debug release <runtime-link>static/dynamic <stlport-iostream>on"
とやれば、使われるはずだと思っているのですが。
>>632
有り難うございます。
pathもサンプルプログラム(MFC/SDIを使用)ではうまく動作するようになりました。
まだメインの方ではうまく動きませんが(リンクはできるけど、実行時エラーが出る)、
そっちは別の問題のような気がするので、後で見てみます。
>ところで、stdafx.hを使うプロジェクトでlib作成するときってさ、
>stdafx.cpp に boost のソース を#include <boost/filesystem.cpp>とかしても問題ないのかしら?
Win32 Static Libraryでlibを作ったので、何とも。
0635デフォルトの名無しさん
NGNGそれじゃだめだとおもう。
↓ tools/build/msvc-stlport-tools.jam から引用
"Set STLPORT_PATH to point to the directory _above_ the STLport directory."
というわけで、VCにインストールしたパスじゃなくて、
STLportのパッケージを展開したパスの一つ上を指定するらしいぞ。
指定の方法は他にも何種類かあるみたいだから、
tools/build/msvc-stlport-tools.html も見といたらいいと思う。
sageでやる話でもないのでageとこう。
0636デフォルトの名無しさん
NGNG>>635
煽るわけじゃないが、それでうまくいくの?
stlportのひとつうえ指定したら、stlportのディレクトリ名変更してたら探せないようなきがするんだが、、、、
ひょっとして、バージョン情報ついたディレクトリ名を変更したらいけないのかな?
明日余裕あったら試してみるかな、、、
0637635
NGNG"This assumes that you didn't rename the STLport folder and allows for automatic selection of multiple STLport versions."
端折るくらいなら引用しない方が良かったかもな。
というわけで、引用などあてにしてないで、自分で読めってこった。
0638デフォルトの名無しさん
NGNG0639VC6 + STLPort
NGNG#include <boost/lexical_cast.hpp>
using namespace std;
int main()
{
using boost::lexical_cast;
string str_thousand = "1000";
int int_ninety = 90;
inta = lexical_cast<int>( str_thousand );
strings = lexical_cast<string>( int_ninety );
return 0;
}
0640VC6 + STLPort
NGNGE:\TMP_PROJECT\stlport\main.cpp(14) : error C2275: 'string' : typedef 識別子に、クラス メンバ アクセス演算子 (->) を使用しました。
d:\vs6\vc98\include\xstring(612) : 'string' の宣言を確認してください。
cl.exe の実行エラー
って出るんですけど、何が悪いんでしょうか?
0641デフォルトの名無しさん
NGNGlexical_castの前にboost::をつけるか
using namespace boost;
をつけてみたら?
0642VC6 + STLPort
NGNGwarning C4800 が出ましたが無事動作しました。
これは面白いですねぇ・・・仕事でも使いてぇ〜(w
0643デフォルトの名無しさん
NGNG上司説得しようぜ。
うちの場合、「便利なものあるんならどんどん使っていいんじゃないの?無料なら。」
といわれたので、使っておりますー。
0644デフォルトの名無しさん
NGNGC4800って非bool値をbool型の変数に代入しようとした時に出る
んじゃないの?まだ怪しい部分が残っているような・・・・業務では
使わない方が吉。
0645デフォルトの名無しさん
NGNG思われる。VC6に対応させるためのworkingaroundが随所に見られ、
その当たりにバグが残っているかもしれない。
0646デフォルトの名無しさん
NGNGうちは「フリーのやつは、バグがあった場合の責任問題が云々」という理由で却下されますた。
0647デフォルトの名無しさん
NGNG実際どうなんだろ。
VCのバグのほうは事実上どうにもならないが(大金払えば別だろうが)
フリーのSTLPortとかなら対処可能だよね
直すという結果が重要ではなく、責任をなすりつけるのが目的だとしても
MSは使用許諾で免責しまくりだよねえ・・
0648デフォルトの名無しさん
NGNGだれかうまくいった人、環境設定とコマンドの例をおしえてください。
bjam使うなってことですかね?
0649デフォルトの名無しさん
NGNGんなこたぁ〜ない。
0650VC6 + STLPort
NGNG>>639のコードを>>641修正済みでVC7+STLPort
でビルドしたらエラー
d:\VS.NET\Vc7\boost\boost\lexical_cast.hpp(45): error C2039: 'bad_cast' : '_STL' のメンバではありません。
ううむ・・・
0651デフォルトの名無しさん
NGNG#include <exception>//例外のクラス?
ていうかstlportへパス通ってる?
0652VC6 + STLPort
NGNG0653デフォルトの名無しさん
NGNGbad_cast は <typeinfo>
0654デフォルトの名無しさん
NGNG問題の原因を拡散させないのが大事なんじゃないかと。
だれもMSに責任を取ってもらおうなどとは考えてないよね。
まあ次のVC++でメジャーなテンプレートライブラリに
かなり対応する予定だとか。たのしみですけど。
0655VC6 + STLPort
NGNGちなみにこのサイトのソースを試してみてるだけですので・・・
>>653 thx
0656デフォルトの名無しさん
NGNGライブラリ・リンクさせるの忘れてた。
0657デフォルトの名無しさん
NGNG1.29と1.30に分かれており、どちらもまだβ版で、まだ未訳のドキュメント
もかなり含みますが、興味のある方はぜひ一度目を通してください。
ttp://sourceforge.jp/frs/index.php?group_id=428&release_id=2954
もし気が付かれた事がありましたら、ぜひ
ttp://sourceforge.jp/projects/boostjp/lists/
Boost-jpメーリングリストにご意見ご批判を流して下さい。
0658デフォルトの名無しさん
NGNG>ttp://sourceforge.jp/projects/boostjp/lists/
>Boost-jpメーリングリストにご意見ご批判を流して下さい。
このメーリングリストは翻訳者専用だそうですので、別にご意見ご批判
投稿用の場所を設けます。
0659デフォルトの名無しさん
NGNGhttp://jbbs.shitaraba.com/computer/5651/
この中当たりはどうでしょうか?
0660デフォルトの名無しさん
NGNGVC++ならpchが効くんでとっても快適なコンパイルができるんですが、
gccだとふざけたほど時間がかかって困ってます。
ccacheもあんまり効果無いし。
0661デフォルトの名無しさん
NGNG・速いマシンを買う。
・cvsからcurrent(3.4)を取ってきてpchのテスターになる。
(gcc/gcc/c-pch.c,cpppch.cあたりか?頑張って!)
0662デフォルトの名無しさん
NGNGフィードバックほしいです、はい。
ソースフォルゲのバグトラッキング(要メールアドレス)か、
cppll-bbs@したらば(まあ匿名)でお願いします。
別に、原文と照らし合わせてくれ〜、とまでは言わん。
変な日本語とか、意味がわからないところとか、指摘していただけたら幸い。
むしろ、原文でも意味がわからんところもあったりするががが。
0663デフォルトの名無しさん
NGNG10000回くらいmalloc,free 繰り返したらがはっきりと差が出てくるね。
お手軽に使いたい場合ちょこっと便利かも。
ただそんなに大量に細かいオブジェクトを生成破棄する機会がいまのところないんだけどね、俺の場合。
0664デフォルトの名無しさん
NGNG何と何を比べてどう差が出るのでつか?
0665デフォルトの名無しさん
NGNG1/60秒ごとにlist内の数百〜数千のインスタンスを生成・破棄したりしてるんですが、
速くなりますかね?
0666デフォルトの名無しさん
NGNGベンチマーク取ってみればいいじゃん。
0667デフォルトの名無しさん
NGNG使えるかどうかとどのように使うのかを聞いてるんですが…
0668デフォルトの名無しさん
NGNG普通のmallocとかnewとかを生成、破棄するのに比べて速い。
>>665
日本語ドキュメントにはstd::vectorとかコンテナでも使えるみないなことかいてあったよ。
ただ、普通に使うのとちがってプログラム終了するまえにsingletonオブジェクトから
明示的に開放しないといけないっぽいらしいけど。
読んでみたら?
0669デフォルトの名無しさん
NGNG既に設計がおかしい様な・・・
0670デフォルトの名無しさん
NGNGどんなゲーム内容だよ、それ
シューティングか?
0671デフォルトの名無しさん
NGNGttp://homepage3.nifty.com/arika_download_02/mpeg/ddd002_1.mpg
・・・つーても、
> 1/60秒ごとにlist内の数百〜数千のインスタンスを生成・破棄したりしてるんですが、
これが必要とは思えないが・・・。
0672デフォルトの名無しさん
NGNG速度を比較してみたよ。
malloc = 2231874
boost::pool = 1371511
short型でもやってみた。
malloc = 2181766
boost::pool = 1132248
コンスタントに2倍程度の速度が出ている。
0673デフォルトの名無しさん
NGNG(((( ;゚Д゚))) ガクガクブルブル
0674デフォルトの名無しさん
NGNGこんなのできるやついるんだな_| ̄|○
ライフ制をなの発見して、ちょっと安心( ´∀`)
将来、戦闘機が遠隔操作とかになったら、エリートになれそうだな。
まぁ、今はただのオタだが…。
>>672
GJ!!
0675デフォルトの名無しさん
NGNG・・・この結果ならそんなにつかう必要性を感じないなぁ
0676デフォルトの名無しさん
NGNG実際の運用を想定してmallocの方をある程度断片化させないと。
0677デフォルトの名無しさん
NGNGboost::poolのコンストラクタにいちいちサイズを指定しなければ
いけないのが面倒。
boost::pool<> pl(sizeof(double));
こんな感じ。
サイズを固定化して速度をあげているような気がする。もちろん
テンプレートパラメータに型を指定すればサイズの指定は必要
ないが、doubleやintのような基本型を指定するとエラーになる
のが問題だ。
0678デフォルトの名無しさん
NGNG用途判ってないだろ
0679デフォルトの名無しさん
NGNG環境は?
mallocの実装がしょぼい環境でこそ、威力を発揮するだろうからな。
最近のOSなら、boost::pool相当のことはOS内部で既にやってある可能性もある。
0680デフォルトの名無しさん
NGNG更に言うと、malloc内部でも同じ事をやっている可能性があって
boost::poolを使うと3重に無駄なことをしていると言うことにもなりかねない
0681676
NGNG断片化させた上で、16byte以上のオブジェクトで試せ。
0682デフォルトの名無しさん
NGNGF1見ながら釣りですか?
0683デフォルトの名無しさん
NGNGどんなん作ってんねん。1/60秒ってことはゲームなのだろうが、
たとえ弾幕シューでもそんな激しい頻度にはならないっしょ。
0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNGでも、作り方を見直したらboost::poolに変えるよりも数倍は早くなりそう
0688デフォルトの名無しさん
NGNG今度Boost::regexを利用しようと思うんですが、
makefileはvc6-stlport.makとvc7.makと有るんですが
STLport使いつつBoost使いたいのですが
どのメイクファイルでコンパイルすればいいのでしょうか?
0689デフォルトの名無しさん
NGNG「ですが」 多すぎ
0690デフォルトの名無しさん
NGNGまるちー
0691デフォルトの名無しさん
NGNG今度Boost::regexを利用しようと思うんまるちー、
makefileはvc6-stlport.makとvc7.makと有るんまるちー
STLport使いつつBoost使いたいのまるちー
どのメイクファイルでコンパイルすればいいのでしょうかまるちー?
0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNGにょ
0695デフォルトの名無しさん
NGNG今度Boost::regexを利用しようと思うんだにょ、
makefileはvc6-stlport.makとvc7.makと有るんだにょ
STLport使いつつBoost使いたいにょ
どのメイクファイルでコンパイルすればいいのでしょうかにょお?
----
g++ 3.2.2 使ってるんだけど、STLport 入れた方がイイ?
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNG, - ':::::::::::::::::::::::::::::::::::::::::::::::::::\
/ ;;;;;;;:::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;\
/,,;,,,,, ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ,,,,,,,,;::::::丶
/ :::::::::;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;:::::::::::::::::::ヽ
i゙:::;:::::||::::::,!i:::::::::::,|i::::::::::::::::::;:::::::::::::::::::::::::::::::゙i
i゙::::|;;;;| |;;;;;| |::::::::::| |:::::::::::::::::||::::::::::::::::::::::::::::::::|
. i゙::::::i ''''''''''' '───' |;;;;;;;;;;;;::::::::::::::::::::|
.|:::::::|,-====-´ ゙ヽ,,,,,,,,,,,,,、 |:::::::::::::::::::|
|;::::::::|,-──、 ~,.--`‐、 |:::::::::::::::::::|
`ヽ、i )__r'´ )__|;::::::::::::::/
. ヽ、__、/< ヽ、__、- /^゙-、;;;;/ >>691おもろないよ
{ ' ' '-'~ノ
λ ____ /-'^"
ヽ,_ `ー─''´ (
/`''丶、 , - /^l
/ /( ノ `'''''''´~ _, - ' ~ ゙i、
{ / /| ̄ ̄ ̄ ̄ _,-'^¨ }
{/ / ゙ー────'~ \|
/ ヽ \
0698デフォルトの名無しさん
NGNGそれだけを言うために、AAなんかはってんじゃねーよ、糞ボケがーー。
0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNGC++
0703デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG0706702
NGNG0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG0709702
NGNG困ったもんだよねw
0710デフォルトの名無しさん
NGNG0711702
NGNGいやー、そういうこと書いちゃ終わるもんも終わらないでしょーw
0712702
NGNG0713702
NGNG0714702
NGNG0715デフォルトの名無しさん
NGNG0716デフォルトの名無しさん
NGNGこんなのあるんだねぇ。ガイシュツだったらスマソ
0717デフォルトの名無しさん
NGNG既出もなにも、boost.org のトップページからリンク張ってあるしなぁ。
0718vns
NGNG#include "stdafx.h"
#include<string.h>
#include<vector>
#include<algorithm>
#include<mbstring.h>
using namespace std;
#include <boost/regex.hpp>
の状態でstrlen,strcatなどを呼ぶと
error C2668: 'strlen' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照)
がでてしまいます。
回避方法ご存じの方教えてください。VC++6sp5です。
0719デフォルトの名無しさん
NGNG↓
#include<string>
0720ヽ(´ー`)ノ
NGNGていうか boost 関係ないやん…(;´Д`)
0721デフォルトの名無しさん
NGNG例:boost_regex_vc6-stlport_mdi.dll
↑これ
このiってdynamicとdebugの'd'がならんでついてると気持ち悪いから
dyの発音からdとってiなんですかね?
それとも別な意味あるんですかね?
0722山崎渉
NGNG0723山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0724デフォルトの名無しさん
NGNG守
0725デフォルトの名無しさん
NGNGiはcase-insensitiveのi。
0726デフォルトの名無しさん
NGNG信じていいですか?じゃー、ここがsの時はsensitiveかな?
0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNGboost::filesystem をはじめとしてダブルバイト文字対応が弱くて泣くとか、
泣き言っても良いですか age
0729デフォルトの名無しさん
NGNGまじっすか?どうなるんですか?
つーかいまのところ、コンテナにweak_ptrいれてないから安心だ。
0730デフォルトの名無しさん
NGNG挿入・削除のときにstd::find(begin(),end(),...)してあるんだけど、
std::setを使わないのはなんでだろう?
g++だと思ったとおりになるから、バグかな。
using boost::uint_value_t;
std::cout << sizeof(uint_value_t<1>::fast) << std::endl;
std::cout << sizeof(uint_value_t<300>::fast) << std::endl;
std::cout << sizeof(uint_value_t<30000>::fast) << std::endl;
std::cout << sizeof(uint_value_t<60000>::fast) << std::endl;
//std::cout << sizeof(uint_value_t<100000>::fast) << std::endl; // BCCだとコンパイルすら通らない
0732デフォルトの名無しさん
NGNG1.30.0 の weak_ptr には比較演算子が operator< しかないから、
weak_ptr のコンテナに対して、std::find や std::remove などの
汎用アルゴリズムを専用ファンクタなしに呼び出すとコンパイルエラー
つーか、weak_ptr は operator->() も operator*() も無いんだから、
weak_ptr という名前はやめたほうが良いんじゃないかとも思う。
0734デフォルトの名無しさん
NGNG過去ログ見たんですが、結論出ていないっぽいですよね…
可能ならバイト先のコードに使いたいんですが、皆さん商用プロダクトで使った
りしてますか?実際のところどうなのでしょう?
0735デフォルトの名無しさん
NGNG0736デフォルトの名無しさん
NGNGおまえがルールブックか!
0737通りすがりのランボー
NGNG0738デフォルトの名無しさん
NGNGバイト先のプロジェクトの責任者に聞くべきじゃネーの?
それで何で利用不可能なの?
0739デフォルトの名無しさん
NGNGttp://www.tietew.jp/cppll/archive/5777
0740デフォルトの名無しさん
NGNG後はプロジェクトマネージャーが使用許可くれるかどうかぐらいか
その辺の裁量も自分にあるならとっとと使えばいいし
0741デフォルトの名無しさん
NGNG改変型バークレーライセンスとか言うやつだっけ?
0742734
NGNGいやぁ、バイト先が小さい会社なんで、プロジェクトマネージャーとかそんな
のいなくって、むしろ実質僕がそのソフトの責任者みたいになってるんですが、
下手に外部ライブラリ使うと商用だとヤヴァイかなぁと思いまして。
一応自分でも調べてたんですが、自信が無かったものでして。
リファレンスカウントとかfilesystemみたいなのとか自前で一応作ってたんで
すけど、なんかちょっと自作のが怪しくなって来たんでこの際boostにしちま
おうかと思った次第でして。さすがにRegexなんか作れないですし。
とにかく皆様ありがとうございましたm(_ _)m。これで大部楽になります。
0743デフォルトの名無しさん
NGNGマルチバイトの処理に怪しいとこもあるので、独自ライブラリのままのほうが
いい場合もある。よく検証してから使おうね。
Unicodeとかでいけるなら、boostでいいけど。
0744デフォルトの名無しさん
NGNGどうがんばってもofstream使用するとエラーでる・・・。
error LNK2001: 外部シンボル
""public: class _STL::basic_string<char,class _STL::char_traits<char>,class _STL::allocator<char> >
__thiscall boost::filesystem::path::native_file_string(void)const " (?native_file_string@path@filesystem@boost@
@QBE?AV?$basic_string@DV?$char_traits@D@_STL@@V?$allocator@D@2@@_STL@@XZ)" は未解決です
0745デフォルトの名無しさん
NGNGなんでだー。
ていうか俺にどうしろちと・・・。
stlport使いたいんだよ・・・。
0746デフォルトの名無しさん
NGNGENVにSTLPORTかなんか追加して、includeディレクトリ設定してやった?
let's boostあたりに書かれてるんじゃないのかな
0747744
NGNG[vcvars32.bat]
〜略〜
set INCLUDE=C:\hoge\STLport-4.5.3\stlport;
%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%INCLUDE%
set LIB=C:\hoge\STLport-4.5.3\lib;
%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%
set STLPORT_PATH=C:\hoge\STLport-4.5.3
set STLPORT_VERSION=4.5.3
[コマンドプロンプト]
bjam "-sTOOLS=msvc-stlport" "-sBUILD=debug release <runtime-link>static/dynamic <stlport-iostream>on/off
<threadの設定?>multi.single <デバッグシンボル?>on/off"
だれかえらい人、サンプルの設定教えてくださいーーーー。
あと、βのstlportって使えない?
0748デフォルトの名無しさん
NGNG>>631-
0749デフォルトの名無しさん
NGNGそれ読んでもbjamじゃうまくできねーんだよぅ。馬鹿なおいらをたすけてくれぃ。
0750デフォルトの名無しさん
NGNGほぅ、
> set STLPORT_PATH=C:\hoge\STLport-4.5.3
これを、
> set STLPORT_PATH=C:\hoge
こう直してもダメだったわけだな。
0751デフォルトの名無しさん
NGNGだめですた。
0752デフォルトの名無しさん
NGNGDUMPBIN /SYMBOLS [できあがってるライブラリファイル] >symbols.txt
でライブラリのシンボルとって、symbols.txtの中を"native_file_string"し、
ヒットしたシンボルを>>744のシンボルと比べろ。
0753デフォルトの名無しさん
NGNGありがとうございます。
[symbols.txt]
native_file_string@path@filesystem@boost@
@QBE?AV?$basic_string@DV?$char_traits@D@_STL@@V?$allocator@D@2@@_STL@@XZ
[744]
native_file_string@path@filesystem@boost@
@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ
↑ここが違う
あと_STL となっているところがstdになってる。
stlport使われてないってことでしょうか?
ビルドしなおしてみます
0754デフォルトの名無しさん
NGNG> stlport使われてないってことでしょうか?
そだねー。
>>750の変更したときに、古いオブジェクト消してなかった、ってことかな。
0755デフォルトの名無しさん
NGNGん?
[symbols.txt]と、[>>744]のシンボル、逆だよな?
0756744
NGNG[環境変数]
set INCLUDE=C:\hoge\STLport-4.5.3\stlport;略
set LIB=C:\hoge\STLport-4.5.3\lib;略
set STLPORT_PATH=C:\hoge
set STLPORT_VERSION=4.5.3
でうまくいきますた。
前回やったとき失敗したのは、たぶん
set INCLUDE=C:\hoge\STLport-4.5-0119\stlport;略
set LIB=C:\hoge\STLport-4.5-0119\lib;略
set STLPORT_PATH=C:\hoge
set STLPORT_VERSION=4.5-0119
これ 4.5-0119 が原因かも・・・。
それとも
set STLPORT_PATH=C:\hoge
やってなかっただけかもしれません()。
ところで
<threading>multi <stlport-iostream>on"
オプション忘れると悲惨ですね。
0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNG0759山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0760デフォルトの名無しさん
NGNGどこ逝ったんだYO!!!
0761デフォルトの名無しさん
NGNGLet's boost あたりからリンクをたどれ。
0762デフォルトの名無しさん
NGNGhttp://anzu.sakura.ne.jp/~kuga/wol/
2chスレ
http://game3.2ch.net/test/read.cgi/mmominor/1053536167/
0764デフォルトの名無しさん
NGNGinto Boost.
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0765デフォルトの名無しさん
NGNGどんどん自分でコードが書けなくなっていく…
0766デフォルトの名無しさん
NGNGdesc.add_options()
("help", "", "produce a help screen")
("version,v", "", "print the version number")
("string,s", "arg", "output the specified string")
;
0767sage
NGNGこんなかんじ
#include <iostream>
#include <iterator>
#include <algorithm>
#include <vector>
class Foo {
std::vector<int> v_;
public:
Foo &operator () (int param)
{ v_.push_back(param); return *this; }
void dump()
{ std::copy(v_.begin(), v_.end(), std::ostream_iterator<int>(std::cout, ",")); }
};
int main()
{
Foo foo;
foo(1)(2)(3)(4)(5);
foo.dump();
return 0;
}
出力は
1,2,3,4,5,
になるかな。ためしてみれ
0768766
NGNG0769デフォルトの名無しさん
NGNGこれは何度も議論になっているのでいいのですが
boostを使って自分で書いたプログラムをGPLに
これってOK?
0770デフォルトの名無しさん
NGNGつーか、それがだめだったらboost使った奴で商用のライセンスを作成できないじゃん。
0771デフォルトの名無しさん
NGNG�dクス。
商用利用は良くても派生不可という可能性もあるので気になっていたのでした。
0772デフォルトの名無しさん
NGNG……横着しないで自分で作ろう。
VC++の_splitpathのソースとか見ると_ismbbleadとか使ってちゃんと処理
してるんだよね。そういう風にならないかなぁ。
0773デフォルトの名無しさん
NGNGBoostをWindows日本語版依存にしろと?
0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNG0776775
NGNG0777デフォルトの名無しさん
NGNG国際化しろってことでしょ?
_ismbbleadならコードページによって処理が変わるから
日本語依存になるってことはないんじゃないかな。
0778デフォルトの名無しさん
NGNGlocaleを参照するようにするのは、それほど難しいことでないし。
0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG仕事が忙しくて和訳する時間が取れないのよー。
年末は時間があったからどんどん訳していたけどな。
0783デフォルトの名無しさん
NGNGこれはASCIIものだけでしょうか。
UNICODEの場合にはどうなりますか?
0784デフォルトの名無しさん
NGNGstringはSTLっちゅーか標準C++ライブラリかね。
std::basic_string<wchar_t> = std::wstring があるが。
0785783
NGNGついでに、教えて下さい。
RDBから読み取った内容の構造体を定義したいんですが、どんな風に書かれますか?
wchar_t[10];
wstring[10];
0786デフォルトの名無しさん
NGNGwchar_t[10 + 1]
か
wstring
でいいよ。
wstring/stringは可変の文字列を扱える。
長さチェックを行う文字列を持ちたいなら、もうちょっと工夫しないといけない。
0787デフォルトの名無しさん
NGNGこの詳細、超知りたいでつ。
0788デフォルトの名無しさん
NGNGstd::wstring ws(256,L'\0');
これのこと
0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNG#include <boost/tokenizer.hpp> すると、「インライン展開できない」系の
warningがボロボロと出ます。該当コードを見ると確かにインライン展開
不可能なコードがあるようです(オブジェクトの値渡しやfor文など)。
やかましいのでwarningを抑止しちゃってるんですが、これって皆さん普通に
やってることなんでしょうか?
0791デフォルトの名無しさん
NGNGできない処理系がWarning出してても抑制でいいでしょ。
自分で展開しないようにソース書き換えるのは実りが少ない。
0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNGpublic:
~Super(){
std::cout << "~Super()" << std::endl;
}
//virtual ~Super(){
// std::cout << "virtual ~Super()" << std::endl;
//}
};
class Sub : public Super{
public:
~Sub(){
std::cout << "~Sub()" << std::endl;
}
};
int main(){
boost::shared_ptr<Super> hoge(new Sub());
return 0;
}
結果
~Sub()
~Super()
どっかの日記にかいてあったが、すげーなと思った。
0794デフォルトの名無しさん
NGNGこれに依存したコーディングはしないほうがいいんだろうなぁ。
0795デフォルトの名無しさん
NGNG何がすごいのか解説キボン・・
boost::shared_ptrがすごいの?
0796デフォルトの名無しさん
NGNG↓に変えて実行してみな。
int main(){
std::auto_ptr<Super> hoge(new Sub());
return 0;
}
0797デフォルトの名無しさん
NGNGshared_ptr<T>のコンストラクタが引数の型を自身の型とは別にtemplate typename Yで
受けていて、そのY型のchecked_deleter<Y>を与えてshared_countを作ってるのか。
だから全参照消滅時にはT=Superのデストラクタではなく、Y=Subのデストラクタが起動されるのね。
それと、解体のときにYのものですらなく、別途引数で解体関数を与えるコンストラクタもあるのね。
0798デフォルトの名無しさん
NGNGちゃんとshared_ptrのドキュメントに出てたね。
[This constructor has been changed to a template in order to remember
the actual pointer type passed. The destructor will call delete with
the same pointer, complete with its original type, even when T does not have
a virtual destructor, or is void.
...]
0799デフォルトの名無しさん
NGNGコンテナにスマートポインタぶち込むとマズーなことになるのかしら?
0800デフォルトの名無しさん
NGNGこういうのもうまくうごくように出来てるよねたしか。
0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNGboost::shared_ptr<void> hoge(new Sub());
バリアントポインタ配列みたいな感じで、
デストラクタも入れた物のがちゃんと呼ばれる。
0803デフォルトの名無しさん
NGNG>>798で引用された文がそのことですな
しかしvoidでやっちゃうと中身使うのが大変だな。
開放管理専用にするしかないかな。
0804デフォルトの名無しさん
NGNG「仮想関数かどうか」を判別するうまい手段があれば、
コンパイルエラーにするんだろうけど。
0805デフォルトの名無しさん
NGNG同じ UNICODE でも UTF-8 なら std::string。
std::wstring なら一般的には「1要素==1文字」が
成立するんだけど例外があるから気をつけれ。
あと、環境によって 2 == sizeof(wchar_t) だったり
4 == sizeof(wchar_t) だったりするのにも気をつけれ。
0806デフォルトの名無しさん
NGNG> 「仮想関数かどうか」を判別するうまい手段があれば、
> コンパイルエラーにするんだろうけど。
いや、普通のポインタで
Super* hoge = new Sub;
void* hoge = new Sub;
が使える以上
shared_ptr<Super> hoge( new Sub );
shared_ptr<void> hoge( new Sub );
という使い方ができないといかん、というコンセプトで開発されてるので
そうでもないと思う。で、当然「スマート」ポインタなんだから、一番適切な
デストラクトを呼んでくれるようになってて嬉しいなと。
個人的には、>>797氏が書いてるようなカスタム解体関数を
使ってつくったような shared_ptr でも
shared_ptr<Abc> ptr = custom_deleter_ptr;
みたいに同じ shared_ptr<Abc> で受けられるのが便利。
0807デフォルトの名無しさん
NGNGtutorialではsignalNのtemplateで使えるみたいなこと書いてるが。
boost/mpl/aux_/integral_wrapper.hpp 44: オプションコンテキスト応答深度の上限を超過: 再帰をチェックしてください。
が山ほどでる。
0808デフォルトの名無しさん
NGNGVC++7.1 が Boost Regression Tests で 100% 達成1番のり Age!!
0809デフォルトの名無しさん
NGNGなんかそれっぽい記事はあったんだが、需要とかないのかね。
iteratorアダプターとかつかって自分でつくればいいのだが、まんどくせー。
つーか、iteratorアダプターってなんか激しく便利そうな予感。
0810ちよ
NGNGhttp://kotarou.free-city.net/page002.html
0811デフォルトの名無しさん
NGNGデストラクタ辺りが複雑でついていけません。
「スマート」ポインタなのに、ユーザーが挙動を把握してないと使えないなんて
ナンセンスだと思います。
0812デフォルトの名無しさん
NGNG> iteratorアダプターとかつかって自分でつくればいいのだが、まんどくせー。
作らんでもそのまんま indirect_iterator 使えばよいのではなかろうか。
0813デフォルトの名無しさん
NGNGとちゅうでヌルポ入ってると、アルゴリズム系で爆死するがな。
しない方法ある?
あと、vc6だとmake_indirect_iteratorつかえないんで、まんどくさー。
0814デフォルトの名無しさん
NGNG>>812だ。鬱だ。
0815812
NGNG> *iteratorしたら、smartポインタの実体が返ってくる
この要求の時点でヌルポインタが入ってたら死亡確定な
気がするんだけど、どーゆー動作を期待してるん?
0816デフォルトの名無しさん
NGNGhttp://upbbs.s2.x-beat.com/linkvp/linkvp.html
↑
このサイトマジやばいです。早く見ないと消されちゃうかも・・・
0817デフォルトの名無しさん
NGNGそこをなんとかしてくれる動作!!
なかったら、mapみたいに作ってくれるとか・・・。
まぁ勝手に作られてもこまるんだけどさ。
なんつーか、game programin gems の1巻にでてた、ハンドルマネージャークラスみたいに
Keyを入れたらすぐ値を返すために、vectorに値つーか、ポインタを保存しといて、
消去するときは、ポインタをNULLにするだけって感じなクラスをつくりたいときに、
めんどくさくなく、簡単にできんもんかなと思ったわけで。
0818デフォルトの名無しさん
NGNG#include <iostream>
#include <vector>
#include <algorithm>
#include "boost/shared_ptr.hpp"
#include "boost/lambda/lambda.hpp"
#include "boost/lambda/if.hpp"
int main()
{
typedef boost::shared_ptr< int > int_ptr;
std::vector< int_ptr > v( 5 );
v[1].reset( new int( 3 ) );
v[4].reset( new int( 432 ) );
using namespace boost::lambda;
std::for_each( v.begin() , v.end()
, if_then( _1 , std::cout << ret< int >( *_1 ) << ' ' ) );
return 0;
}
0819デフォルトの名無しさん
NGNGうんこVC6じゃコンパイルできない・・・。
はやく、7.1にしたい。
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNGboost_1_30_0\libs\date_time\testにあるJamfileを使ってビルドしようとすると
C:\boost_1_30_0\boost\lexical_cast.hpp(147) : error C2679: 二項演算子 '<<' : 型
'const boost::token_iterator_generator<TokenizerFunc,Iterator,Type>::value_type'
の右オペランドを扱う演算子が見つかりません (または変換できません)。
with
[
TokenizerFunc=boost::char_delimiters_separator<char>,
Iterator=std::basic_string<char,std::char_traits<char>,std::allocato
r<char>>::const_iterator,
Type=std::string
]
みたいなエラーが数箇所
どうすればいいんでしょう?
0822デフォルトの名無しさん
NGNG>r<char>>::const_iterator,
そこんとこは↓こんな風にスペース入れとけ。
r<char> >::const_iterator,
0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNG821はエラーメッセージ中には'>>'が出てくるけどコンパイラがテンプレート
を展開したときにそうなってるだけで実際のソースはそうはなってないん
じゃないの?
違ったらごめん
0826デフォルトの名無しさん
NGNGこれ凄いな
0827デフォルトの名無しさん
NGNGといいたいけど、コンパイルにCPU食うんだよね、これ。
実験的に実践投入してます
0828デフォルトの名無しさん
NGNGlisp のインタープリタとかそーゆーの。
そゆのがあれば大部使い方分かると思うんだけど。
0829_
NGNG0830デフォルトの名無しさん
NGNGCプリプロセッサができあがってたはず。
0831デフォルトの名無しさん
NGNG★http://endou.kir.jp/moro/linkv.html★
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNGlambdaが通ったときに感動したのは漏れだけですか。そうですか。
0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNGとりあえず、「ランブダ」で合ってますか?
0836デフォルトの名無しさん
NGNGらむだ
0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNG0839デフォルトの名無しさん
NGNGワロタ
っていうか高校物理で使っただろうに>λ(ラムダ)
0840デフォルトの名無しさん
NGNGギリシャ文字は全部覚えたよ。
0841デフォルトの名無しさん
NGNG全部覚えていた。
0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNG梵字は全部覚えたよ。
0844デフォルトの名無しさん
NGNGCygwinのg++にboost_concept_check.hがあるじゃないですか。
これって有名な話?
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNG結局、普通にboostつかって。エラーチェックはstatic_assertのみに抑えて
あとはコンパイラに任せた方がよさそうだ。
0847デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNG0849山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0850デフォルトの名無しさん
NGNGあ げ な い か?
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNGメンバーが飽きたらそれまで
0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNG俺の仕事代わりにやってくれるなら続きの訳してもいいよ。
0855デフォルトの名無しさん
NGNGコンパイラはWindowsのMinGW gcc 3.2.3です。
ソース>
#include <boost/regex.hpp>
int main()
{
boost::RegEx r("\\");
return 0;
}
実行結果>
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
0856デフォルトの名無しさん
NGNG正規表現のメタキャラなので、"\\\\"と書かないと正規表現中で「\」
一文字を表現できない、という問題がありがちです。
0857デフォルトの名無しさん
NGNG0858855
NGNGありがとうございます。
というか、例外捉えるのをすっかり忘れていました(汗)。
0859デフォルトの名無しさん
NGNG>boost::formatを使用するとコンパイルエラーがでる。
>これを解消するにはboost/format/feed_args.hppの73行目を下記のように書き換える
>
>//#if BOOST_WORKAROUND( BOOST_MSVC, BOOST_TESTED_AT(1300)) コメントアウト
>#if BOOST_MSVC <= 1300 && BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
>
>これでコンパイルが通るようになる。
boost::formatを使おうとして動かなく、発見した。
既出かも知れないけど。
0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNGかなり前からCVSに修正版が置いてあった様な気がした。
0862デフォルトの名無しさん
NGNGコメントアウトした部分のようにすれば大丈夫なんですが。
ソース:
#include <boost/function.hpp>
#include <boost/bind.hpp>
#include <iostream>
using namespace std;
int func1(int n)
{
return n;
}
int func2(int n1, int n2)
{
return n1+n2;
}
class Test
{
public:
template <class T>
Test(T fn)
{
cout << fn(1) << endl;
}
};
0863862
NGNGint main()
{
Test t1(boost::function<int (int)>(boost::bind(func1, _1)));
Test t2(boost::function<int (int)>(boost::bind(func2, 10, _1)));
//boost::function<int (int)> f1(boost::bind(func1, _1));
//boost::function<int (int)> f2(boost::bind(func2, 10, _1));
//Test t1(f1);
//Test t2(f2);
return 0;
}
エラーメッセージ:
>g++ t107.cpp
t107.cpp: In function `int main()':
t107.cpp:29: redefinition of `boost::function<int ()(int), std::allocator<void>
> boost::bind'
t107.cpp:28: `boost::function<int ()(int), std::allocator<void> > boost::bind'
previously declared here
t107.cpp:29: declaration of `boost::function<int ()(int), std::allocator<void>
> boost::bind'
t107.cpp:28: conflicts with previous declaration `boost::function<int ()(int),
std::allocator<void> > boost::bind'
0864862
NGNGコンパイラは g++ (GCC) 3.2.3 (mingw special 20030504-1) です。
0865デフォルトの名無しさん
NGNGclass function
{
public:
function(int);
};
class Test
{
public:
Test(function);
};
int main()
{
Test t1(function(bind(0)));
Test t2(function(bind(1)));
return 0;
}
: In function `int main()':
:15: redeclaration of `function bind'
:14: `function bind' previously declared here
:15: declaration of `function bind'
:14: conflicts with previous declaration `function bind'
とりあえず、問題を局所化してみた。
boostもtemplateも関係ないらしい。
gccのバグかな。
0866865
NGNGちなみに、
Test t1((function(bind(0))));
Test t2((function(bind(1))));
こうすれば、宣言と式の曖昧さが解決されて、
意図しているであろう本来の意味が、gccに伝わる。
0867デフォルトの名無しさん
NGNGバグではなく、規格通りかと。
0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG> 07/29 [Trojan Horse Warning] Webサーバーが感染しちゃってるので、 しばらくの間 IE からは boost.org のページを見ないように! とのこと。
http://aspn.activestate.com/ASPN/Mail/Message/boost/1750309
だと。
0871デフォルトの名無しさん
NGNGこれはageておいた方が良いだろう((((;゚Д゚)))ガクガクブルブル
0872デフォルトの名無しさん
NGNGサイズだけ変わってたのはそういうことか・・・。
とりあえずウィルスバスター無反応だった。
0873デフォルトの名無しさん
NGNGclass hoge
{
public:
void print(){ TRACE("HOGE");}
}
vector< boost::shared_ptr< hoge > > vec;
...
std::for_each( vec.begin(), vec.end(), std::mem_fun( &hoge::print ));
std::for_each( vec.begin(), vec.end(), boost::mem_fun( &hoge::print ));
コンパイルエラーになるんです。
おれだけですかね?
エラーメッセージは
void boost::mem_fun_t<S,T>::operator ()(T *) const' : 1 番目の引数を
'std::allocator<_Ty>::value_type' から 'test *' に変換できません
VC7, 付属のSTL を使ってるんですが。
0874デフォルトの名無しさん
NGNGboost::mem_fnかboost::bindで。
0875デフォルトの名無しさん
NGNGレスありがとうございます。
上をstd::for_each( vec.begin(), vec.end(), boost::bind( &hoge.print, _1 ) );
としたら動きました。
0876デフォルトの名無しさん
NGNGboost::mem_fn(&hoge::print)
でも同じ事が出来るから試しにやってみれ。覚えておくと便利。
0877山崎 渉
NGNG0878デフォルトの名無しさん
NGNGネタかと思ったよ
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNG前々回が99%だったからboost側がコードを修正したんだろ
その1%はどのコンパイラも通ってなかったからソース自体がおかしかったんだろうし
boost通るってことはテンプレート周り完璧ってことなんだが
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNGこれでtypeofサポートしてくれたら……_| ̄|○
0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNGhttp://gcc.gnu.org/onlinedocs/gcc/Typeof.html
http://std.dkuug.dk/JTC1/SC22/WG21/docs/papers/2003/n1478.pdf
0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNGunsigned long l = boost::lexical_cast<unsigned long>(s);
ってやったら例外投げつけられました。
16進の文字列はキャストできないんですか?
また、どのようにしたらできますか?
0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNG>For more involved conversions, such as where precision
>or formatting need tighter control than is offered
>by the default behavior of lexical_cast,
>the conventional stringstream approach is recommended.
0894デフォルトの名無しさん
NGNGstruct D: B {};
B* ins = new D;
のとき、typeof(ins)はBになるのだが、
静的でなく動的な型を拾ってくれるtypeofはないものか。
0895デフォルトの名無しさん
NGNG既にあるやん、typeid 。
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNG0898デフォルトの名無しさん
NGNGnamespace fusianasan
{
class bad_hexical_cast : public std::bad_cast
{
public:
virtual const char * what() const throw()
{
return "bad hexical cast: "
"source type value could not be interpreted as target";
}
};
template<typename Target, typename Source>
Target hexical_cast(Source arg)
{
std::stringstream interpreter;
Target result;
if(!(interpreter << std::hex << arg) || !(interpreter >> std::hex >> result) ||
!(interpreter >> std::ws).eof())
throw bad_hexical_cast();
return result;
}
}
0899デフォルトの名無しさん
NGNG× >>89
○ >>891
0900デフォルトの名無しさん
NGNGtypeidじゃ型として使えないんじゃ?
0901デフォルトの名無しさん
NGNG動的なものを型宣言として使ってどうすんの?
struct D: B {};
B* pB = ...;
dynamic_typeof(pB) pD = static_cast<dynamic_typeof(pB)>(pB);
// pD->OperationOfD(); // ×: ここに型D特有の操作は書けない。dynamic_typeof(pB) はDではないかもしれないから
pD->OperationOfB(); // Bのサブクラスに共通な操作なら書けるが、
pB->OperationOfB(); // それならpBから呼びだしゃ十分
0902デフォルトの名無しさん
NGNG0903C++に死刑判決!!C ◆stD.yN6T9U
NGNGBlake Stowell: SCOは現在、C++の所有権を有している。
SCOは顧客から、C++をライセンスしたいとの相談を受けることがよくあり、
そのような場合、ライセンス料を徴収している。
このような処置は顧客ごとにケースバイケースで行われており、
公に公開されたものではない。
C++のライセンシングはSCOのソースライセンスプログラムの一環である。
15 名前: Kent.N 投稿日: 2003/08/06(水) 17:54
Blake Stowell:C++はSCOが今日所有する資産の一つで、
我々からC++のライセンス供与を受けたいというお客様は
ひっきりなしにいらっしゃるので、実際にそうしています。
具体的な内容はお客様ごとにcase-by-caseで、第三者に
明らかにしない方針とさせていただいています。
C++のライセンス供与は現在SCOのSCOsource licensing programの
一部になっております。
http://jbbs.shitaraba.com/computer/bbs/read.cgi?BBS=5651&KEY=1049123895&START=13
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNGshared_ptr の ポインタ(しかもvoid*にキャストして)を関数に渡して
データぶっ飛んでるよとなげいたことがありますた。
おまいらもなんかない?
0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG? 何かあったの?
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNGBCC5.5で正規表現を使おうとすると
エラーが2,3個と警告が多数でるのですがどうすればいいのでしょうか。
ちなみにサンプルプログラムでも同じ現象が・・・
0913デフォルトの名無しさん
NGNG.NET 2003のIDEのインクルードpathの設定をして、boost::formatでも試してみるかと思ったら
いきなりdisambiguaterが定義されていない識別子です、と言われてしまいます。
他にもテンプレートがらみのエラーがたくさん出ます。
.NET 2003のIDEからboostを使うときは何か他に設定が必要なんでしょうか?
場違いかとは思いますが、どうかよろしくおねがいします。
0914デフォルトの名無しさん
NGNG>>859
0915デフォルトの名無しさん
NGNG#include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/fstream.hpp>
したら
エラー E2489 \boost/mpl/aux_/integral_wrapper.hpp 44: オプションコンテキスト応答深度の上限を超過: 再帰をチェックしてください
とでるんだけどもしかして漏れの設定ミス?
0916デフォルトの名無しさん
NGNGエラーもう一個追加
エラー E2324 \boost/limits.hpp 40: 数値定数が大きすぎる
0917山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNG良くやった
0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNGboostのうちでビルド不要な部分は #include さえすれば使えるので、
gccの、なんだっけ 環境変数CPLUS_INCLUDE_PATH とかでboostにパス通しとけばok。
ビルドが要る部分は、
bjam -sTOOLS=gcc
でcygwin-gcc用にビルドできる。
0922デフォルトの名無しさん
NGNGbjamでビルドしたライブラリをプロジェクトに追加するだけじゃだめなんでつか?
コンパイルすると#error : Thread support is unavailable! なんて言われてしまうです。
on MSVC7.1 WindowsXPPro
ここをミロでもイイですので。
0923920
NGNG0924デフォルトの名無しさん
NGNGプロジェクトのプロパティのC/C++のコード生成のランタイムライブラリ
をマルチスレッド用に汁。
0925デフォルトの名無しさん
NGNGできましたthx!
基本的なことなのに忘れてました。
0926デフォルトの名無しさん
NGNGtemplateライブラリ総合スレッドへ移動よろしこ。
0927↑そのスレのURLぐらい貼ったら?
NGNG0928デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1047978546/l50
だす。STLが相談室とどちらが相応しいのかは分らん。
0929デフォルトの名無しさん
NGNGというわけで漏れはboost専用の次スレに一票。
0930デフォルトの名無しさん
NGNG一年前、確か、STL,boost,Loki,とテンプレートライブラリ関連の
スレッドが沢山ありすぎて読み難いという話から、一つにまとめよう
ということで、できたのが上のスレッドです。まさかここまでboost
スレが長持ちするものだとは思わなかったけどw
個人的にはどうでもいいです。boostスレが別個にあってもいいとは思います。
一つにまとめるなら,本当なら"template総合スレ"なんてタイトルじゃなくて
boostやLokiのようなtemplateをフル活用したライブラリ専用スレという意味合いが
伝わる、そんな名前がいいかなあと。言語機能としてのtemplateやSTLは
相談室の方で十分な気もするし。
後の人に任せます。
0931phoenix
NGNG0932デフォルトの名無しさん
NGNG0933デフォルトの名無しさん
NGNG英語の出来ないおれが見ても、まったく流れがつかめん。
把握している人がいたら、解説キボン
0934922
NGNGwarning C4275: DLL インターフェイスではない class 'std::logic_error' が DLL インターフェイスのベースになる class 'boost::lock_error' として使われています。
ってのがいっぱい出るけどどうしたらよいでしょうか。無視?
0935デフォルトの名無しさん
NGNG思いっきり斜め読みしかしてないが
・GUIライブラリが欲しいぞ。STLのコンテナと綺麗に組み合わさるヤツ。
list<T> に push_back したらリストボックスの要素が増えたりすんの。
・当然プラットホーム非依存だよね?
・プラットホーム非依存ってーと、wxWindow とかは?
・いや ModernなC++ライブラリとしては、boost::spirit みたいな
サブ言語でC++のコード中にGUIが記述できるとカコイイ!!
・とりあえずsfにプロジェクト作ってみますた。
→ http://sourceforge.net/projects/notus/
・XMLでUI記述して読み込みってどうよ?
・つーかそれって既にXULがあんじゃん。
とかなんとか。あんまり話まとまってないように読めた。
誰かマジメにスレッド追ってる人、解説キボン。
0936デフォルトの名無しさん
NGNGrationalとintを掛けたいのですができません。
boost::rational<int> r(1,3);
int i= r * 2000;
見たいなのですが。どうすればいいでしょうか?
0937936
NGNGしつれいしますた。
0938933
NGNGありがとう。
MLのLOGを読もうとしたけど、どこが根っこなのかわからなかったから、
こうしてまとめてもらえると助かります。
引き続き情報募集中です。
Yahoo Groups に boost_gui があったので、早速みてみた。
テスト板だからだろうが、MFC 依存っぽいコードがあったのはひいた。
期待していた Listbox Control とかは無くて、少しがっかり。
テストコードは dialog つくって表示するものだったけど、
少ないコード量なのにもかかわらず、割と複雑なものだった。
期待大。
0939933
NGNGソース部分は相変わらず複雑で、読むには相当な気合がなきゃダメっぽ。
0940デフォルトの名無しさん
NGNGcppじゃない理由が知りたいれす
0941デフォルトの名無しさん
NGNGBOOST_STATIC_CONSTANT(bool, tmp::value) とかして大丈夫ですか?
0942デフォルトの名無しさん
NGNGboostのほとんどのファイルの実装は*.hppだと思うが。
なぜかといえば、
・ほとんどのライブラリはtemplateとして実装されている。
・一般的にtemplateの実装はヘッダファイルに置かれる。
・C++用のヘッダファイルには*.hではなく*.hppを使う流儀もある。
という、ただそれだけの話だが。
regexやthreadなどのライブラリのコンパイルが必要なものは実装に*.cppを使っている。
0943デフォルトの名無しさん
NGNGそれは知ってます。hppじゃなくてippの話なんですが。
0944デフォルトの名無しさん
NGNGippって何のコンピュータ用のboostよ?Win32用は全部hppだぜ。
0945デフォルトの名無しさん
NGNGしかないんだった。ippなんて見たことないなあ。
0946デフォルトの名無しさん
NGNG理由を聞いてみれば?
0947デフォルトの名無しさん
NGNGヘッダの最後の方でcppをインクルードするじゃないですか。
そんときに普通の実装と区別しやすいようにわざとippにしてんじゃないの?
インラインの頭文字とってippなのでしょうかね?
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG次スレはtemplateスレじゃなくて独自に建てようぜ!
0950デフォルトの名無しさん
NGNGテンプレートライブラリに特化した話をするスレつくろうぜ!
レス数が950を超えています。1000を超えると書き込みができなくなります。