Boostを語れゴラァ part3
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/09/23(土) 15:00:11前スレ
part 2 http://pc8.2ch.net/test/read.cgi/tech/1139313234/
part 1 http://pc8.2ch.net/test/read.cgi/tech/1091198276/
■関連サイト■
Boost C++ Libraries
http://www.boost.org/
Boost 翻訳プロジェクト
http://boost.cppll.jp/HEAD/
Let's Boost
http://www.kmonos.net/alang/boost/
boost info
http://shinh.skr.jp/boost/
0002デフォルトの名無しさん
2006/09/23(土) 15:01:35Boost C++ Libraryプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4798007862/
Beyond The C++ Standard Library
http://www.amazon.co.jp/exec/obidos/ASIN/0321133544/
C++ Template Metaprogramming
http://www.amazon.co.jp/exec/obidos/ASIN/0321227255/
The Boost Graph Library
http://www.amazon.co.jp/exec/obidos/ASIN/0201729148/
■関連スレ■
C++相談室 part46
http://pc8.2ch.net/test/read.cgi/tech/1136690107/
【C++】STL(Standard Template Library)相談室 4
http://pc8.2ch.net/test/read.cgi/tech/1130680264/
BOOTSを語れゴラァ part2
http://pc8.2ch.net/test/read.cgi/tech/1139266461/
0003デフォルトの名無しさん
2006/09/23(土) 15:03:31http://sourceforge.net/projects/loki-lib/
JTC1/SC22/WG21 - The C++ Standards Committee
http://www.open-std.org/jtc1/sc22/wg21/
POCO, the C++ Portable Components
http://www.appinf.com/poco/info/
http://sourceforge.net/projects/poco/
The unofficial BCB Boost patches
http://bcbboost.sourceforge.net/
0004デフォルトの名無しさん
2006/09/23(土) 15:04:37http://boost.cvs.sourceforge.net/boost/boost/boost/ptr_container/ptr_vector.hpp?view=log
Unresolved Issues: CVS-RC_1_34_0
http://engineering.meta-comm.com/boost-regression/CVS-RC_1_34_0/developer/issues_release_.html
0005デフォルトの名無しさん
2006/09/23(土) 15:19:51Unresolved Issues: CVS-RC_1_34_0
http://engineering.meta-comm.com/boost-regression/CVS-RC_1_34_0/developer/issues_release_.html
>>1 乙
0006デフォルトの名無しさん
2006/09/23(土) 20:09:13ところで前スレはどういう流れだったっけ
0007デフォルトの名無しさん
2006/09/23(土) 20:19:46BOOTSを語れゴラァ part2
http://pc8.2ch.net/test/read.cgi/tech/1139266461/
0008デフォルトの名無しさん
2006/09/23(土) 20:43:09そこはどう見ても履き物についてのスレだw
0009デフォルトの名無しさん
2006/09/23(土) 20:59:440010デフォルトの名無しさん
2006/09/23(土) 21:39:370011デフォルトの名無しさん
2006/09/23(土) 22:48:14ホンマにブーツの話してるしw
0012デフォルトの名無しさん
2006/09/24(日) 00:08:55間違いは間違いとして、その後で内容のほうを合わせようという建設的な態度は評価できるな
0013デフォルトの名無しさん
2006/09/24(日) 00:23:34スレタイに半角の # が使えないことを知らなくてスレタイから # が消えて、
そのまんま C 言語のスレになったってのもあったな。
0014デフォルトの名無しさん
2006/09/24(日) 00:49:11version134ていつでるんでしょうか、10月中にはでます?
0015デフォルトの名無しさん
2006/09/24(日) 01:31:11いや、ちゃんとあるよ。
>>1のURLから最後の空白を削ってみろ
0016デフォルトの名無しさん
2006/09/24(日) 05:09:00>>1 のリンクって。
0017デフォルトの名無しさん
2006/09/24(日) 06:18:04いわゆるコンテナクラスライブラリのイテレータとは書式が違うね。
0018デフォルトの名無しさん
2006/09/24(日) 09:10:310019デフォルトの名無しさん
2006/09/24(日) 09:40:14って言う意味だった。
0020デフォルトの名無しさん
2006/09/24(日) 09:45:17begin()/end()を持っている方が少数派。
例えばiostream。
0021デフォルトの名無しさん
2006/09/24(日) 17:51:52ワーニングがいっぱいでて1時間以上まって エラーも5個でて、
regexp の例題をコンパイルしてもエラーでだめでした。(エピステーメさんのHPの)
Boost を 2005 EE にインストールする方法を書いてあるHPがありましたが教えてください。
よろしくおねがします。
0022デフォルトの名無しさん
2006/09/24(日) 18:03:180023デフォルトの名無しさん
2006/09/24(日) 19:49:32該当コメントを削除しちゃえば出なくなりますよ。
Copyright 宣言もあるから、削除したのを再配布するのはよくないね。
boost_1_33_1/boost/filesystem/exception.hpp
boost_1_33_1/boost/filesystem/directory.hpp
boost_1_33_1/libs/filesystem/src/exception.cpp
boost_1_33_1/libs/filesystem/src/operations_posix_windows.cpp
(c) と、Dietmar なんちゃらって人の名前。
boost_1_33_1/boost/lexical_cast.hpp
boost_1_33_1/boost/type_traits/is_base_and_derived.hpp
Terje なんちゃらって人の名前。
boost_1_33_1/libs/regex/src/regex_traits_defaults.cpp
キャラクタテーブルのコメント。いぱーい。
0024デフォルトの名無しさん
2006/09/24(日) 20:23:110025デフォルトの名無しさん
2006/09/24(日) 20:34:16何をして何のエラーが出たのか書いてよ。
PlatformSDK Build Environment
vcvars32.bat
boost/regex/user.hpp ->例題によってはこれの設定必要
bjam
の順で自分はやってるけど?
0026デフォルトの名無しさん
2006/09/24(日) 22:09:10lexical_cast<std::string> は無いんだろう。
0027デフォルトの名無しさん
2006/09/24(日) 23:07:45#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp>
int main()
{
std::string s1 = boost::lexical_cast<std::string>(1234);
std::string s2 = boost::lexical_cast<std::string>(3.14);
std::cout << s1 << std::endl << s2 << std::endl;
return 0;
}
0028デフォルトの名無しさん
2006/09/25(月) 10:33:45boost::shared_ptr<T> sp;
std::auto_ptr<T> ap(new T);
sp = ap;
この後、sp を使って当該オブジェクトを弄り回したいんですが、
ap はきちんと所有権を失っていてくれることが保証されていますか?
つまり ap も所有権を主張していて、スコープを外れた途端に
いきなりデストラクタを呼び出しに行ったりしませんか?
0029デフォルトの名無しさん
2006/09/25(月) 10:51:52ttp://boost.cppll.jp/HEAD/libs/smart_ptr/shared_ptr.htm
0030デフォルトの名無しさん
2006/09/25(月) 10:54:550031デフォルトの名無しさん
2006/09/25(月) 10:57:53何故自分で試さない?
0032デフォルトの名無しさん
2006/09/25(月) 11:37:05リンク先の「タイプ量(コード量)を減らそうとして...」ての知らなかたよ。
0033デフォルトの名無しさん
2006/09/25(月) 12:26:030034デフォルトの名無しさん
2006/09/26(火) 12:54:58多分一部のlibコンパイルに失敗してる
奇遇にも昨日EEへの導入したときに同じヘマしたので俺の場合の解決手順を書いとこう
EEインスコの自動設定以外の(SDKとかへの)パスは通してない
set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include
C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat をDOS窓に投げて実行
bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install
事前にDOS窓の高さバッファ9999にするとか
--prefix をわざとD:\Prog.. ってして作業内容把握できるようにすると判りやすいかも
0035デフォルトの名無しさん
2006/09/26(火) 21:33:46eps_p(p) >> p[f] ではだめなのか?
0036デフォルトの名無しさん
2006/09/26(火) 23:04:56ちょっと量が多すぎてvectorにpush_backじゃ厳しいから
まずPにマッチする行数をincrement_aでカウントした後一気にメモリー確保して、
その後でdetailed_Pで実際にパースしようとしてるんだわ。
そうしたらマッチしてるのにセマンティックアクションが動かなくてさ。
うまくいかないからとりあえず普通にPでマッチさせて、そこからもう一回
bindでparse呼んでるんだけど、これが正しい解なのか悩んでる。
0037デフォルトの名無しさん
2006/09/27(水) 02:19:48http://www.boost.org/libs/spirit/doc/epsilon.html
0038デフォルトの名無しさん
2006/09/30(土) 00:11:400039デフォルトの名無しさん
2006/09/30(土) 20:11:480040デフォルトの名無しさん
2006/09/30(土) 22:40:11無理なんでよね?^^;
0041デフォルトの名無しさん
2006/09/30(土) 23:45:340042デフォルトの名無しさん
2006/09/30(土) 23:48:410043デフォルトの名無しさん
2006/10/01(日) 00:16:460044デフォルトの名無しさん
2006/10/01(日) 00:32:570045デフォルトの名無しさん
2006/10/01(日) 00:45:35元来の英語の意味は「蒐集する、編纂する」というニュアンス。
コンピュータ用語としては「コンパイル」が広く普及しているので、そのままで桶。
0046デフォルトの名無しさん
2006/10/01(日) 00:50:420047デフォルトの名無しさん
2006/10/01(日) 00:51:400048デフォルトの名無しさん
2006/10/01(日) 01:17:53OptionalとExpressionTemplate使って辺値を
数式と計算に分離できるようにできるかな?
できたら数式のままいろんな計算できそうなんだけども。
0049デフォルトの名無しさん
2006/10/01(日) 01:20:590050デフォルトの名無しさん
2006/10/01(日) 01:52:050051デフォルトの名無しさん
2006/10/01(日) 06:59:280052デフォルトの名無しさん
2006/10/01(日) 08:43:490053デフォルトの名無しさん
2006/10/01(日) 09:28:270054デフォルトの名無しさん
2006/10/01(日) 16:40:13私達中華人民はあなたたちの掲示板を拝見して笑ってみてますよ。ではありがとうございました。
0055デフォルトの名無しさん
2006/10/01(日) 17:01:270056デフォルトの名無しさん
2006/10/01(日) 17:18:500057デフォルトの名無しさん
2006/10/02(月) 00:49:040058拝して見るのはあくまで自分な
2006/10/02(月) 12:19:15日本語でどうぞ。
0059デフォルトの名無しさん
2006/10/02(月) 12:22:280060デフォルトの名無しさん
2006/10/02(月) 12:58:340061デフォルトの名無しさん
2006/10/02(月) 19:30:530062デフォルトの名無しさん
2006/10/02(月) 23:41:170063デフォルトの名無しさん
2006/10/03(火) 00:51:37六四事件 天安門
0064デフォルトの名無しさん
2006/10/03(火) 06:57:160065デフォルトの名無しさん
2006/10/04(水) 12:38:270066デフォルトの名無しさん
2006/10/04(水) 12:43:21そうそう。今では見る影もないけどね。>彼ら
0067デフォルトの名無しさん
2006/10/04(水) 15:53:110068デフォルトの名無しさん
2006/10/08(日) 01:51:46struct foo {
friend bool operator+(const int &lhs, const foo &rhs) {
//...
};
};
0069デフォルトの名無しさん
2006/10/08(日) 02:01:040070デフォルトの名無しさん
2006/10/08(日) 02:01:39その本来の目的で使われることが無くなった、
興味深いworkaroundのコード。
テンプレート関数のオーバーロードができなかった時代に考案されたという……。
ADLの助けを借りずしてその関数を呼び出すことは不可能とされている。
民明書房「黎明期の貧弱なコンパイラとその制約」より
0071デフォルトの名無しさん
2006/10/08(日) 04:05:12Boostを導入しようと思ったきっかけが
シリアライズが楽にできそう、なんで、いきなり挫折しそう
0072デフォルトの名無しさん
2006/10/08(日) 23:41:59ただ大域locale(std::locale::global)の設定をしないとうまくいかない場合があるはず。
0073デフォルトの名無しさん
2006/10/09(月) 19:16:27よかった、頑張ってみます
さんくす
0074デフォルトの名無しさん
2006/10/10(火) 00:04:361.34 わくわく
0075デフォルトの名無しさん
2006/10/10(火) 09:41:460076デフォルトの名無しさん
2006/10/10(火) 20:07:440077デフォルトの名無しさん
2006/10/10(火) 22:07:18俺はvc8 + STLport5.1.0 + Boost1.33.1だ。
0078デフォルトの名無しさん
2006/10/10(火) 23:31:01007976
2006/10/11(水) 12:53:48よろしければ その時のBOOSTのインストール方法をお教えいただけますか?
0080デフォルトの名無しさん
2006/10/11(水) 19:00:27というか、「出来ないんじゃないか」と考える理由の方がわからんが?
008173
2006/10/11(水) 20:35:01しかし、wchar_t文字列のシリアライズコードを書いてみたのですが動作しません
コードは25行なんですが、コードに関する質問は
質問スレのほうに書いたほうがよいでしょうか
0082デフォルトの名無しさん
2006/10/11(水) 20:37:58008373
2006/10/11(水) 20:47:31現在、コンパイルすると次のエラーがでます
C2027: 認識できない型 'boost::STATIC_ASSERTION_FAILURE<x>' が使われています
↑コンパイル時の展開関係などがわかるようなデバッガがほしい・・
以下コード。
#include <tchar.h>
#include <locale>
#include <iostream>
//#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_woarchive.hpp>
//#define BOOST_LIB_NAME boost_serialization
#define BOOST_LIB_NAME boost_wserialization
#include <boost/config/auto_link.hpp>
class test{
wchar_t* str;
template <class Archive>
void serialize(Archive& ar, const unsigned int version){
ar & str;
}
test(){_tcscpy_s(str,(sizeof(_T("TEST"))+1)*2,_T("TEST"));}
};
int main(){
test te();
std::locale::global(std::locale("japanese"));
boost::archive::text_woarchive oa(std::wcout);
//boost::archive::text_oarchive oa(std::cout);
oa & te;
return 0;
}
008473
2006/10/11(水) 20:53:310085デフォルトの名無しさん
2006/10/11(水) 22:08:27C2027ってことはVisual C++だろ。
出力の中から、エラーを起こしたテンプレートがどこから実体化されたのか辿れるようになっている。
008673
2006/10/11(水) 22:21:21まじすか、情報ありがとうございます!
あの後、組み込み型での実行は諦めてwstringバージョンを作りました
一応ちゃんと動作しますが、#elifディレクティブのほうは文字化けします
#include <tchar.h>
#include <string>
#include <iostream>
#include <fstream>
#include <locale>
#include <boost/archive/text_woarchive.hpp>
#include <boost/archive/text_wiarchive.hpp>
#include <boost/serialization/string.hpp>
#define BOOST_LIB_NAME boost_serialization
#include <boost/config/auto_link.hpp>
008773
2006/10/11(水) 22:23:10public:
Test(std::wstring s):str(s){};
std::wstring str;
private:
friend class boost::serialization::access;
template<class Archive> void serialize(Archive& ar, const unsigned int version){
ar & str;
}
};
int main(int, char**){
std::wcout.imbue(std::locale(""));
Test te(_T("日本語文字列の入力テスト"));
#if 1
std::wofstream ofs(_T("out.txt"));
boost::archive::text_woarchive oa(ofs);
oa & te;
ofs.close();
std::wifstream ifs(_T("out.txt"));
boost::archive::text_wiarchive ia(ifs);
ia & te;
ifs.close();
std::wcout << te.str << std::endl;
#elif 1
boost::archive::text_woarchive ar(std::wcout);
ar & te;
#endif
return 0;
}
008877
2006/10/11(水) 22:23:11まずはbjam.exeをゲットしてboostのフォルダに入れておく。
それから、次のようなバッチファイルを作って、実行。
cd "boostのフォルダ"
set INCLUDE=STLportのヘッダのフォルダ;%INCLUDE%
set LIB=STLportのライブラリのフォルダ;%LIB%
call "C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
bjam -sTOOLS=vc8_0 --prefix="ライブラリの生成先フォルダ" install
深くは使ってないんで、完璧にうまくいってるかは分からないけど。
008976
2006/10/12(木) 13:23:24その方法でやってみるとBoostとSTLportがVC8上で共存できませんでした。
>bjam -sTOOLS=vc8_0 --prefix=
ではなく
bjam -sTOOLS=vc8_0-stlport --prefix=
が公式HP上で出るのを待つしかないのでしょうか??
0090デフォルトの名無しさん
2006/10/12(木) 15:28:52ぐぐったらでてきた
http://d.hatena.ne.jp/Hossy/20060926
009177
2006/10/12(木) 18:42:340092デフォルトの名無しさん
2006/10/12(木) 20:51:42cygwinにboostのパッケージが用意されていて助かった。
0093デフォルトの名無しさん
2006/10/12(木) 21:01:590094デフォルトの名無しさん
2006/10/12(木) 21:07:00何だとゴルァ!
0095デフォルトの名無しさん
2006/10/12(木) 21:32:05boost使ってない事が無いな
0096デフォルトの名無しさん
2006/10/12(木) 21:36:260097デフォルトの名無しさん
2006/10/12(木) 21:58:030098デフォルトの名無しさん
2006/10/12(木) 22:02:52んなこたない。boost使ってない奴はC++にどっぷりじゃないと思ってるだけだろ
0099デフォルトの名無しさん
2006/10/12(木) 23:26:17つまり>>95にとって「C++どっぷり」と「boost使う」が同値なわけか
0100デフォルトの名無しさん
2006/10/12(木) 23:30:55実際は逆なんだけどな。
0101デフォルトの名無しさん
2006/10/12(木) 23:36:140102デフォルトの名無しさん
2006/10/12(木) 23:37:59逆っていうか、相関性はあまりない気が
詳しいかどうかじゃなくて、便利だから使うだけだしな
0103デフォルトの名無しさん
2006/10/12(木) 23:38:10激しく同意
0104デフォルトの名無しさん
2006/10/12(木) 23:56:510105デフォルトの名無しさん
2006/10/13(金) 00:10:38アイディアとかは参考にするし、似たようなもの実装することもあるし、
既に似たようなもの作ってたりとかだなあ。
スレッドとかファイルシステムとかのライブラリって結局自前じゃないと
いろいろ融通が利かなくって、他人のはめんどくさい気がするんだよなあ。
ちょっとずれるけど、C++もCPANみたいにFTPとかXMLとか応用的なライブラリが
まとまって管理されたりするといいなあとか思うな
0106デフォルトの名無しさん
2006/10/13(金) 00:35:180107デフォルトの名無しさん
2006/10/13(金) 07:54:250108デフォルトの名無しさん
2006/10/13(金) 08:55:25もう自分で作る必要はない」とか売り文句がついてくるんだけどさ。
OWLとかMFCもATLもそうだったけど、そういうのの上位に作るとさ、その
ライブラリの衰退と共に自分のコードも死んじゃうんだよね。
あと、自前はたいしたことなくていいんだよ。必要なときに必要な箇所を
実装すればいいんだからさ。
0109デフォルトの名無しさん
2006/10/13(金) 09:12:120110デフォルトの名無しさん
2006/10/13(金) 09:29:40まあ、boostの場合は衰退の前にもっと繁栄しないとかなと。。
0111デフォルトの名無しさん
2006/10/13(金) 10:17:360112デフォルトの名無しさん
2006/10/13(金) 12:16:24boostの開発者は自分で使いたいから作ったんじゃないの?
自分では使わないけれど他人に使わせるために作ってるわけ?
105の言うとおりに同等品を既に作ってあるとかなら別だけど。
0113デフォルトの名無しさん
2006/10/13(金) 12:37:39そこにテンプレートメタプログラミングがあるからだ。
0114デフォルトの名無しさん
2006/10/13(金) 12:42:21ただboostを使ってるだけの連中は、boostを作ってる連中に比べれば全然C++に詳しくない。
って話だろ?
0115デフォルトの名無しさん
2006/10/13(金) 12:44:10いろいろと勉強になって楽しいけどな
特に detail/ 以下漁るといろんなモノ発掘できて楽しいw
0116デフォルトの名無しさん
2006/10/13(金) 12:48:55ただC++コンパイラを使っているだけの連中は、C++コンパイラを作っている連中に比べれば(ry
0117デフォルトの名無しさん
2006/10/13(金) 19:18:21たしかに。lightweight_mutex (shared_ptr で使用)だの、
phoenix (spirt で使用) だのは、ブラッシュアップして表に出して欲しいくらい。
0118デフォルトの名無しさん
2006/10/13(金) 22:14:55phoenixはlambdaと統合中とかどこかでみたような。。
0119デフォルトの名無しさん
2006/10/14(土) 13:11:22順番の問題じゃない?下位のクラスが安定してきたらそのうちできるでしょ。
spirit使えばXMLパーサの実装も理屈的にはBNFを移すだけになるしさ。
0120デフォルトの名無しさん
2006/10/14(土) 16:27:50そこをいくらでもチューンナップできる自由度もあるので、
なかなか汎用的な低レベル層を作るのは難しいという気がする。
で、それをテンプレートポリシー化によって汎用的にしすぎると
今度はコンパイル時間が許容できなくなったり、言語非互換の壁に
ぶちあたったりするという罠。
0121デフォルトの名無しさん
2006/10/16(月) 17:59:04C++は詳しくないけど面白そうなのでboost::spiritを学び始めた
どういったことに使おうかなーって思って
BNFの具体的な使われ方を調べようと思ったんだが
ググっても基本的な使い方ばっかりがヒットするorz
正規表現雑技のページとかが理解できたら
幅が広がりそうだが
今度は逆に応用過ぎて理解できない
0122デフォルトの名無しさん
2006/10/16(月) 18:19:59ミニ電卓作るとか
自前でXMLパーサ作る位しか思いつかなかった
頭ひねって普通にCで書いた方がコンパイル速度でイライラしなくて済むけど…
0123デフォルトの名無しさん
2006/10/16(月) 19:26:36おまけ機能を追加するときに、
bindとかは大活躍してる
lambdaは使いこなせてない
0124デフォルトの名無しさん
2006/10/16(月) 20:11:140125デフォルトの名無しさん
2006/10/17(火) 00:01:29ビルドできないんだけど、誰かどこに手を入れればいいかわかる人居ます?
0126デフォルトの名無しさん
2006/10/17(火) 08:53:42C++上級者が興味を持って、調べてる的な感じだよね。
てか、商用ではJavaかスクリプトになりそうだから、クロスでC++って
需要あんまなさそうとか。。
0127デフォルトの名無しさん
2006/10/17(火) 15:02:460128デフォルトの名無しさん
2006/10/17(火) 15:33:050129デフォルトの名無しさん
2006/10/17(火) 16:11:04lang == c
こういうことか!
…すいません。でも仕事で非標準(かつ多機能)のライブラリの利用を認めてるとこは多くないんじゃない?
0130デフォルトの名無しさん
2006/10/17(火) 18:35:35さりげなくスレッドセーフになっていてcoolです
0131デフォルトの名無しさん
2006/10/17(火) 21:50:450132デフォルトの名無しさん
2006/10/17(火) 21:55:430133デフォルトの名無しさん
2006/10/17(火) 22:47:21int main(int argc, char * argv[])
{
boost::numeric::ublas::vector<float > vec(2);
vec(0)=1.0;vec(1)=2.0;
boost::function1<
float,boost::numeric::ublas::vector<float>
> norm_2Functor = &boost::numeric::ublas::norm_2<boost::numeric::ublas::vector<float> >;
float out= norm_2Functor(vec) ;
}
想定外のメモリーを参照しました
で落ちる。何が悪いのだろう。
0134デフォルトの名無しさん
2006/10/18(水) 16:38:120135デフォルトの名無しさん
2006/10/18(水) 16:58:41じきに直るでしょ
0136デフォルトの名無しさん
2006/10/18(水) 17:02:39http://boost.sourceforge.net/
0137デフォルトの名無しさん
2006/10/18(水) 17:37:550138デフォルトの名無しさん
2006/10/19(木) 00:32:34でふぉでそうだったっけ?そしたら遅くないか?
0139デフォルトの名無しさん
2006/10/19(木) 00:35:460140デフォルトの名無しさん
2006/10/19(木) 00:49:280141デフォルトの名無しさん
2006/10/19(木) 01:43:590142デフォルトの名無しさん
2006/10/19(木) 03:24:06VC8+boost1.35で試したらちゃんと動いたけど
使ってるコンパイラとboostのバージョンは?
0144133
2006/10/19(木) 09:34:24boost1.35なんてないよ
0145デフォルトの名無しさん
2006/10/19(木) 11:14:37CVSの最新版が1.35
0146デフォルトの名無しさん
2006/10/19(木) 11:36:49out = 2.236068
g++(mingw3.4.5)+boost1.33.1 でも問題ないようにみえます。
0147デフォルトの名無しさん
2006/10/19(木) 11:43:430148デフォルトの名無しさん
2006/10/19(木) 11:46:32VC8+boost1.33.1でもちゃんと動くね
0149デフォルトの名無しさん
2006/10/19(木) 16:25:42VC2003で試したら落ちたのでアセンブリ出力を調べてみた。
function1<float, ublas::vector<float> > norm_2Functor = &ublas::norm_2<ublas::vector<float> >;
and eax,00402fd0 ; ここがおかしい。なんでANDやねん...(00402fd0はnorm_2のアドレス)
push eax ; VC8では2行あわせてpush 00402fd0だけになっている
lea ecx,dword ptr [ebp-3c]
call 00403040
mov byte ptr [ebp-04],01
で、norm_2Functorの宣言をこうしたらとりあえず動いた。
function1<float, ublas::vector<float> > norm_2Functor(&ublas::norm_2<ublas::vector<float> >);
push +00 ; この00は何なんだろう…
push 00402fd0
lea ecx,dword ptr [ebp-3c]
call 00403040
mov byte ptr [ebp-04],01
よくわからないpush 00がとても不安だけど…(VC8ではpushはひとつだけ)
0150デフォルトの名無しさん
2006/10/20(金) 21:04:32norm_2Functor(&ublas::norm_2<ublas::vector<float> >);
でしか呼べないのね。
objectの意味ねえ
0151デフォルトの名無しさん
2006/10/20(金) 21:49:33function1<float, ublas::vector<float> > norm_2Functor(NULL);
で宣言しておいてswap技法
function1<float, ublas::vector<float> >(&ublas::norm_2<ublas::vector<float> >).swap(norm_2Functor);
で実際の関数を代入とか…
ヤッテランネ(ノ`□´)ノ⌒┻━┻
0152151
2006/10/20(金) 21:52:00swap(norm_2Functor, function1<float, ublas::vector<float> >(&ublas::norm_2<ublas::vector<float> >));
でないと無理か
そもそもできるかどうか知らんけど
0153デフォルトの名無しさん
2006/10/20(金) 22:03:060154デフォルトの名無しさん
2006/10/20(金) 22:38:40そもそも一時オブジェクトをswapの引数にはできん
0155デフォルトの名無しさん
2006/10/20(金) 23:17:36--->?swap技法?
0156デフォルトの名無しさん
2006/10/21(土) 00:24:570157デフォルトの名無しさん
2006/10/21(土) 00:43:07意味不明
0158デフォルトの名無しさん
2006/10/21(土) 00:43:28vectorが確保するメモリを要素数ぴったりに合わせるテクニックで
x.swap(std::vector<T>(x));
ってのがあったと思うけど、これもダメなの?
0159デフォルトの名無しさん
2006/10/21(土) 00:46:060160デフォルトの名無しさん
2006/10/21(土) 00:50:030161デフォルトの名無しさん
2006/10/21(土) 01:01:03VC++2003で警告レベルを最高にするとwarningになるな。
0162デフォルトの名無しさん
2006/10/21(土) 01:27:5925.2.2 Swapによれば
template<class T> void swap(T& a, T& b);
1 Requires: Type T is Assignable.
とあるから、できないんじゃね?
と思ってx.swap(std::vector<T>(x));とやったらVC++2005でエラーになった。
と思ったらstd::vector<int>(x).swap(x);は通った。
何じゃこりゃ。
0163デフォルトの名無しさん
2006/10/21(土) 02:05:58swap技法はstd::vector<T>(x).swap(x);じゃない?
0164デフォルトの名無しさん
2006/10/21(土) 07:43:54template<class T> void swap(T& a, T& b);
はaもbも非const参照だから、一時オブジェクトを受け付けない。
std::vector<int>(x).swap(x);は、
std::vector<int>(x)が一時オブジェクトだが非constなので、非constなメンバ関数を呼べてしまう。
0165デフォルトの名無しさん
2006/10/21(土) 08:54:42お前何にもわかってないのな
>>159
馬鹿確定
0166デフォルトの名無しさん
2006/10/21(土) 10:01:260167デフォルトの名無しさん
2006/10/21(土) 21:13:06boost::function<int (int,int)> f = add; はコンパイルできるわけですが、
boost::function<boost::function<int,int> (int)> g = add; のようなことがしたい場合はどうし
たらよいでしょうか?addを、int->int->int ではなく int-> (int->int) として扱いたいというか。
gに、あとで(addの)第一引数を渡して、boost::function<int,int>型の関数オブジェクトを得て、
更にその後で(addの)第二引数を渡し、最終結果を得たいという感じです。
0168167
2006/10/21(土) 21:20:16よろしくおながいします
0169デフォルトの名無しさん
2006/10/21(土) 21:44:22どうしてもその変換をしないと駄目?
第一引数が既にあるならそれを部分適用することは簡単なんだが。
0170デフォルトの名無しさん
2006/10/21(土) 22:05:03# include <boost/function.hpp>
# include <boost/lambda/lambda.hpp>
# include <boost/lambda/bind.hpp>
# include <iostream>
# include <functional>
namespace lam = boost::lambda;
int main(void)
{
typedef boost::function<int (int, int)> f_type;
f_type f = std::plus<int>();
boost::function<boost::function<int (int)> (int) >
g = lam::bind(std::bind1st<f_type, int>, f, lam::_1);
std::cout << g(7)(2) << '\n';
}
0172167
2006/10/21(土) 22:23:29ありがとうございます。やってみます。
0173デフォルトの名無しさん
2006/10/21(土) 23:04:050174デフォルトの名無しさん
2006/10/21(土) 23:10:30いってみてよ
0175デフォルトの名無しさん
2006/10/22(日) 01:05:59template <typename A, typename B> int foo(A a, B b) { return 0; }
に対して、後者の関数をbindするつもりで
boost::bind(foo<int,int>, _1, 100);
すると、no matching function for call to ‘bind(<unresolved overloaded function type>, boost::arg<1>&, int)’
とか言われてしまうんだが、これって回避策ありますか?
gcc4.1です
0176デフォルトの名無しさん
2006/10/22(日) 01:12:24boost::bind(static_cast<int (*)(int, int)>(foo), _1, 100)
0177デフォルトの名無しさん
2006/10/22(日) 12:38:25class Void{}Void_v;
template<class T1, class T2, class T3=Void>struct select_f;
の特殊化を作ってfooの引数にVoid型があるなしで選択するとかは。
0178デフォルトの名無しさん
2006/10/22(日) 12:42:09は?
0179デフォルトの名無しさん
2006/10/22(日) 12:43:22175は関数テンプレートな訳だが..
0180177
2006/10/22(日) 13:30:36えーと、あいまいな関数オーバーロードの解決にはキャストあたりが手っ取り早いと思うけど
そこで、
template <typename A, typename B, typename C>
int foo(A a, B b, C c) { return select_f<A, B, C>()(a, b, c); }// put away foo else
・・・
boost::bind(foo<int,int, Void>, _1, 100, Void_v);
こんな感じでキャストを使わない方法の案を提供したかったわけですよ。
0181デフォルトの名無しさん
2006/10/22(日) 13:39:27あと、>177のように何の前置きにもなしに言って、理解してくれるエスパーだと思ったの?
0182177
2006/10/22(日) 13:55:49キャストを使わない。
キャストを使ったときに起きるテンプレート関数の特殊化に対しての曖昧性をなくせる(たぶん)。
> あと、>177のように何の前置きにもなしに言って、理解してくれるエスパーだと思ったの?
タイピングの勢いだ。
0183デフォルトの名無しさん
2006/10/22(日) 14:28:28具体例が欲しいな
0184デフォルトの名無しさん
2006/10/22(日) 15:58:190185デフォルトの名無しさん
2006/10/22(日) 16:38:15たとえば、>175を
template <typename A, typename B> int foo(A a, B b); (b)
template<class A, class B>int foo(A*,B*); (c)
こんな(c)を追加して、(c)or(b)のどちらかをbindで使いたい場合
このオーバーロードの解決には結局、関数オブジェクトが手っ取り早いと思います。
0186デフォルトの名無しさん
2006/10/22(日) 17:13:50それ、曖昧か?
後者は foo() についてポインタ型を扱う場合の特殊化を宣言しているので、
引数の型に応じて定義が使い分けられるだけじゃないの?
↓キャストでもコンパイルできたし。
int a, b;
(static_cast<int (*)(int*, int*)>(foo))(&a, &b);
0188デフォルトの名無しさん
2006/10/22(日) 18:02:01boost::bind(static_cast<int (*)(int*, int*)>(foo), _1, &b)(&a);
これぐらい自分で補完しろよ。
0189デフォルトの名無しさん
2006/10/22(日) 18:35:54コンパイル出来るんだ。へぇー。
0190デフォルトの名無しさん
2006/10/22(日) 19:04:010191デフォルトの名無しさん
2006/10/22(日) 19:23:430192デフォルトの名無しさん
2006/10/22(日) 19:40:14だって食い下がって逆撫でしていれば
>>188みたいな知識ひけらかし大好き君が無償で色々書いてくれるんだもん。
こういう子は利用しない手はないって。
0193デフォルトの名無しさん
2006/10/22(日) 19:57:34普通に質問すればいいのに、なんでわざわざそんな手段をとる必要がある?
0194デフォルトの名無しさん
2006/10/22(日) 20:19:000195デフォルトの名無しさん
2006/10/22(日) 20:25:02>176で終わってる質問だし。
それに>188の知識は>176以上のものではないし。
散々引っ張っといて同じモノしか出ないんじゃ、割に合わない。
単純に悔しくなった>177君が利用してやった振りしてるだけ。
0196デフォルトの名無しさん
2006/10/22(日) 20:47:180197189
2006/10/22(日) 23:35:55ごめん。
だれもつっこんでくれないから寝る前に一言
> boost::bind(static_cast<int (*)(int*, int*)>(foo), _1, &b)(&a);
ちょっと言い訳・・・・「&a」参照の罠に嵌ってました。以上です。では、おやすみ。
0198デフォルトの名無しさん
2006/10/25(水) 18:14:32すてきな使い心地のライブラリって無いものでしょうか。
0199デフォルトの名無しさん
2006/10/25(水) 19:42:34と
ASLの adobe::forest
が車輪の再発明ぽい点について
0200デフォルトの名無しさん
2006/10/25(水) 20:28:360201デフォルトの名無しさん
2006/10/25(水) 23:26:500202デフォルトの名無しさん
2006/10/26(木) 00:02:53なんて言うライブラリか教えて貰えませんか?
今、std::map を boost::serialization でディスクに書き出しているんですが、
かなりデータ量が大きくなってきて、すべてをオンメモリで処理するのが
苦しくなってきました。
0203デフォルトの名無しさん
2006/10/26(木) 03:11:330204デフォルトの名無しさん
2006/10/26(木) 09:38:05しかし古い設計で組んでいた俺の昔のコードは一体何だったんだと。 orz
0205デフォルトの名無しさん
2006/10/26(木) 11:07:28せめて多項式か2次式だけでもできると
少し数値計算プログラムが楽になる
0206デフォルトの名無しさん
2006/10/26(木) 15:38:08adobe::dictionary_t
はstd::mapよりたくさん要素あつかえるとかtutorialに書いてあった
0207デフォルトの名無しさん
2006/10/26(木) 16:19:02Berkeley DBでも使え。
0208201
2006/10/27(金) 00:43:040209デフォルトの名無しさん
2006/10/27(金) 08:40:10馬鹿?
0210デフォルトの名無しさん
2006/10/27(金) 11:05:09つlibstldb4
0211デフォルトの名無しさん
2006/10/27(金) 16:20:16なぜ boost スレへ?
0212デフォルトの名無しさん
2006/10/27(金) 20:13:30手前で作ればいいのですが、boostにあるならそっちをつかいたく。
0213デフォルトの名無しさん
2006/10/27(金) 20:57:590214デフォルトの名無しさん
2006/10/27(金) 21:06:44それはコンパイルできんだろ..
0215デフォルトの名無しさん
2006/10/27(金) 21:11:33boost::addable< point<T>
, boost::subtractable< point<T>
>
{
MyPlus operator+=(const MyPlus&);
};
でいけたらいいな
0216デフォルトの名無しさん
2006/10/27(金) 21:16:44using namespace boost::lambda;
0217デフォルトの名無しさん
2006/10/27(金) 21:23:350218217
2006/10/27(金) 21:25:480219デフォルトの名無しさん
2006/10/27(金) 21:30:130220デフォルトの名無しさん
2006/10/27(金) 21:38:25複合代入演算子はクラスの外からでも多重定義できるのだから、
boost::lambdaで使えないわけが無い。
0221デフォルトの名無しさん
2006/10/27(金) 21:42:58クラス外から多重定義できるかどうかは関係ないような。
0223デフォルトの名無しさん
2006/10/27(金) 21:52:360224デフォルトの名無しさん
2006/10/27(金) 23:28:35死ねカス
0225デフォルトの名無しさん
2006/10/30(月) 18:40:490226デフォルトの名無しさん
2006/10/30(月) 18:54:49http://opensource.adobe.com/gil/
今レビューされている、Generic Image Library が通れば、
各種画像サポートが実現されるわけで、非常に期待してる。
0227デフォルトの名無しさん
2006/10/30(月) 20:09:510228デフォルトの名無しさん
2006/10/30(月) 22:09:560229デフォルトの名無しさん
2006/10/30(月) 22:14:22ちうこと。
0230デフォルトの名無しさん
2006/10/30(月) 22:29:06http://japan.zdnet.com/news/devsys/story/0,2000056182,20082134,00.htm
ユーザーインターフェイスの自動生成?
本当にできるの?
0231デフォルトの名無しさん
2006/10/30(月) 22:31:59機能の豊富さからいったらvigraが上だろう
http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/
0232デフォルトの名無しさん
2006/10/30(月) 22:42:28作者がboostに提案したか否かだろ
0233デフォルトの名無しさん
2006/10/30(月) 23:51:16発表された頃に斜め読みした限りでは
プログラマとデザイナで仕事を分離するという程度の内容だったような?
0234デフォルトの名無しさん
2006/10/31(火) 01:39:42どの記事だったか忘れたけど
>vigraのほうが好きだけど,vigraは作者が一人だし、gilが採択されたら
>その作者がんばるだろうからいいじゃん
とか書いてあった
0235234
2006/10/31(火) 01:41:27http://lists.boost.org/Archives/boost/2006/10/112316.php
これこれ
0236デフォルトの名無しさん
2006/10/31(火) 03:07:040237デフォルトの名無しさん
2006/10/31(火) 12:11:48VC7.1でコンパイルとおらねえじゃねえかよ
同じとこでこけやがる
0238デフォルトの名無しさん
2006/10/31(火) 18:46:57gcc3.3.6
libstdc++3.3.6
boostでなんとかなりませんか?
wcout << L"てれれのレ";
[****@ **] (沈黙)
0239デフォルトの名無しさん
2006/10/31(火) 18:51:430240デフォルトの名無しさん
2006/10/31(火) 19:18:040241デフォルトの名無しさん
2006/10/31(火) 19:24:22[****@ **]./a.out | od -tx1
0000000 (沈黙)
0242デフォルトの名無しさん
2006/10/31(火) 19:41:44これと同じ問題?
0243デフォルトの名無しさん
2006/10/31(火) 19:52:160244デフォルトの名無しさん
2006/10/31(火) 20:25:510245デフォルトの名無しさん
2006/10/31(火) 20:58:260246デフォルトの名無しさん
2006/10/31(火) 21:14:590247デフォルトの名無しさん
2006/10/31(火) 21:39:46--input-charsetが3.4からだから、そうだと思うんだけど。
0248デフォルトの名無しさん
2006/10/31(火) 21:40:210249デフォルトの名無しさん
2006/10/31(火) 23:02:310250デフォルトの名無しさん
2006/11/01(水) 01:37:53{
return boost::lambda::_1 +x;
}
でxを延命させるうまい方法はありますか? 別途関数を作ってbindとか、
plus<int>()にbindあたりはナシで。
0251デフォルトの名無しさん
2006/11/01(水) 01:48:57延命も何も、λ式に保持されるのはその時点でのxの値で、
xへの参照ではないから、xの寿命を気にする必要はない。
0252デフォルトの名無しさん
2006/11/01(水) 04:26:38結局バージョンの問題か。
0253デフォルトの名無しさん
2006/11/01(水) 09:28:503.3→3.4辺りで国際化した。あなたの使ったのは狭間の具合い悪いバージョン。
0254デフォルトの名無しさん
2006/11/01(水) 10:49:170255デフォルトの名無しさん
2006/11/01(水) 11:27:37標準ライブラリに入れようとしているのか。
もしかして curses みたいなものか?
0256デフォルトの名無しさん
2006/11/01(水) 11:55:13さっきbug fixしてupした
とかいってるやつはcvsのバージョンのことなのかな
0257デフォルトの名無しさん
2006/11/01(水) 17:30:47大幅に違ってるんだけど、何か変わったの?
0258デフォルトの名無しさん
2006/11/01(水) 21:59:04ってありますか?
GetCurrentDirectoryみたいなやつ。
0259デフォルトの名無しさん
2006/11/01(水) 22:09:37お前の中でThreadやfilesystemは一体なんなの?
0260デフォルトの名無しさん
2006/11/01(水) 22:57:400261デフォルトの名無しさん
2006/11/02(木) 01:13:530262デフォルトの名無しさん
2006/11/02(木) 01:30:36userのカレントディレクトリを返しちゃうん
だよね。
これLinuxの仕様くさいから仕方ないか。
0263デフォルトの名無しさん
2006/11/02(木) 01:35:20どこから実行ファイルのパスの話が出てきたんだ?
0264デフォルトの名無しさん
2006/11/02(木) 01:37:59こいつアホすぎww
0265デフォルトの名無しさん
2006/11/02(木) 11:06:53Windowsも似たようなもの
>>258の意図は知らないがcurrent_pathはたいてい役に立たない
0266デフォルトの名無しさん
2006/11/02(木) 11:07:31最適化
数字は自前でパースするようになった
0267デフォルトの名無しさん
2006/11/02(木) 11:33:40Cで行列演算といえば
LAPCK
boost::numeric::ublas
あたりが定番だけど
統計計算でお勧めは?
今boostで審査中や過去にrejectされたものでもいいので誰か教えて
使いたい機能は
単純に共分散行列を計算
正規分布に関係したいろいろな計算
できれば
kai^2 test
t-test
とかちょっと高度なこともしたい。
0268デフォルトの名無しさん
2006/11/02(木) 12:49:28でも未だに1e+10とかは扱えないんだなw
0269デフォルトの名無しさん
2006/11/02(木) 12:57:56シリアライズできないのは痛い。
0270デフォルトの名無しさん
2006/11/02(木) 14:18:37ClassName
じゃなくて
class_name
になってるのが気持ち悪い
なんでこんな命名規則になった
0271デフォルトの名無しさん
2006/11/02(木) 14:28:120272デフォルトの名無しさん
2006/11/02(木) 16:40:380273デフォルトの名無しさん
2006/11/02(木) 17:13:19boostじゃないけど
liboctave
libRmath
libgsl
あたり
0274デフォルトの名無しさん
2006/11/02(木) 23:31:110275デフォルトの名無しさん
2006/11/02(木) 23:32:09thx
liboctave はmatlab使いには便利そう
libRmath
本当の統計屋さんはやっぱりRを使うのだろうか
R使ったことない
liggsl
こんなのあったんだね。
でも多項式演算関係以外は既存libとかぎりなく一緒
0276デフォルトの名無しさん
2006/11/03(金) 02:10:07おまえさんは標準C++ライブラリも気持ち悪いって言うんだろうな。
実際そういう人が結構多いようだ。
0277デフォルトの名無しさん
2006/11/03(金) 03:05:140278デフォルトの名無しさん
2006/11/03(金) 03:20:37Java のメソッド名ナニアレ気持ちわるーい、となるのが正しい
0279デフォルトの名無しさん
2006/11/03(金) 03:40:400280デフォルトの名無しさん
2006/11/03(金) 03:47:520281デフォルトの名無しさん
2006/11/03(金) 03:50:440282デフォルトの名無しさん
2006/11/03(金) 04:31:570283デフォルトの名無しさん
2006/11/03(金) 08:11:550284デフォルトの名無しさん
2006/11/03(金) 12:34:110285デフォルトの名無しさん
2006/11/05(日) 03:31:58cvsのみ?
0286デフォルトの名無しさん
2006/11/05(日) 03:35:19前から話は出てるんだけどねぇ。
次のリリースの後にしようとして、リリースが延び延びになってる気配。
ちゃんと ML 漁れば、他に理由があるのかもしれないけど。
0287デフォルトの名無しさん
2006/11/05(日) 19:38:500288287
2006/11/05(日) 19:40:40(_1+_2)のようなラムダがあった場合
このlambda_functorのアドレスが知りたいのです。
0289デフォルトの名無しさん
2006/11/05(日) 19:43:310290デフォルトの名無しさん
2006/11/05(日) 20:40:51無理か。諦めます。レスありがとう。
0291デフォルトの名無しさん
2006/11/05(日) 21:10:34crcはあるようですが
0292デフォルトの名無しさん
2006/11/05(日) 21:26:13この手の参照透過性のある関数を
特にパラメタライズするメリットは感じないが。
0293デフォルトの名無しさん
2006/11/05(日) 21:28:380294デフォルトの名無しさん
2006/11/05(日) 21:28:43どこ?
0295デフォルトの名無しさん
2006/11/05(日) 21:30:110296デフォルトの名無しさん
2006/11/05(日) 21:30:37ありがとう
0297デフォルトの名無しさん
2006/11/05(日) 21:34:49http://sourceforge.net/projects/cryptopp/
とか
http://botan.randombit.net/
とか
http://opensource.adobe.com/classadobe_1_1md5__t.html
http://opensource.adobe.com/group__adobe__sha.html
あたりで
0298デフォルトの名無しさん
2006/11/05(日) 21:38:29コンパイルはそのまま通ったと思う。
数年前のことなので記憶が不鮮明だが、GNUのbinutilsから引っこ抜いた気がする。
0299デフォルトの名無しさん
2006/11/06(月) 00:37:42そんなの1分で直せるじゃん
0300デフォルトの名無しさん
2006/11/06(月) 14:32:48using namespace std; の記述があるみたいですね。
(std::coutが名前空間を指定せずに使えてしまった)
これってちょっと問題あるような…。
0301デフォルトの名無しさん
2006/11/06(月) 14:40:05./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./core/primitives/impl/primitives.ipp: using namespace std;
./fusion/sequence/detail/manip.hpp: using namespace std;
./iterator/impl/file_iterator.ipp:using namespace std;
./phoenix/closures.hpp: using namespace std;
0302デフォルトの名無しさん
2006/11/06(月) 14:42:18>>273
>>275
こんなのあったんだね
Boost.MathToolkit
http://www.johnmaddock.co.uk/toolkit
http://lists.boost.org/Archives/boost/2006/10/111114.php
0303デフォルトの名無しさん
2006/11/06(月) 15:26:41>>301
>./iterator/impl/file_iterator.ipp
これがまずい.
他の使い方は関数内なので問題ないし,意図的というか必要な using directive.
0304デフォルトの名無しさん
2006/11/06(月) 15:30:51新しいライブラリーをaccept するかのreviewが投稿されてるけど
ただのユーザーとしてのreviewを投稿してもいいのかな?
0305デフォルトの名無しさん
2006/11/06(月) 17:21:32ClassNameって命名規則つかってるの1つもないのかな
例外なく
class_name
に修正されるのかな
0306デフォルトの名無しさん
2006/11/06(月) 17:25:32あと長すぎるシンボルも関数の引数のところで行が折り返して見にくくなる。
boostってほどほどで良い感じ。
0307デフォルトの名無しさん
2006/11/06(月) 17:34:22boost.glasとかわけわかんね
http://glas.sourceforge.net/doc/papers/introduction/index.html
0308デフォルトの名無しさん
2006/11/06(月) 20:27:15Boost にはガイドラインがあって、そこでコーディングルールはある程度決まってる。
http://boost.org/more/lib_guide.htm
・クラス名や、メソッド名は class_name や method_name みたいにすること。
・テンプレートパラメータは TemplateParameter みたいにすること。
・分かりやすい名前にすること。
・マクロは MACRO_NAME みたいにすること。
0309デフォルトの名無しさん
2006/11/06(月) 20:29:55×マクロは MACRO_NAME みたいにすること。
○マクロは、すべて大文字で、BOOST_ からはじめること。
だな。
0310デフォルトの名無しさん
2006/11/06(月) 22:27:44投稿するのは自由だろう。「ただのユーザーとして」というのはちょっと引っかかるが。
不満を述べるだけじゃなくて、代案か、代案が出せないと考える理由を出すべきだろうね。
まぁ筋が通ってなければスルーされるだけ。何か考えがあるなら投稿しとけばいいと思うよ。
0311デフォルトの名無しさん
2006/11/07(火) 08:21:16っていう表現にどんな意味がこもっているかにもよるよね。
何となく
「恥かきそうだったり辛そうだったりしたら、いつでも綺麗にバッくれて
俺の人生においてすべてを"なかったこと"にできる道を確保したまま」
という意味な気がするんで、同じく引っかかる。
0312デフォルトの名無しさん
2006/11/07(火) 08:58:36何かに。
0313デフォルトの名無しさん
2006/11/07(火) 09:29:400314デフォルトの名無しさん
2006/11/07(火) 09:31:050315デフォルトの名無しさん
2006/11/07(火) 10:55:340316デフォルトの名無しさん
2006/11/07(火) 19:41:42GIL has been accepted as a boost library.
http://lists.boost.org/Archives/boost/2006/11/112896.php
0317デフォルトの名無しさん
2006/11/07(火) 19:51:41通ったのか!
0318デフォルトの名無しさん
2006/11/07(火) 22:12:220319デフォルトの名無しさん
2006/11/08(水) 01:18:37accepted
なのはいいけど肝心の GILのホームページが見れない
0320デフォルトの名無しさん
2006/11/08(水) 10:03:45今は見れるようになってるね
0321gil
2006/11/08(水) 11:30:180322デフォルトの名無しさん
2006/11/08(水) 12:06:06http://opensource.adobe.com/gil/
0323デフォルトの名無しさん
2006/11/08(水) 12:29:56どこが変わったか書いてないんだよね
0324デフォルトの名無しさん
2006/11/09(木) 01:40:50fatal error C1204: コンパイラの制限 : 内部構造がオーバーフローしました。
とかおきるのはVS2005に乗り換えればなんとかなるのかねえ
0325デフォルトの名無しさん
2006/11/09(木) 10:16:500326デフォルトの名無しさん
2006/11/09(木) 10:32:210327デフォルトの名無しさん
2006/11/09(木) 11:56:380328デフォルトの名無しさん
2006/11/09(木) 14:18:57文字列を与えますが、windowでドライブ名を含めたパスを
扱うにはどうすればよいでしょうか?
単純に
path("C:\hoge");
とすると落ちてしまいます。
0329デフォルトの名無しさん
2006/11/09(木) 14:28:150330デフォルトの名無しさん
2006/11/09(木) 14:51:340331デフォルトの名無しさん
2006/11/09(木) 16:09:25ありがとうごぜーますた。
0332デフォルトの名無しさん
2006/11/09(木) 16:34:13path( const char * src, name_check checker )
こういうコンストラクタがあるので、
コンストラクトのときだけ指定してやればいいんだぜ?
path p( "c:", native );
p /= "/foo";
assert( p.string() == "c:/foo" );
0333デフォルトの名無しさん
2006/11/09(木) 16:36:300334デフォルトの名無しさん
2006/11/09(木) 19:27:37でも、あんがとさん。
0335デフォルトの名無しさん
2006/11/10(金) 16:09:31と
boost::numerics::ublas
を駆使した
graphical_modeling ( とりあえず partilce filterだけインプリメント)
ってパッケージ作ったらboostにアクセプトされると思うのだけど
どう思う?
0336デフォルトの名無しさん
2006/11/10(金) 16:31:120337335
2006/11/10(金) 16:41:43死んでしまったらしいプロジェクトの再活性のために
メンバー募集してるような感じなので
http://sourceforge.net/forum/forum.php?thread_id=1608834&forum_id=334280
やる人が増えたらいいなって、それだけです。
0338デフォルトの名無しさん
2006/11/15(水) 14:23:40SP1で解決されたと書いてるがどうだろう
0339デフォルトの名無しさん
2006/11/16(木) 22:12:550340デフォルトの名無しさん
2006/11/17(金) 10:21:48>>90
すっごい亀なんだけど,VC++8 と STLport 5.1 と
Boost 1.33.1 は完全には共存できないことが分かった.
http://d.hatena.ne.jp/Hossy/20060926
ここに書かれている方法を使えば,wave 以外のライブラリは
構築できる.でも,wave だけはどうやっても無理.
なぜかというと,spirit の tree_node<T> の定義が問題なんだ.
tree_node<T> が中で vector<tree_node<T> > を使っていて,
__has_trivial_constructor の引数にできないと怒られる.
ということは,spirit も使えないことになるわけだ.
VC++8 の人はおとなしく STLport 5.1 を諦めるか,
もしくは STLport の中のコンセプトチェックを外すか
しないと駄目だと思う.
0341デフォルトの名無しさん
2006/11/17(金) 16:35:10ublas::prod<matrix, vector>なはずなのに
ublas::prod<matrix, matrix>と勝手に解釈されます
std::vector< boost::numeric::ublas::vector<float > > vector_list;
std::transform(vector_list.begin(),vector_list.end()
,vector_list.begin()
,
std::bind1st(
std::ptr_fun(
boost::numeric::ublas::prod<
boost::numeric::ublas::matrix< float > ,
boost::numeric::ublas::vector< float >
>)
,covariance.covariance));
0342デフォルトの名無しさん
2006/11/20(月) 21:05:430343デフォルトの名無しさん
2006/11/21(火) 02:34:42http://pc8.2ch.net/test/read.cgi/tech/1162215248/611-622
boost の導入が却下される理由を教えてください。
0344デフォルトの名無しさん
2006/11/21(火) 02:50:48オブジェクトコードにスタンプが入っちゃうから。
0345デフォルトの名無しさん
2006/11/21(火) 09:31:140346デフォルトの名無しさん
2006/11/21(火) 10:55:330347デフォルトの名無しさん
2006/11/21(火) 12:58:06VS2003でSP1あてないとコンパイル通らないコードがたまにあるから
0348デフォルトの名無しさん
2006/11/21(火) 13:02:39コンパイルが遅いからとかw
いくらでも理由は考えられるし、わざわざここへチクりに来るような話題とも思えない。
0349デフォルトの名無しさん
2006/11/21(火) 16:56:47boostって儲かるのかな
boostのreviewも裏でなにかありそうなかんじだ
GILとvigraの争いもなんか違和感がなくもなかった
0350デフォルトの名無しさん
2006/11/22(水) 10:17:520351デフォルトの名無しさん
2006/11/22(水) 18:04:13(イテレータでループしてもとめるのではなくて。。)
0352デフォルトの名無しさん
2006/11/22(水) 18:47:33tokenizer はイテレータを移動するたびに区切りを探す仕様だから無理。
0353デフォルトの名無しさん
2006/11/22(水) 18:52:00boost::accumulators
の人に要望したら実装してくれるかも
0354デフォルトの名無しさん
2006/11/22(水) 19:08:11探偵ごっこじゃなくて
vigraからGILに乗り換えるかで悩んでるんだよ
boostのreviewとやらが信用できるかどうかが、大きなファクター
なんか怪しいって思ってるやつが結構いるんだったら
boostのreviewを無視してvigraを使い続ける
0355デフォルトの名無しさん
2006/11/22(水) 23:52:450356デフォルトの名無しさん
2006/11/23(木) 00:07:400357デフォルトの名無しさん
2006/11/23(木) 01:27:310358デフォルトの名無しさん
2006/11/24(金) 08:52:34毎回リビルドするのは大変なので、どうにか解決する方法ってないでしょうか?
c:\boost\boost\regex\v4\perl_matcher_common.hpp(734) : fatal error C1001: 内部コンパイラ エラー
(コンパイラ ファイル 'msc1.cpp', 行番号 1794)
Visual C++ のサポート情報 コマンドを選択してください
ヘルプ メニュー、 またはサポート情報のヘルプ ファイルを参照してください
コマンド ラインの警告 D4028 : 簡易リビルド時のエラ-です、通常のビルドに戻します
環境:
VC++6.0 SP6
Boost 1.33.1
0359デフォルトの名無しさん
2006/11/24(金) 12:37:190360デフォルトの名無しさん
2006/11/24(金) 13:19:086.0じゃもう古過ぎてダメですか?
0361デフォルトの名無しさん
2006/11/24(金) 14:02:04VC8EE使った方がいいだろ
0362デフォルトの名無しさん
2006/11/25(土) 00:57:13コンパイル通らないコードはdllにして読むことにするとかできるのか?
0363デフォルトの名無しさん
2006/11/25(土) 01:32:12DLLなどの方法で分離することはもちろん可能。(MSVCRTの衝突に注意)
0364デフォルトの名無しさん
2006/11/26(日) 16:48:43うぶらす?マイクロブラス?
0365デフォルトの名無しさん
2006/11/26(日) 18:31:110366デフォルトの名無しさん
2006/11/26(日) 20:01:25俺は発音しなければならない状況に立たされたことがないので不明
0367デフォルトの名無しさん
2006/11/27(月) 09:38:250368デフォルトの名無しさん
2006/11/27(月) 10:00:39他人と口頭でSFINAEについて話したことがないのでどう言っていいかわからん
0369デフォルトの名無しさん
2006/11/27(月) 10:20:160370デフォルトの名無しさん
2006/11/27(月) 10:46:180371デフォルトの名無しさん
2006/11/27(月) 11:34:460372デフォルトの名無しさん
2006/11/27(月) 12:12:46http://uprecus.jp.land.to/wiki/
0373デフォルトの名無しさん
2006/11/27(月) 12:13:51, イ)ィ -─ ──- 、ミヽ
ノ /,.-‐'"´ `ヾj ii / Λ
,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
ノ/,/ミ三ニヲ´ ゙、ノi!
{V /ミ三二,イ , -─ Yソ
レ'/三二彡イ .:ィこラ ;:こラ j{
V;;;::. ;ヲヾ!V ー '′ i ー ' ソ
Vニミ( 入 、 r j ,′
ヾミ、`ゝ ` ー--‐'ゞニ<‐-イ
ヽ ヽ -''ニニ‐ /
| `、 ⌒ ,/
| > ---- r‐'´
ヽ_ |
ヽ _ _ 」
ウプレカス [ uBLAS ]
( 西暦一世紀前半 〜 没年不明 )
0374デフォルトの名無しさん
2006/11/28(火) 02:00:21ドキュメントからは見つけられませんでした。
0375デフォルトの名無しさん
2006/11/28(火) 02:16:43とあったので、Aは三角行列でなければならず、そのタイプを示すのがtagでしょうか?
もしそうなら結局LU分解しなきゃダメなのであまり使えないですねこれ・・・
0376デフォルトの名無しさん
2006/11/28(火) 02:34:33のように三角行列しかうけつけない関数がある
普通の行列の上半分つかってを三角行列にするときに使うのが
upper_tag
0377デフォルトの名無しさん
2006/11/28(火) 06:42:02ユーブラスじゃね?
0378デフォルトの名無しさん
2006/11/28(火) 12:51:52>>373
0379デフォルトの名無しさん
2006/11/29(水) 14:39:30http://boost-consulting.com/vault/index.php?PHPSESSID=kpg87708jjfg0ka24en0hgc2m4&direction=0&order=&directory=Math%20-%20Geometry
いったいどれを使ったらいいんだ
0380デフォルトの名無しさん
2006/11/29(水) 19:46:16bjam "-sTOOLS=vc8_0" install とすると
...skipped <@boost!include!boost-1_33_1!boost!wave!util>unput_queue_iterator.hpp
for lack of <directory-grist>C:\Boost\include\boost-1_33_1\boost\wave\util...
のようなメッセージが大量に出て最後に
...failed updating 2 targets...
...skipped 4805 targets...
と表示されて終了してしまいます
どうしてでしょうか?どなたか解決策を教えてくださいお願いします
0381デフォルトの名無しさん
2006/11/29(水) 23:29:29>bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install
エラーもエラーで長いから憂鬱だよな
0382デフォルトの名無しさん
2006/12/01(金) 22:51:51sdkへのパスとは
C:\Program Files\Microsoft Visual Studio 8\SDK
のことでしょうか?
パスを通すというのは、システム環境変数のpathに追加するということですよね?
色々追加してやってみましたが、結果は変わりませんでした
0383デフォルトの名無しさん
2006/12/01(金) 23:15:17vsvars32.batを編集する必要がある
0384デフォルトの名無しさん
2006/12/02(土) 00:48:42そのときのメモ見たら
set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include
してC:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat走らせて
bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install
したって書いてあった。
set LIB=C:\Program Files\Microsoft Platform SDK\Libはvcvarsallがやってくれたっぽいが
標準でやってるのか自分でbat編集したのかは覚えてない
まあ>>383の通りです
0385デフォルトの名無しさん
2006/12/03(日) 00:10:04set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include
set LIB=C:\Program Files\Microsoft Platform SDK\Lib
bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install
とやってみましたが、相変わらず大量のエラーメッセージが出てしまいます
383のリンクを見てみましたが、PlatformSDKが必要ということとvsvars32.batを編集しないといけないということは分かったのですが
英語が苦手なので具体的にどこをどう編集しないといけないのか分かりませんでした
本当にすみません
VCEEではなかなか出来ないのでBCB6.0でやってみようと思い、
>1にあるLet's Boostを参考にして↓のようにやりましたが、また同じようなエラーが出てしまいました
C:\lib\boost_1_33_1>set PATH="C:\Program Files\Borland\CBuilder6\Bin";%PATH%
C:\lib\boost_1_33_1>bjam -sTOOLS=borland --prefix="C:\Program Files\Borland\CBuilder6" install
何でやってもダメということは何か基本的な設定が出来てないのでしょうか?
0386デフォルトの名無しさん
2006/12/03(日) 01:50:50@set INCLUDE=
@set LIB=
の部分に;で区切って追加する
0387358
2006/12/03(日) 07:12:58MFCのランタイムも普及してて、Win98以降のOSなら何でも動くし。
でも、そろそろ新しいバージョンに移行した方がいいのかもね…
考えてみれば、8年前の開発環境なんだよね… >6.0
0388デフォルトの名無しさん
2006/12/03(日) 07:14:270389デフォルトの名無しさん
2006/12/03(日) 18:33:22lambda::bindならいけるのに・・・
0390デフォルトの名無しさん
2006/12/03(日) 22:17:45vcvarsall.batには@set INCLUDEと@set LIBがありませんでした
vsvars32.batにはあったのでそれを↓のように編集しました
@set INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;%C:\Program Files\Microsoft Platform SDK\Include;%INCLUDE
@set LIB=C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;C:\Program Files\Microsoft Platform SDK\Lib;%LIB%
それから↓のようにコマンドを打ち込んでみましたが、やはり>>380と同じようなエラーが出ました
C:\lib\boost_1_33_1>"C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"
Setting environment for using Microsoft Visual Studio 2005 x86 tools.
C:\lib\boost_1_33_1>bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install
VCEEだけでなくBCB6.0でもVC6.0でも失敗しました
どうやら私には無理なようです
regexだけ↓のコマンドでインストール出来たのでもうこれで一旦諦めます(これはVCEEでもBCB6.0でも出来ました)
C:\lib\boost_1_33_1\libs\regex\build>"C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"
Setting environment for using Microsoft Visual Studio 2005 x86 tools.
C:\lib\boost_1_33_1\libs\regex\build>nmake -fvc8
C:\lib\boost_1_33_1\libs\regex\build>nmake -fvc8 install
今度もう少しコマンドプロンプトやBoostの基本を勉強して再挑戦してみます
スレ汚ししてすみませんでした
それから答えてくれた皆さんありがとうございました
0391デフォルトの名無しさん
2006/12/03(日) 22:32:02必須なのかは忘れた
よくがんばった。もうこれでいいじゃない
http://www.boost-consulting.com/download.html
0392デフォルトの名無しさん
2006/12/04(月) 15:52:07void test() {}
boost::unit_test::test_suite* init_unit_test_suite(int, char*[])
{
boost::unit_test::test_suite* suite = BOOST_TEST_SUITE("Test suite");
suite->add(BOOST_TEST_CASE(&test));
return suite;
}
上記のコードをgcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)で
g++ a.cpp -lboost_unit_test_framework-gcc-d
によりコンパイルしたところ、
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:77: undefined reference to `main'
collect2: ld はステータス 1 で終了しました
とリンクエラーになってしまいます。
(MS VC++ 8とgcc 3.4.4(cygming special)では正常にコンパイル&リンク&実行出来ました。)
-lboost_unit_test_framework-gccにしても、また g++ と a.cpp の間にこれを書いても同様に
リンクエラーになってしまいます。
(g++ a.cpp libboost_unit_test_framework-gcc-d.a
とすると正常にリンク、実行出来ます)
これはgccもしくはboost側の問題でしょうか?
それともコンパイラオプションが何か足りないのでしょうか?
0393デフォルトの名無しさん
2006/12/06(水) 18:33:41これだけでは、boost.testの便利さが今ひとつ理解できない
0394デフォルトの名無しさん
2006/12/06(水) 19:31:200395デフォルトの名無しさん
2006/12/06(水) 21:51:02問題はbjamの使い方がよく分からないこと
0396デフォルトの名無しさん
2006/12/08(金) 15:24:390397デフォルトの名無しさん
2006/12/08(金) 15:47:25なんで?
0398デフォルトの名無しさん
2006/12/08(金) 16:40:540399デフォルトの名無しさん
2006/12/08(金) 16:49:42ランダムアクセスイテレータの用件満たしてるよ。
0400デフォルトの名無しさん
2006/12/08(金) 17:02:05ありがとう
0401デフォルトの名無しさん
2006/12/08(金) 17:32:49しかしGeometry関係の処理はしたい。
boost以外を探すべきか
0402デフォルトの名無しさん
2006/12/08(金) 20:01:44つmake_iterator_range
0403デフォルトの名無しさん
2006/12/10(日) 21:09:05MFCからSTLに関しては、いろんな所に書き散らかしてるけど
0404デフォルトの名無しさん
2006/12/10(日) 21:43:46なんの脈絡もなく突然どうした? スレを間違えたのか?
とりあえず、例の翻訳プロジェクトには参加してるみたいだけど。
http://sourceforge.jp/project/memberlist.php?group_id=428
0405デフォルトの名無しさん
2006/12/11(月) 07:05:53を見て、さらにスレ違いな質問を思いついた。
boost使いってPC系ではどんな雑誌読んでる?情報収集はネットのみ?
0406デフォルトの名無しさん
2006/12/11(月) 07:18:35俺は雑誌は一切読まない。
いや、別に「絶対読まねえぞ」みたいなこだわりがあるわけじゃないけど。
0407デフォルトの名無しさん
2006/12/11(月) 10:41:12boost devel や c++.moderated つまみ食いしてた方がよほど有益
0408デフォルトの名無しさん
2006/12/11(月) 10:49:260409デフォルトの名無しさん
2006/12/11(月) 19:31:43bitとか良い雑誌があった頃が懐かしい。
0410デフォルトの名無しさん
2006/12/11(月) 21:15:10boost.spritで遊ぼう!
みたいな特集を組むある意味アホな雑誌がでてたら買う
0411デフォルトの名無しさん
2006/12/11(月) 21:22:510412デフォルトの名無しさん
2006/12/11(月) 22:16:53http://www.ddj.com/dept/cpp/cuj.jhtml
0413デフォルトの名無しさん
2006/12/11(月) 22:56:300414デフォルトの名無しさん
2006/12/11(月) 22:58:44mpl::list
0415デフォルトの名無しさん
2006/12/11(月) 23:30:110416デフォルトの名無しさん
2006/12/12(火) 00:42:18#include で拡張子なし <boost/shared_ptr> って動きは無いのだろか?
0417デフォルトの名無しさん
2006/12/12(火) 01:17:54かつて、標準化委員会は理想に燃えていました。
拡張子などという原始的なもので、
ファイルの種類を表すべきではないという強い意志がありました。
はて、2006年になっても、その理想は実現されそうにないのですが。
0418デフォルトの名無しさん
2006/12/12(火) 01:31:130419デフォルトの名無しさん
2006/12/12(火) 02:27:45そのへんって確か、過ちを認めて今からでも元に戻そうって動きもなかった?
0420デフォルトの名無しさん
2006/12/12(火) 03:08:53今後出る標準ライブラリに拡張子をつけられたとしても。
いまある標準ライブラリはそのまま残すしかないでしょ。
たとえこんなものでもね
// これはC99のiositreamとの下位互換性のためにあるぜ。
//実体はiostream.hな。
#include <iostream.h>
0421デフォルトの名無しさん
2006/12/12(火) 03:10:50それは、たぶんこれだろう。ちょっと違う。
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#456
"We should accept the fact that we made a serious mistake and rectify it, however belatedly, ..."
0422デフォルトの名無しさん
2006/12/12(火) 03:11:310423デフォルトの名無しさん
2006/12/12(火) 07:58:42.Cと.hにしている。大文字小文字区別しないファイルシステムだと問題の種になることもあるが。
0424デフォルトの名無しさん
2006/12/12(火) 08:03:12なんで技術的デメリットを無視してまで理由のはっきりしない好みを優先させるの?
0425デフォルトの名無しさん
2006/12/12(火) 09:25:240426デフォルトの名無しさん
2006/12/12(火) 09:48:40(Cからでも使えるようなヘッダなら .h で問題ない)
.cpp / .hpp とか、 .cc / .hh とか、ちゃんと名前が揃っていればまあ良いんじゃないかと
0427デフォルトの名無しさん
2006/12/12(火) 09:50:51不揃いじゃね? と言われれば、うーん、確かにそうなんだが。
0428デフォルトの名無しさん
2006/12/12(火) 13:04:07俺もそれ。hppはなんか嫌い。
0429デフォルトの名無しさん
2006/12/12(火) 13:05:33せっかく標準がユーザー側のヘッダとぶつからない配慮してくれてんのに、
同じルールにしたら意味ないじゃん
0430デフォルトの名無しさん
2006/12/12(火) 17:13:15#includeで指定するヘッダ名は実際のファイル名である必要はない、少なくとも標準のものは。
たとえばBorland C++では適当な拡張子を付けたファイルをインクルードしている。
0431デフォルトの名無しさん
2006/12/12(火) 18:23:17理想と現実は違うよ。
0432デフォルトの名無しさん
2006/12/12(火) 18:39:420433デフォルトの名無しさん
2006/12/12(火) 20:12:440434デフォルトの名無しさん
2006/12/12(火) 21:18:390435デフォルトの名無しさん
2006/12/12(火) 23:34:220436デフォルトの名無しさん
2006/12/13(水) 18:06:28交差検定も自動でやってくれるようなプログラムがあったはずなのだけど
boostの中にはないの?
0437デフォルトの名無しさん
2006/12/15(金) 19:19:14いまさら亀レスで悪いんだが、
俺も同じエラーで失敗しとります。
コマンドラインのログ追っかけていたら、
MKDIRコマンドで失敗しとりました。
"MKDIR"が"MKDIR1"になってて、ディレクトリを作れないようです。
最初に
stageディレクトリを作れません。→死亡
lack of stage なのでlibs作れません →死亡
で以降すべてエラー。
俺はmsvc6.0なんで>>391も使えないし・・・
どこを直せばいいか分からぬ、、
誰か助けてorz
0438デフォルトの名無しさん
2006/12/15(金) 19:24:240439デフォルトの名無しさん
2006/12/15(金) 22:17:270440デフォルトの名無しさん
2006/12/15(金) 22:17:45でも最新のでやりたかったです。
誰かエロい人いたら
bjamの3.1.13-1
で出来るか試してみてくれませぬか、
3.1.11-1だと上手くいきました。
0441デフォルトの名無しさん
2006/12/15(金) 22:44:190442デフォルトの名無しさん
2006/12/15(金) 22:54:37つかコンパイラの話しじゃなくて、bjam3.1.13-1が動かなくない?
って話しで
0443デフォルトの名無しさん
2006/12/15(金) 23:16:560444デフォルトの名無しさん
2006/12/15(金) 23:44:450445デフォルトの名無しさん
2006/12/15(金) 23:53:02少なくとも業務で使ってるってのならその会社は潰れてしかるべき。
ぜひ潰れて欲しい。
0446デフォルトの名無しさん
2006/12/16(土) 01:39:050447デフォルトの名無しさん
2006/12/16(土) 01:49:43同感!
最近 STL 使おうって思ってやっと 2005 に切り替えました!
0448デフォルトの名無しさん
2006/12/16(土) 02:23:208だとテンプレートをネスト出来たりするかね?
ならば今すぐ買いに行くさ。
0449デフォルトの名無しさん
2006/12/16(土) 02:34:380450デフォルトの名無しさん
2006/12/16(土) 02:36:43template < typename T >
struct Foo
{
template < typename P >
static void Bar() ;
} ;
Foo<int>::Bar<int>() ;
あるいはこれか?
template < typename T,
template<typename, typename>
class Container >
class Foo
{
Container< T, std::allocator<T> > cont ;
} ;
Foo< int, std::vector > FooVec ;
どちらもできる……が、後者は、なぜかテンプレートテンプレートパラメータのデフォルト引数が使えない。
//エラー
template< template <typename, typename = std::allocator<int> > class Container >
class Foo
{ Container<int> cont ; } ;
0451デフォルトの名無しさん
2006/12/16(土) 02:39:46部分特殊化だけかと思ってた…
今すぐ買いに行くわ
確かファミマにあったはず。アカデミックだけど。
0452デフォルトの名無しさん
2006/12/16(土) 02:44:32デフォルト指定は無理なのかぁ…、
まぁいい機会だし買いに行きま。
0453デフォルトの名無しさん
2006/12/16(土) 02:44:41そんな言語機能があったなんて!
いったいなんのためにあるんだろう。
0454デフォルトの名無しさん
2006/12/16(土) 03:29:27という感じか?>テンプレートテンプレートパラメータ
0455デフォルトの名無しさん
2006/12/16(土) 03:47:12テンプレートテンプレートパラメタ「の」デフォルト引数ってなかなか出てこない発想じゃないだろうか。
ふつうの関数だと
void f(int (*g)(int = 7)){}
不正みたいだし。
0456デフォルトの名無しさん
2006/12/16(土) 03:50:58テンプレートクラスでデフォルト引数が使えるのは(allocatorなど)当たり前のことだし、
テンプレートの引数に、テンプレートクラス使えないのは不便で仕方がない。
0457デフォルトの名無しさん
2006/12/16(土) 06:04:310458デフォルトの名無しさん
2006/12/16(土) 06:06:57hoge<hage<int>>;
みたいのはできないの?
デフォルト引数を定義しなければ使えるってこと?
0459デフォルトの名無しさん
2006/12/16(土) 06:15:31シンタックスエラー!
0460デフォルトの名無しさん
2006/12/16(土) 06:40:060461デフォルトの名無しさん
2006/12/16(土) 06:46:08preprocessorで何ができると?
0462デフォルトの名無しさん
2006/12/16(土) 12:19:11typedef typename boost::mpl::if_<boost::is_const<T>, typename T::const_iterator, typename T::iterator>::type Hoge;
typedef typename boost::mpl::if_<boost::is_const<T>, typename T::const_pointer, typename T::pointer>::type Hage;
typedef typename boost::mpl::if_<boost::is_const<T>, typename T::const_reference, typename T::reference>::type Debu;
こういうことをやりたいんですが、もっとシンプルに記述できる方法はないでしょうか?
0463デフォルトの名無しさん
2006/12/17(日) 06:55:37そもそも何でそういうことがしたいのか分からない。
渡されたコンテナがconstでなければ、書き換える。
constであれば書き換えないという、奇妙な関数でも書きたいのだろうか。
0464デフォルトの名無しさん
2006/12/17(日) 17:28:40boost::range_result_iterator< std::vector< int > >::type // -> std::vector< int >::iterator
boost::range_result_iterator< const std::vector< int > >::type // -> std::vector< int >::const_iterator
あとは上のように獲得した iterator 型に boost::iterator_[reference|pointer] を適用
0465デフォルトの名無しさん
2006/12/17(日) 23:17:11うわぁ、Boost.Rangeチョー便利ナリ・・・
boost::sizeとかあるし。sizeof(a) / sizeof(a[0])とかしてたのが馬鹿みたいだ。
いいものを教えてもらった、ありがとう。
0466デフォルトの名無しさん
2006/12/18(月) 08:19:060467デフォルトの名無しさん
2006/12/18(月) 15:00:590468デフォルトの名無しさん
2006/12/18(月) 16:09:310469デフォルトの名無しさん
2006/12/18(月) 18:20:480470デフォルトの名無しさん
2006/12/18(月) 18:23:55直ってないような気がする・・・
0471デフォルトの名無しさん
2006/12/18(月) 18:28:280472デフォルトの名無しさん
2006/12/18(月) 18:40:360473デフォルトの名無しさん
2006/12/18(月) 18:46:010474デフォルトの名無しさん
2006/12/18(月) 21:57:24書いてるんだ?
俺、JavaもPerlもやる気しねーよ。もっとC++でWebアプリ書くフレーム
ワークとか環境とか色々あってもいいのになあとか思うんだが。
0475デフォルトの名無しさん
2006/12/18(月) 21:59:52書かないんじゃないかな
0476デフォルトの名無しさん
2006/12/18(月) 22:00:270477デフォルトの名無しさん
2006/12/18(月) 22:12:09http://ws.apache.org/axis/ja/cpp/lininstall-guide.html
http://www.cs.fsu.edu/~engelen/soap.html
http://www.xlsoft.com/jp/products/roguewave/sourcepro/index.html
0478デフォルトの名無しさん
2006/12/18(月) 22:18:510479デフォルトの名無しさん
2006/12/19(火) 00:42:34なんか「柴犬」とか言うtomcatもどきをC++で実装してテストしてるスレがあった希ガス
0480デフォルトの名無しさん
2006/12/19(火) 07:44:46正規表現で指定できる関数はあるのでしょうか?
0481450
2006/12/19(火) 08:04:300482デフォルトの名無しさん
2006/12/19(火) 14:13:59software関係conferenceの Invitation to submit a paper
(おそらくSPAMの一種だと思う)がくるようになった。
同種のメールは、自分の専門分野の関連領域でもくるのだが
( inviteされるような仕事してねえのに invite ってなんだよ)
software関連のは本当に怪しいのかを見分ける手段がない
なにか見分ける方法ないものか
0483デフォルトの名無しさん
2006/12/19(火) 19:52:06基本型あるいはユーザ定義型の配列の要素数を返す関数を作ろうとしてるんですが
arrayがユーザ定義型の配列であった場合でも
/* �@ */の処理がコンパイルされるためエラーになってしまいます
template <typename T> void count(T array[]){
if(boost::is_pod<T>::value){/* �@ */}
else{/* �A */}}
WEBで調べているとboost::enable_ifで解決できそうな予感がしたのですが
自分には次の例がよく理解できません(特に::type*=0の部分)
これはどういった理屈で動いているんでしょうか
template<typename T> void copy_n( const T* from, int n, T* to,
typename enable_if< is_pod<T> >::type* =0 ){/* 省略 */}
0484デフォルトの名無しさん
2006/12/19(火) 20:09:40enable_ifやdisable_ifは、関数のオーバーロード解決のルールをトリッキーに使っている。
やりたいことを実現する方法はいくつかある。
たとえばこんな方法。
//false以外、すなわちtrueの場合に呼ばれる
template < bool isPod >
struct Count_impl
{ static void do() {/* 1 */} } ;
//特殊化、falseの時に呼ばれる
template < >
struct Count_impl<false>
{ static void do() {/* 2 */} } ;
template < typename T >
void count(T array[])
{
Count_impl<boost::is_pod<T>::value>::do() ;
}
0485デフォルトの名無しさん
2006/12/19(火) 20:11:15enable_if<is_pod<T> >
には、TがPODならtypeメンバがあり、そうでなければtypeメンバがない。
したがって、TがPODでないとき、typename enable_if<is_pod<T> >::typeは
不正な型であり、SFINAE規則によってこの定義が多重定義の考慮から外される。
結果として、TがPODであるときのみ考慮される定義ができたわけだ。
typename enable_if<is_pod<T> >::typeは、このコンパイル時選択の機構のためだけに
使われているので、インタフェースに影響を与えないようにデフォルト値付きの引数になっている。
ポインタを取っているのは簡潔に0で初期化できるようにだろう。
0486483
2006/12/19(火) 21:31:23レス感謝です
おかげさまで理解できました
>>484
こういう風にすればenable_ifなしでいけるんですね
なんとかそのプログラム理解はできても
自分で書けるようになるまでが大変だ・・
とりあえずこれを参考に頑張ってみます
>>485
enable_if< is_pod<T> >::type* =0
ええと、この式の場合だと
組み込み型の場合はtypeメンバが存在するわけですよね
そして組み込み型でない場合はtypeがないから定義自体されない
それだと* =0はなくても大丈夫なんじゃ?と思ったけど
この引数はコンパイル時にifの役割を果たせばよいから省略可能にしたい
省略可能にするには=とデフォルト引数が必要で
typeをtype*にすればどんな場合でも0が代入できる
うーむ、よく考えられてますね
0487デフォルトの名無しさん
2006/12/19(火) 22:46:080488デフォルトの名無しさん
2006/12/20(水) 01:12:34自分で「おそらくSPAMの一種だと思う」なら、ちゃんと見分けられてるじゃないか。
0489デフォルトの名無しさん
2006/12/20(水) 03:58:16コンストラクタだとデフォルト引数として仕掛けるしかないけれどね
逆に引数の数が固定されていて余計なデフォルト引数が仕掛けられない
演算子関数定義だと戻り値型一択になるね
0490デフォルトの名無しさん
2006/12/20(水) 20:21:16基本型かユーザ定義型かで分けて一体何をするのか気になる。
配列の要素数と言えばそもそもboost::size()で済むような話ではないのか?
0491デフォルトの名無しさん
2006/12/20(水) 20:32:25番兵を思いついた。
podな型に対しては、ある値を決めておき、
俺様クラスについては、専用のフラグでも用意しているとか。
0492デフォルトの名無しさん
2006/12/21(木) 16:05:56プログラム(boostの既存libの部品の追加してるだけだけど)、
死蔵するのもったいないから
ときどき投稿してたんだけど、
最近、無視されてるっぽい。
0493デフォルトの名無しさん
2006/12/21(木) 17:41:270494デフォルトの名無しさん
2006/12/21(木) 17:56:400495デフォルトの名無しさん
2006/12/21(木) 21:36:36何か不満か? ML に晒したんなら勝手に使ってる奴もいるだろう。
使った人が必ずレスポンスを返すわけでもなし。
死蔵にはならずに済んだんだからいいだろ。
0496デフォルトの名無しさん
2006/12/21(木) 22:52:250497デフォルトの名無しさん
2006/12/21(木) 23:29:550498デフォルトの名無しさん
2006/12/22(金) 11:42:53backendってそういう意味なんだっけ?
0499デフォルトの名無しさん
2006/12/22(金) 12:01:230500デフォルトの名無しさん
2006/12/22(金) 15:15:00それは主体をどっちに置くかという話から帰着した結果だからあんまり関係ない気が。
0501デフォルトの名無しさん
2006/12/22(金) 23:08:58ublasから見ればたくさんあるbackendの一つってことでしょ。
0502デフォルトの名無しさん
2006/12/24(日) 12:39:36サーバーも落ちてるみたいだけど、誰もメンテナンスしてないの?
0503デフォルトの名無しさん
2006/12/24(日) 17:51:43VC++2005でboost1.33_1だとsparse_matrixとsparse_vectorは定義されていないと怒られてしまう。
matrix_sparse.hppとvector_sparse.hppはきちんとインクルードしているんだけど、なぜに?
0504デフォルトの名無しさん
2006/12/24(日) 18:41:520505デフォルトの名無しさん
2006/12/24(日) 18:49:160506デフォルトの名無しさん
2006/12/25(月) 13:27:53mat[i][j]の書き方はできなくなった
今は
mat(i,j)
0507デフォルトの名無しさん
2006/12/25(月) 13:47:21Cとして呼ぶよりも処理が遅くなったりするの?
0508デフォルトの名無しさん
2006/12/26(火) 16:16:15Debian Sarge(EUC-JP)上でBoostのsplitなどをを使いたいのですが、ソースコー
ドの文字列をEUC-JPにするとエラーになってしまいます。
#include <boost/algorithm/string.hpp> を含むソースで
g++-3.4 -finput-charset=EUC-JP -fexec-charset=EUC-JP test05.cpp -o test05
を実行すると、
/usr/include/boost/function/function_base.hpp:23:25: failure to convert EUC-JP to UTF-8
このようなエラーに。
なお、ソースではwchar_t, wstringを使っています。
ソースをUTF-8に、オプションを-finput-charset=UTF-8 にすると動くように
なりますが、やはりこれは不便です。
ソースをEUC-JPのままで使う方法はないでしょうか?
0509デフォルトの名無しさん
2006/12/26(火) 18:55:420510508
2006/12/26(火) 19:42:26コンパイル時のエラーは、こんな単純なソースでも起こってしまいます。
エラー再現には、ソースにワイド文字リテラルが含まれる必要はありません。
------------------
#include <boost/algorithm/string.hpp>
int main(void)
{
return 0;
}
------------------
g++-3.4 -finput-charset=EUC-JP -fexec-charset=EUC-JP test06.cpp -o test06
↓
/usr/include/boost/function/function_base.hpp:23:25: failure to convert EUC-JP \to UTF-8
EUC-JPではマルチバイト文字を使えということなのかもしれませんが、せっかく
対応しているのだからワイド文字を使いたいのです。
0511デフォルトの名無しさん
2006/12/26(火) 19:56:55boost/ref.hppがLatin-1で書かれているのが問題っぽいな。
ASCIIに直すようにお願いする位しか解決策が思いつかないが。
0512508
2006/12/26(火) 20:20:55ありがとうございます。
ref.hppの17行目でしょうか?そこを削除しても、やはり同じエラーが出ます。
他に気づいたことは、-finput-charset=utf8 などと書いても、「UTF-8に変換
できない」というエラーになることです。大文字ハイフン入りの「UTF-8」以外
受け付けません。
もしかしたらGCC自体が、テンプレートライブラリがUTF-8以外であることに対応
していないのでしょうか?
0513デフォルトの名無しさん
2006/12/26(火) 20:38:10この辺を参考に
http://search.gmane.org/?query=windows+unicode+gcc&group=gmane.comp.gcc.devel
http://permalink.gmane.org/gmane.comp.gcc.devel/78542
>>512
インクルードファイルの中に他にも含まれていないか
チェック。utility/enable_if.hpp とか
$ iconv -l
で使用できる文字コードは分かる
0514508
2006/12/26(火) 21:08:11ありがとうございます。よく読んでいませんが、結局コードの変換ルールが問
題ということでしょうか。
grep -r Jaakko /usr/include/boost/
これで検索したところ66件ありました。他にもlatin-1の名前はあるかもしれ
ません。さすがに直す気が失せました。
とりあえず、コンパイル前にiconvをかけることにします。いずれはUTF-8環境
に移行した方が良さそうです。
0515508
2006/12/27(水) 00:25:09を読んで思ったのですが、どうやらUTF-8にすれば完全解決というわけではな
いようですね。
g++ -finput-charset=EUC-JP
こう書くと、GCCはソースファイルを、includeされるヘッダライブラリまです
べてEUC-JPだとみなします。そしてそれを libiconv で UTF-8 に変換しよう
とします。このとき(ヘッダファイルに)EUC-JPに含まれない文字コード
(Latin-1など)があったらエラーになってしまいます。
g++ -finput-charset=UTF-8 (または-finput_charsetの指定なし)
こう書くと、GCCはソースファイルを、includeされるヘッダライブラリまです
べてUTF-8だとみなします。しかし今度は変換の必要がないので、libiconv は
呼ばれません。ヘッダライブラリも変換されません。
これで通常は問題はなくなるわけです。しかし、
・ヘッダライブラリのエンコーディングがUTF-8でない。
・ヘッダライブラリに wcha_tのリテラルがある。
(あまりないでしょうが、)この2つが同時に起こると、ライブラリは正しく
動作しません。
結局、すべてのヘッダファイルがUTF-8で統一されるか、Pythonのように各ソー
スファイルにエンコーディングの宣言ができるようにしないと、完全解決とは
言えないようです。いずれも一ユーザにはどうしようもない話ですが。
Boostとあんまり関係なくてすみません。
0516デフォルトの名無しさん
2006/12/27(水) 13:04:16>>391でインストールするとき、最初に
default variantsを選んでください
って言われて、
Multithred Debug, DLL
Multithred, DLL
Multithred
Multithred, static runtime
Multithred, Debug, static runtime
Single thred, static runtime
Single thred, Debug, static runtime
の中から選択させられるんですが、ノーパソ用ペンティアム3(1.13GHz)とノースウッドコアペンティアム4(3.2Ghz)
の場合、どれを選べばいいんでしょうか。
マルチスレッデッィングとシングルスレッディング用CPUの違いくらいしか分からないので・・・
0517デフォルトの名無しさん
2006/12/27(水) 14:35:530518デフォルトの名無しさん
2006/12/27(水) 14:36:53DLLにするかどうかだけど、初心者ならスタティックでいいと思う。
あとはスレッドを利用するならマルチスレッド、しないならシングルスレッド。
シングルスレッドで速度を追求するならシングルスレッドだけど
通常はマルチスレッドでいいと思う。
0519デフォルトの名無しさん
2006/12/27(水) 14:37:160520518
2006/12/27(水) 14:37:42×特に ○別に
0521516
2006/12/27(水) 14:45:12ではとりあえず
Multithred, static runtime
でインストールして使ってみます。
なお、参考までにお聞きしたいのですが、DLLにするとどういった使い方が可能になるのですか?
0522デフォルトの名無しさん
2006/12/27(水) 14:49:200523デフォルトの名無しさん
2006/12/27(水) 15:11:02DLLの特長はここに書いてある。
http://e-words.jp/w/DLL.html
必要ならDLLを選ぶといいと思う。
0524デフォルトの名無しさん
2006/12/27(水) 16:19:19std;;wstring s = L"漢字";
// std::wcout << s << std::endl; //←ここをコメントアウトすると何もでなくなる
std::wcout.imbue(std::locale("japanese")
std::wcout << s << std::endl; //←出る
std::locale::global(std::locale("C"));
std::wcout << s << std::endl; //←出る
よくわかんないけどMSの開発担当者はもっとまともなロケール実装者が来るまで正座な。
0525デフォルトの名無しさん
2006/12/27(水) 16:22:230526デフォルトの名無しさん
2006/12/27(水) 20:10:24とりあえずSTLport使っとくとlocale::globalの後に
それぞれimbueすればちゃんと動くらしいよ。
付属のだとそれすら効かない。
std::locale loc("japanese");
std::locale::global(loc);
std::wcout.imbue(loc);
std::wcout << L"ぶーすと" << std::endl;
0527デフォルトの名無しさん
2006/12/27(水) 23:15:10rank求めるのにlu分解は精度の問題で、一般には使われてないとか書いてるけど、
どの程度精度に問題でてくるんだろうね。
0528デフォルトの名無しさん
2006/12/28(木) 12:41:32ublasで逆行列を求めようとしているのですが、lu_factorizeの呼び出しでコンパイルエラーになります。
エラーメッセージが大量なので、ソースと一緒にアップローダに上げておきます。
ttp://zetubou.mine.nu/itoshiki/nozomu/zetubou3677.zip
0529デフォルトの名無しさん
2006/12/28(木) 13:06:13VC8SP1 + Boostは11月の頭にCVSから
F:\>cl -nologo -EHsc -ID:\Boost inv.cpp
inv.cpp
F:\>inv.exe
Check failed in file D:\Boost\boost/numeric/ublas/triangular.hpp at line 2435:
e1 () (n, n) != value_type ()
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
F:\>
0530デフォルトの名無しさん
2006/12/28(木) 15:50:100531デフォルトの名無しさん
2006/12/29(金) 19:50:03なんか必要?
0532528
2006/12/29(金) 20:29:50実行時エラーは、おそらく係数行列を適当に設定したため発生したのだと思います。
係数行列を参考サイトと同じ行列にしたところ、同様の結果が得られました。
ublas使う時だけ1.32.0で行くことにします。ありがとうございました。
0533デフォルトの名無しさん
2007/01/03(水) 10:46:57今日落として試してみたんだけど、SampleについてるEchoServerの挙動が
微妙におかしくて……
原因は一応分かったのだが、英語力が無いからまっとうなバグレポ
送れにゃいよ。
0534デフォルトの名無しさん
2007/01/03(水) 14:13:46英語力ないからって言ってると永遠に身につかないよ。
バグレポなら状況を箇条書きにして送るだけでも大丈夫、ただし返信が来たらしらない(w
0535デフォルトの名無しさん
2007/01/03(水) 14:59:14そうだよなあ。
とりあえず、がんがって次のようなバグレポを書き込んだ。
意味が通るかどうかは全く自信が無いw
Hello.
I'm a Japanse, so please forgive my poor English.
When I tested "EchoServer" sample, I found that it doesn't send back FIN to the client when the client sends FIN to the "EchoServer", by calling shutdown().
This is because "EchoServer" doesn't call close() function for this socket.
Why is that?
Poco::Net::StreamSocketImpl is refcounted, and close() is called when it is really destructed.
I found that Poco::Net::SocketReactor's member, _pReadableNotification, _pWritableNotification, etc. holds Poco::Net::Socket instance, until next socket event arises.
So, until then, refcount remains 1, and close() is never called.
In Poco::Net::SocketReactor::run(),
member function dispatch() is called for each socket.
I think, after that, the socket which is held by _pReadableNotification, etc. must be immediately cleared, so Poco::Net::StreamSocketImpl's refcount will be 0, and close() will be called.
0536デフォルトの名無しさん
2007/01/04(木) 13:26:47に関する機能って、以前は configuration file って呼ばれていた
ものですか?単に呼び方が変わっただけですか?
http://www.boost.org/doc/html/program_options/howto.html#id2715898
0537536
2007/01/04(木) 13:32:57// Additional command line parser which interprets '@something' as a
// option "config-file" with the value "something"
なんて書いてあるなぁ、前からあった機能なのか。
なんか俺が勘違いしていたみたいです。
0538536
2007/01/04(木) 13:42:23multiple source の機能と、コマンドラインそのものを
ファイルの形で与える response file の機能を
混同していたようです。
0539デフォルトの名無しさん
2007/01/04(木) 14:35:43research programerていうのはboostの開発してるような人達なのかな
0540536
2007/01/04(木) 14:42:44頼まれてシミュレータなどのコードを書く人のことじゃないかなぁ。
0541デフォルトの名無しさん
2007/01/04(木) 16:05:49programmer
0542デフォルトの名無しさん
2007/01/04(木) 17:55:53programer
0543デフォルトの名無しさん
2007/01/04(木) 19:01:270544535
2007/01/05(金) 04:25:51はえー。
拙い英文でもバグレポ書いた甲斐があったわ。
勇気付けてくれた >>534 あんがと。
0545デフォルトの名無しさん
2007/01/05(金) 11:12:28#今年は真面目に(系統立てて)勉強するかな……
0546535
2007/01/05(金) 12:11:30俺のアホな英文が分からないのは、多分君のせいじゃない。
相手はプログラムを良く理解してるから、クラスやメソッド名などのキーワードを
見て、問題を理解してくれたんだと思う。
今日も POCO を眺めてみたが、std::string ベースなので Path クラスが
日本語名を上手く扱えないという実にありがちな問題が……。
一見すると POCO_WIN32_UTF8 を定義して utf-8 ベースでやってれば
上手く機能しそうにも見えたが、たまにそのまんま std::fstream とかに
渡してるから、やっぱダメだな。
つうかいつになったらWindowsはja_JP.UTF8風なコードページをサポートして
くれるんだ。OS内部だけUTF-16化されてたってしょうがないだろうに。
0547デフォルトの名無しさん
2007/01/05(金) 12:41:48無理
ttp://blogs.msdn.com/michkap/archive/2007/01/03/1392379.aspx
まあ、ここでも言われているけど、
98がラッパでUnicodeをサポートできるように、
UTF-8のラッパをかぶせられないこともない。
どれほどの需要があるのか分からないけど。
0548デフォルトの名無しさん
2007/01/06(土) 09:17:55shared_ptrは内部でweak_ptrを使ってるようだけど、これは何のため
なんだろうか。weak_ptrはshared_ptrの循環参照の欠点を克服できる
という話を聞いてるんだけど、shared_ptrのなかにすでにweak_ptrが使われてる
ということは、もうshared_ptrは循環参照を克服したってことでいいんですか?
違うとしたら、weak_ptrをどう使ってshared_ptrの循環参照を克服できるのか
教えてください。weak_ptrのソースみてみると、なんだかweak_countという
別のカウンタを使っているだけで中身はほとんどshared_ptrと同じように参照カウンタ方式
にみえるんだけど、これで本当に循環参照、解決するんだろうか…?
0549デフォルトの名無しさん
2007/01/06(土) 10:05:47ここのスマートポインタってところ読んでから来いや。
0550デフォルトの名無しさん
2007/01/06(土) 10:12:40よくない。
weak_countは参照カウンタの参照カウンタとでも言えばいいんだろうか。
struct A { shared_ptr<A> a; }
shared_ptr<A> hoge(new A);
hoge.a = hoge;
struct A { weak_ptr<A> a; }
shared_ptr<A> hoge(new A);
hoge.a = hoge;
この二つでどのように参照カウンタが変化するのか、調べてみるといいよ。
0551デフォルトの名無しさん
2007/01/06(土) 11:16:45shared_ptrはカウンタ増えるけど、
weak_ptrはカウンタ増えないね。weak_ptrのカウンタはなぜ増えない??
代入で増えるように定義されてるように見えたんだけど
>549
いちおう読みました
0552デフォルトの名無しさん
2007/01/06(土) 13:50:29相互参照の片方をweak_ptrに置き換えて循環参照が解決できる、
という理解でよろしいんでしょうか、ご教授ください
0553デフォルトの名無しさん
2007/01/06(土) 13:51:530554デフォルトの名無しさん
2007/01/06(土) 14:34:16これって実は誰でも知ってること??
0555デフォルトの名無しさん
2007/01/06(土) 14:36:23この説明だと片方を単にポインタに置き換えるだけで良いじゃないか,という反論が
想定され, weak_ptr の本質的な利点と特徴を説明できていないような?
0556デフォルトの名無しさん
2007/01/06(土) 15:22:57皆知ってるかは知らんが、自分で結論出せないのなら
完全に理解できてないってことだ。
0557デフォルトの名無しさん
2007/01/06(土) 15:45:060558デフォルトの名無しさん
2007/01/06(土) 15:48:06単にポインタに置き換えるだけだと、自動で消えないからマズいんですよね??
weak_ptrなら、相互参照の片方が消えたら自分も消えるんでウマいこと
いくってことでOK?
>556
結論を出してみたけど間違ってたまま覚えてたらまずいんで
合ってるのかどうかだけでも教えてください
0559デフォルトの名無しさん
2007/01/07(日) 03:14:240560デフォルトの名無しさん
2007/01/07(日) 03:26:170561デフォルトの名無しさん
2007/01/07(日) 03:32:220562デフォルトの名無しさん
2007/01/07(日) 05:51:310563デフォルトの名無しさん
2007/01/07(日) 13:58:09同じカウントになるような気がする。
つまりshared_ptrが消えるときにweak_ptrのカウントもゼロになって
同時に消える仕掛けになってると考えていいんでしょうか先生?
0564デフォルトの名無しさん
2007/01/07(日) 15:19:12それまではカウント同じなのになぜ??
0565デフォルトの名無しさん
2007/01/07(日) 20:29:47>単にポインタに置き換えるだけだと、自動で消えないからマズいんですよね??
いや, weak_ptr の機能は参照先のオブジェクトの生存管理と直接は無関係です.
普通のポインタで参照していようが, weak_ptr で参照していようが,
shared_ptr による参照カウントが0になればそのオブジェクトは消えます.
単なるポインタと比較した場合の weak_ptr の利点は,
-参照先のオブジェクトが生存しているかどうかを調べることができて,かつ
-shared_ptr に格上げできる
ことです.
いずれにせよ, shared_ptr による循環参照の問題の解決するにあたって,
必ず weak_ptr の機能が必要になるわけではないです.
単に weak_ptr の機能を理解しようとするだけなら,
循環参照の問題はとりあえず脇に置いておいた方が良いような気がします.
0566デフォルトの名無しさん
2007/01/07(日) 20:46:53shared_ptr の実装は,参照カウントによって管理されるオブジェクト
(A とします) と独立して,新たにフリーストア (ヒープ) 上に
参照カウント用のオブジェクト (X とします) を生成します.
X は, A の参照カウントと独立して自分自身の参照カウントも持っていて,
独立した2つの参照カウントを持っているイメージになります.
shared_ptr が1つ作られるごとに A の参照カウントと X の参照カウント両方が
1つ増やされ, shared_ptr が1つ破壊されるごとに
A の参照カウントと X の参照カウント両方が1つ減らされます.
weak_ptr が1つ作られるごとに X の参照カウントのみが増やされ,
weak_ptr が1つ破壊されるごとに X の参照カウントのみが減らされます.
A の参照カウントが0になれば A を delete します.
しかし, X の参照カウントが0になっていなければ X は破壊されません.
最終的に全ての shared_ptr と weak_ptr が存在しなくなった時点で,
X の参照カウントは0になります.この時点で X は delete されます (自殺します).
以上が, shared_ptr と weak_ptr の実装面での動作です.
0567デフォルトの名無しさん
2007/01/08(月) 03:42:00うそ〜ん??shared_ptrはカウントを二種類持ってるってこと?
あ、sp_countと内部のweak_ptrの二種類のことを言ってる??
0568デフォルトの名無しさん
2007/01/08(月) 04:04:00>weak_ptr が1つ破壊されるごとに X の参照カウントのみが減らされます.
shared_ptr<A> hoge(new A);
cout << hoge.use_count() << endl;
weak_ptr<A> hogehoge(hoge);
cout << hoge.use_count() << endl;
cout << hogehoge.use_count() << endl;
試してみたらどっちも増えなかったよ
0569デフォルトの名無しさん
2007/01/08(月) 10:57:47weak_ptrのuse_countはweak_countを返すわけじゃないよ。
ドキュメント読め。
0570デフォルトの名無しさん
2007/01/08(月) 18:09:37Boost.Accumrator
は結局アクセプトされたの?
0571デフォルトの名無しさん
2007/01/09(火) 13:46:37オブジェクトを参照している最後の shared_ptr が破棄されるとき、
weak_ptr の有無にかかわらず、そのオブジェクトは削除される。
ただし、オブジェクトを参照する weak_ptr が存在していた場合、
参照カウントを保持する sp_counted_impl_pd は削除されない。
(weak_ptr と shared_ptr すべてが破棄されないと削除されない為)
weak_ptr からポインタ参照を行いたい場合、
必ずロックして shared_ptr を取得するような設計になってるけど、
上記仕組みのおかげで、たとえ shared_ptr が存在しない状態でも
オブジェクトが破棄されていることが分かり、エラーを返すことが出来る。
0572デフォルトの名無しさん
2007/01/09(火) 16:13:31のレビューコメントが厳しいのばっかりなのはなんで?
最初 Boost.Mathとか名前ついてたときは、
ちょっと広すぎな名前だとは思ったけど
0573デフォルトの名無しさん
2007/01/09(火) 16:49:03>Statistical Distributions and Mathematical Special Functions
興味あるんだけどどのへん見ればいいの?
ポインティングよろしく
0574デフォルトの名無しさん
2007/01/09(火) 17:14:44の
math-toolkit-code.tar.bz2
0575デフォルトの名無しさん
2007/01/09(火) 17:25:00Thanks!
0576デフォルトの名無しさん
2007/01/09(火) 18:12:22通りすがりだけど、このやり取りで、weak_ptrがすっごくよく分かった!
日本語でこれだけちゃんとした説明はどこにもないと思う。ありがとう!
0577デフォルトの名無しさん
2007/01/10(水) 21:17:34カウントが減りますよね。
でも、中のオブジェクトが消えたということを、shared_ptrはどうやって知るんですか?
代入演算子で上書きされたときについては、代入演算子の多重定義で
上書きされたほうをデクリメントしてるのは分かるんだけど、
スコープを抜けたときとかはshared_ptrには分からんのでは?
リアルタイムにオブジェクトが生きてるかどうかを監視してるわけでもないのに、
スコープ抜けてオブジェクトが自然消滅したときにもちゃんとカウントが
減ってるのって不思議すぎる。これ分かる人いる?
0578デフォルトの名無しさん
2007/01/10(水) 21:25:23>代入演算子で上書きされたとき
>オブジェクトが生きてるかどうか
この辺が果てしなく意味不明。
>>577はshared_ptrを全く理解していないようだ。
0579デフォルトの名無しさん
2007/01/10(水) 21:55:070580デフォルトの名無しさん
2007/01/10(水) 21:57:28デストラクタ
0581デフォルトの名無しさん
2007/01/11(木) 07:38:26int i = 1;
while(i--){
shared_ptr<A> hogehoge(new A);
hoge = hogehoge;
cout << hoge.use_count() << endl;
}
cout << hoge.use_count() << endl;
こういう状態のとき、二番目のhoge.use_count()のときにはカウントが
一番目より一つ減るでしょ。それをhogeのカウンタはどうやって把握したの?
ってことを聞きたかったんです。
カウンタのデクリメントについては、ソースを読めば代入演算子の
部分で、代入元をインクリメントして代入先をデクリメントするってことが
書いてあるけど、代入したオブジェクトそのものが上のコードみたいに
スコープはずれて消えたときにデクリメントする処理なんて書いてないな、
と思ったんです。
>>580
代入元のデストラクタですか?
どうやって代入元のデストラクタで、shared_ptrのカウントを下げてるか分かりますか??
0582デフォルトの名無しさん
2007/01/11(木) 08:09:28カウンタもshared_ptrが保持するポインタと同じく共有されるよ。
shared_ptr<A> hogehoge(new A); //カウント1
hoge = hogehoge; //カウント2
} //hogehogeの破棄によってカウント1
その後hogeの破棄時にカウントが0になるのでdeleteが呼ばれる。
0583デフォルトの名無しさん
2007/01/11(木) 09:19:43shared_ptrはコンストラクタではいろんなオブジェクトを受け付けるけど
代入はスマートポインタしか受け付けないってのは正しい?
いちど初期化してしまうと、
あとから別のオブジェクトを入れるには他のshared_ptrにいれてから
本当に入れたいshared_ptrにそのshared_ptrを代入するしかありませんか?
0584デフォルトの名無しさん
2007/01/11(木) 09:41:04もうね、
> int i = 1
> while(i--){
の時点でC++理解してなさすぎ。
{
shared_ptr<A> hogehoge(new A);
hoge = hogehoge;
cout << hoge.use_count() << endl;
}
これだけでスコープ限定できるの。
boostを理解しようなんて百年早い。
基礎からやり直しな。
0585デフォルトの名無しさん
2007/01/11(木) 09:55:440586デフォルトの名無しさん
2007/01/11(木) 10:01:40んなどうでもいいことよりも少しは本質的な話をしたらどう
0587デフォルトの名無しさん
2007/01/11(木) 10:03:37hogehoge();
}while(0);
hogehoge()は実行されますか?
0588デフォルトの名無しさん
2007/01/11(木) 10:28:53それは別のスレで質問したらいいと思う
0589デフォルトの名無しさん
2007/01/11(木) 10:45:07reset すれば?
0590デフォルトの名無しさん
2007/01/11(木) 10:47:47深めようと思ったが、頭が悪すぎて理解できなかった。
なんかやばそうだから循環参照が起きないように気をつけよう、
その程度の理解な俺が作っているプログラムを使わされている
やつカワイソス。
0591デフォルトの名無しさん
2007/01/11(木) 10:49:54たとえ weak_ptr で参照されていたとしても実体が delete されて
いるかもしれん。だから weak_ptr の参照先が生きてるかどうか
ちゃんとチェックしてから使おうね、ってことなんだが。
0592デフォルトの名無しさん
2007/01/11(木) 10:51:18参照先のオブジェクトの生死を追跡することが出来るから。
えっと、ほかにうれしさある?
0593デフォルトの名無しさん
2007/01/11(木) 11:09:46おれもよく分からんのだけど、読んだりしらべたりした感じだと
循環参照でカウントが不当に上がってしまわないように
shared_ptrの相互参照は片方をweak_ptrにしないと駄目ってことも
あるんじゃないだろうか。違ってたらまた指摘よろ
0594デフォルトの名無しさん
2007/01/11(木) 11:11:17reset()か。ちょっと試してみる
0595デフォルトの名無しさん
2007/01/11(木) 11:24:52reset()した後に、そのshared_ptrをどうやって再利用したらいいんだろう。
0596デフォルトの名無しさん
2007/01/11(木) 11:57:10boostを使おうなんて100年早い
0597デフォルトの名無しさん
2007/01/11(木) 12:08:07それでも BGL は便利にがんがんつかわせてもらってます ><
0598デフォルトの名無しさん
2007/01/11(木) 16:02:41shared_ptr p1( object1 );
p1.reset( object2 );
shared_ptr のインターフェイス定義くらい読んでおけよ。
0599デフォルトの名無しさん
2007/01/11(木) 16:28:02他に,対象のオブジェクトを参照している最中に
(そのオブジェクトを指している shared_ptr が全て消えることで)
突然そのオブジェクトが死んでしまうような事態を回避することができます.
(この問題はマルチスレッドプログラムで特に顕著だと思いますけれど,
シングルスレッドプログラムでも論理的にはありえるケースです)
void process( weak_ptr< Obj > wp )
{
if( shared_ptr< Obj > p = wp.lock() ){
// このスコープ内では, (たとえば他の実行スレッドの動作によって)
// p の指しているオブジェクトが削除されるようなことはない
}
else{
// wp が指しているオブジェクトが死んでいる場合.
// ここでどうするかは何を実装するかによります.
// wp の参照先が常に生存していることが不変条件ならば,
// 571さんの書いているように論理エラーを通知する (例外を送出する) ことに
// なるでしょうし,参照先のオブジェクトが死んでいることを検出して
// 他のアクションを取るようなことも,場合によっては想定されます.
}
}
0600デフォルトの名無しさん
2007/01/11(木) 16:30:05shared_ptr を渡すような要求がある場合に weak_ptr が必要になります.
// 自身は B のオブジェクトへの (弱い) 参照を持っているだけで良いが,
// B のオブジェクトへの shared_ptr を返すインタフェイスが必要なクラス
class A{
public:
shared_ptr< B > getB() const{ return boost::shared_ptr< B >( p_ ); }
private:
weak_ptr< B > p_;
};
あと weak_ptr の使い方として典型的なのが,参照先のオブジェクトが
死んでいてもかまわないような場合です. proxy (特にキャッシュの実装) や
observer などの実装で有用な使い方があるかと思います.
0601デフォルトの名無しさん
2007/01/11(木) 17:17:34enable_shared_from_this や、weak_ptr、shared_ptr<void>、カスタム削除子 への対応など
細かいところでさまざまな工夫が施されているから、一度ソースに目を通しておくと勉強になる。
0602デフォルトの名無しさん
2007/01/11(木) 19:49:500603デフォルトの名無しさん
2007/01/11(木) 20:18:15適当な本読んだほうがよくねえか?
いやおまいらが親切なのはよくわかったけどさ
0604デフォルトの名無しさん
2007/01/11(木) 20:31:230605デフォルトの名無しさん
2007/01/11(木) 20:56:40>適当な本読んだほうがよくねえか?
そういう本ある?自分は見たことないんだけれど
0606デフォルトの名無しさん
2007/01/11(木) 21:08:050607デフォルトの名無しさん
2007/01/11(木) 22:49:52じゃなくて
int ndim=3;
multi_array<double> a(ndim)
みたいな多次元配列の宣言の仕方できないのでしょうか?
ndimをプログラム中で変えたいのです
0608デフォルトの名無しさん
2007/01/12(金) 09:59:32std::map< std::vector<double>, double> m
で代用しました。速度で問題でそうな雰囲気もするけど、しかたないかな・・・
0609デフォルトの名無しさん
2007/01/12(金) 11:07:32ふつうstd::vector<<std::vector<double> >じゃない?
0610デフォルトの名無しさん
2007/01/12(金) 11:09:46スレ違いになるが、一次元配列を(動的に)確保して、擬似多次元アクセス関数を作った方が善くないか?
0611デフォルトの名無しさん
2007/01/12(金) 11:32:19boost::shared_ptr を理解する上で Modern C++ Design はどうなんですかね?
あれはスマートポインタについては,削除子による不完全型への対応とか
クロス DLL 問題などの突っ込んだ議論は載っていなかったように思いますし,
それに boost::shared_ptr の設計思想は, MC++D の一つの柱である
「ポリシーに基づく設計」のそれとは,アンチテーゼの関係にすらあるように思いますし.
0612デフォルトの名無しさん
2007/01/12(金) 15:50:59…代用できるの?
0613デフォルトの名無しさん
2007/01/12(金) 21:54:170614デフォルトの名無しさん
2007/01/12(金) 23:21:36標準C++ライブラリ(背表紙赤い奴)には auto_ptr の詳しい説明と
簡単なカウント式スマポの実装例があったような
あとは More Effective C++ とか?
0615デフォルトの名無しさん
2007/01/15(月) 10:15:050616デフォルトの名無しさん
2007/01/15(月) 17:01:38いじってるんだけど、数値計算メインの人が
MPL勉強するのはちょっとしんどいんじゃないかと思うんだ
0617デフォルトの名無しさん
2007/01/16(火) 00:27:28バカみたいにコンパイル時間がかかるのですが、
メモリー増設すれば少しは早くなるのでしょうか?
Pentium M 17Ghz
Mem 500M
VS2005
OS:XP
です
コンパイルオプションをいじれば少しは早くなるのでしょうか?
0618デフォルトの名無しさん
2007/01/16(火) 00:30:170619デフォルトの名無しさん
2007/01/16(火) 00:40:2417GHzもあるとどうかわからんけどw
0620デフォルトの名無しさん
2007/01/16(火) 00:46:42コンパイル中に、やたらとディスクアクセスする音が聞こえるので
ひょっとして500Mで足らないのかと思ったのですが、
そうでもないのですか?
0621デフォルトの名無しさん
2007/01/16(火) 01:12:450622デフォルトの名無しさん
2007/01/16(火) 01:13:40まあ500MBなんて半端なメモリ容量のPCは相当特殊だろうから俺の意見は参考にならんだろう。
512MBからビデオメモリ用に12MB引っ張ってくようなキモイ統合チップセットは聞いたことないし。
0623デフォルトの名無しさん
2007/01/16(火) 10:43:290624デフォルトの名無しさん
2007/01/16(火) 10:51:49プリコンパイルの効果あるの?
それとも全部のパターン分インスタンシエイトしちゃうとか?
0625デフォルトの名無しさん
2007/01/16(火) 13:01:412回目以降のコンパイル時には効果絶大だろ。
PCH が無いと、一度インスタンス化した型でもソースファイルが違うと
もう一度コンパイルしなきゃいけないし。
0626デフォルトの名無しさん
2007/01/16(火) 13:33:11プリコンパイルっても別にオブジェクトコード吐くわけじゃなくて、
プリプロセッサ通して構文解析かけて、コンパイラの内部形式に変換しとく程度でも充分効果あるだろ。
0627デフォルトの名無しさん
2007/01/16(火) 14:06:43いけないのがめんどうだよな。hdrstop とかも指定せずに、
臨機応変にやってくれればいいのに。
って無茶か。
0628デフォルトの名無しさん
2007/01/16(火) 14:23:58テキスト/バイナリ/XML なんだけど、
吐き出したデータを他の言語処理系から
読みたいときには XML しかないかな?
大量のデータを他の処理系とやりとりするときって、
やっぱり今まで通り独自形式で吐くしかないのかなぁ。
いっそのこと RDBMS のテーブルに吐き出してくれたらいいのに。
って、やっぱ自分で書き出すしかないか。
0629デフォルトの名無しさん
2007/01/16(火) 14:26:16普通にcc foo.hするだけだろ。
0630デフォルトの名無しさん
2007/01/16(火) 21:42:08そのうえ更新頻度が高いとシステムダウンする勢いでCPU負荷を上げ、
リソースを占有してしまう。
0631デフォルトの名無しさん
2007/01/16(火) 22:02:00ところで、当たり前かも知れないけど
serialization って deserialization の方がコスト高いよね。
パースにかかるコストが高いんだろうけど。
0632デフォルトの名無しさん
2007/01/16(火) 22:40:36普通の言語と違って構文がスゲー単純だから。
字句はDFAを使うとかすればいいかもしれない。
0633デフォルトの名無しさん
2007/01/16(火) 22:41:53オーバーヘッドに比べれば屁の河童。
0634デフォルトの名無しさん
2007/01/17(水) 12:25:46特に XML にシリアライズする場合には浮動小数点数の
NaN が正しく扱われないんだな。
ちょっとカナシス。
0635デフォルトの名無しさん
2007/01/18(木) 02:26:240636デフォルトの名無しさん
2007/01/18(木) 11:32:560637デフォルトの名無しさん
2007/01/18(木) 11:43:43複素数やリストもそうだけど、定数やリテラルとして使えるかどうかって
結局使い勝手に格段の差が出来ちまうな。
0638デフォルトの名無しさん
2007/01/18(木) 14:32:51kwsk
0639デフォルトの名無しさん
2007/01/18(木) 15:25:16ttp://ja.wikipedia.org/wiki/IEEE_754r
0640デフォルトの名無しさん
2007/01/18(木) 15:33:30thx
0641デフォルトの名無しさん
2007/01/19(金) 00:56:43bind(&get<0>, _1);
って式が通らないんだが……。
返り型の指定してもダメだし、ドキュメントいくら読んでもさっぱりわからない。
誰か教えてくれないだろうか……(´・ω・`)
0642デフォルトの名無しさん
2007/01/19(金) 01:00:06クラスAとクラスBがあるとしてshared_ptrで相互参照するのはNGというのを最近知りました。
すると、相互参照したい場合は
class A{
weak_ptr<B> b;
}
class B{
shared_ptr<A> a;
}
とすれば良いのでしょうか。ちなみにAは一つしか存在しないBの管理クラスで、Bは複数存在する管理されるクラスなのですが、
その場合はこのように管理される側が管理する側をshared_ptrで参照して、管理する側が管理される側をweak_ptrで保持するのが良いのでしょうか。
あとscoped_ptrというのもあるようで、それぞれどういう時に利用すれば良いのかまだいまいち掴めません。
0643デフォルトの名無しさん
2007/01/19(金) 06:57:25getは設計が古くなっている。
戻り値指定なしでもできるが長くなるのでこんな感じで
template<typename Result, int i>
struct get
{
/**/ typedef Result result_type;
/**/ template<typename Tuple>
/**/ Result operator()(Tuple& t) const
/**/ { return boost::get<i>(t); }
};
bind(get<double, 0>(), _1);
0644デフォルトの名無しさん
2007/01/19(金) 07:27:37各オブジェクトの寿命を考えてみたらいいと思うよ。
あと、weak_ptrはオブジェクトを参照するときに
一時的なshared_ptrを作成するのでコストがかかるね。
scoped_ptr, scoped_arrayは、受け取ったポインタを
自分の寿命が切れるときにdeleteするだけのポインタクラス。
C++の仕様がわかっていれば使い道はいろいろ。
0645デフォルトの名無しさん
2007/01/19(金) 14:15:520646デフォルトの名無しさん
2007/01/20(土) 00:52:42おお、ありがとう。
やっぱり戻り値の型が判別できないのが問題なのかな?
色々いじりつつ、もう一度 lambda の sig を読んでみたら、今度はちょっと分かった気が。
template <int i>
struct get {
/**/ template <class Tuple>
/**/ typename boost::tuples::element<i, Tuple>::type operator()(Tuple& t) const {
/******/ return boost::get<i>(t);
/**/ }
/**/ template <class Args>
/**/ class sig {
/******/ typedef typename boost::tuples::element<1, Args>::type Tuple;
/******/ typedef typename boost::tuples::element<i, Tuple>::type Result;
/**/ public:
/******/ typedef typename boost::remove_cv<Result>::type type;
/**/ };
};
bind(get<0>(), _1);
ってことで、こう書いたらとりあえず行けたんだが、こんな感じでいいのかな?
もっといいやり方があったりするんだろうか。
しかし、関数オブジェクトならこれでいい(?)けど、テンプレート関数には sig は使えないよね。
ということは、関数の場合はテンプレート引数を全部指定しないとダメってことかな。
いや、でも、boost::get<> のテンプレート引数全部指定してもダメだったし、キャストしてもムリだったような。
なんかまたよくわからなくなってきた…(´・ω・`)
0647デフォルトの名無しさん
2007/01/20(土) 11:19:05そもそもgetのシグニチャーは公開されてないと思われるので書いてはいけない。
要は君の::getが主役で、boost::getはシンタックスシュガーだ
関数オブジェクトがつねに偉いのだ
0648デフォルトの名無しさん
2007/01/21(日) 20:32:31for_eachの結果を何に代入すればいいのでしょうか?
struct fn1
{
double sum;
void operator()(double &t )
{sum += t;}
}
fn1.sum=0;
何に代入したらオブジェクトfn1を取り出せる?
=for_each(ar.begin(),ar.end(),
boost::bind( fn1,
boost::bind(fn2,_1 ))
);
代入しないと
fn1.sum==0
となる
0649デフォルトの名無しさん
2007/01/21(日) 20:41:39bind() された関数オブジェクトの型は決められていないから、無理。
かわりに、結果の書き込み先を参照で持たせるのがいいんじゃない?
総和なら std::accumulate() 使えばいいんだけどね。
ソース貼るならコンパイルできるかどうか見直せよ。
0650デフォルトの名無しさん
2007/01/21(日) 20:48:450651デフォルトの名無しさん
2007/01/21(日) 20:52:54できました
感謝
0652デフォルトの名無しさん
2007/01/22(月) 01:40:45のtestコード
algorithm_test.cpp
がMSVC8でコンパイル通らない
0653デフォルトの名無しさん
2007/01/22(月) 03:06:390654デフォルトの名無しさん
2007/01/22(月) 06:14:330655649
2007/01/22(月) 07:01:480656デフォルトの名無しさん
2007/01/22(月) 16:11:33日本語対応してないとかmingwで一部テストがエラーとか、ちょっと使うのに二の足踏んでます。
でも移植性のある他の代替選択肢もなさそうだしなぁ・・・。
0657デフォルトの名無しさん
2007/01/22(月) 16:39:05boost以外のポータブルなライブラリを使えばよいのでは。
ファイルシステム関連でMBCS/WCSに対応してないって、実用上論外だと思うが。
Shift_JIS環境では使い物にならないし、Win32のFindFirstFileA()って
パス長に思いっきり制限あるし。
0658デフォルトの名無しさん
2007/01/22(月) 17:16:190659デフォルトの名無しさん
2007/01/22(月) 17:47:54念願の basic_path 化とか他盛りだくさん
http://boost.cvs.sourceforge.net/*checkout*/boost/boost/libs/filesystem/doc/index.htm?pathrev=RC_1_34_0
0660デフォルトの名無しさん
2007/01/22(月) 19:35:350661デフォルトの名無しさん
2007/01/22(月) 21:28:32Fusion, MPI, Asio, Interprocessなどなど
ライブラリに関しては、標準が何かするべきではないと思う
標準は、発表の場を提供することに予算を使うべきだ。
そして、その場所を標準として定義すべきだ(とか言ってしまおう)
実際stlportが泥を被っているわけだしな
BoostがなければC++は死んでたよ
0662デフォルトの名無しさん
2007/01/22(月) 22:11:32すまんが言いたいことがよくわからん。
もうちょっと具体的 and/or 他人に理解できるようにお願い。
0663デフォルトの名無しさん
2007/01/22(月) 22:40:02struct obj1
{
void operator()(double &t) const
{std::cout << "obj1:" << t << " " ;}
};
struct obj2
{
void operator()(double &t) const
{std::cout << "obj2:" << t << " " ;}
};
boost::signal1< void ,double> sig;
sig.connect(obj1());
sig.connect(obj2());
std::vector<double > ar;
std::for_each(ar.begin(),ar.end(),sig)
err sigのプライベートメンバーにアクセスできません
となってfor_eachに渡せません
単にobj1,2を両方使いたいだけなんだけど
0664663
2007/01/22(月) 22:56:26std::for_each(ar.begin(),ar.end(),boost::bind<void>(boost::ref(sig), _1));
でできました
0665デフォルトの名無しさん
2007/01/24(水) 09:21:05がコンパイルエラーになるのですが、
何か見落としているのでしょうか?
0666665
2007/01/24(水) 09:51:28gil::transform_channels(pixel1, pixel2, pixel3
を使ってるはずが lambdaを使ったとたん
gil::transform_channels(const pixel1,const pixel2, pixel3
に入れ替わってしまうことが原因のようです
0667665
2007/01/24(水) 09:52:00とするとコンパイルは通ります
0668デフォルトの名無しさん
2007/01/24(水) 10:50:48http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3506.txt
のコードを実行すると、自分の環境では
boost::regex_search()で例外が発生してしまいます。
("Memory exhausted").
これはboost:regexのバグでしょうか。対処方法はありますか。
別にやっていること自体は大したことでは無いはずです。
(このパターンはこの入力に対してはマッチしません)。
C#, Java, JScript, ICU, 鬼車, 等々で、全く同じ正規表現と入力を用いて
同等のパターンマッチを試みても、何の問題も発生しないことは確認済みです。
0669デフォルトの名無しさん
2007/01/24(水) 12:43:190670デフォルトの名無しさん
2007/01/24(水) 13:00:180671デフォルトの名無しさん
2007/01/24(水) 22:55:120672デフォルトの名無しさん
2007/01/24(水) 23:14:270673デフォルトの名無しさん
2007/01/24(水) 23:20:45なんで? <...> は標準ヘッダでしょ?
boost は標準じゃないから "..." だと思うよ。
0674デフォルトの名無しさん
2007/01/25(木) 00:02:55くだすれC言語(初心者用)
http://pc10.2ch.net/test/read.cgi/tech/1153542424/
0675デフォルトの名無しさん
2007/01/25(木) 00:03:34<>と""の違いは、ファイル探索順の違いしかないと思ったが。
0676668
2007/01/25(木) 00:05:11知るかヴォケ、悔しかったらboost::regexなんぞに頼らず
テメェがDFAとかNFAとか書きやがれ。
ということでよろしいでしょうか。
このタイプの正規表現で、入力量の大きい時にコケる、という印象なのですが。
0677デフォルトの名無しさん
2007/01/25(木) 00:06:17つまり <boost/....hpp> 派だな。
0678デフォルトの名無しさん
2007/01/25(木) 00:08:08君のプログラムを試したわけはないが VC7 ってとこにちょっと引っ掛かる。
可能であれば VC8 とか cygwin/mingw とかで試してみなはれ。
0679668
2007/01/25(木) 00:13:15VC8は持ってないんすよ。
localeまわりでstd::wcoutが腐るとかfstream::open()が上手くいかねーとか
腐った風評しか聞きませんので、移行するとしても二の足を踏んでしまいますが。
VC7.1をboostはサポートしていないのですか?
0680デフォルトの名無しさん
2007/01/25(木) 00:16:420681デフォルトの名無しさん
2007/01/25(木) 02:33:59sig templateで代用することはできないのでしょうか?
0682デフォルトの名無しさん
2007/01/26(金) 06:33:13いざ自分の問題で使おうと思っても、使いどころが微妙
いり込んだ type の木構造でも使わない限り
enable_ifの延長としてしか使えない
0683デフォルトの名無しさん
2007/01/26(金) 20:40:23boost::lambda::bind
に変えたら挙動が違う
protectで囲ってあるところを呼んだり呼ばないで落ちたり
どっちのbinsを使うのが推奨なの?
0684デフォルトの名無しさん
2007/01/27(土) 00:47:54の問題に関して:
http://capslockabcjp.kitunebi.com/faq.html
boostのバグ?
スレでの指摘により、boostの動作が怪しいという指摘がありました。
boost1.33および1.33.1で/\1/を使用した場合に落ちることを確認しました。
0685デフォルトの名無しさん
2007/01/27(土) 19:43:570686デフォルトの名無しさん
2007/01/27(土) 20:43:410687デフォルトの名無しさん
2007/01/28(日) 03:04:59こんなやつをdoxgenみたいに自動生成するツールってないのかな
http://boost-sandbox.sourceforge.net/libs/time_series/doc/html/index.html
0688デフォルトの名無しさん
2007/01/28(日) 16:49:09既存のboostの拡張として
boost/X/Y/z.hpp
に、おきたくなるようなヘッダーがあります。
しかしboost MLに投稿してもrejectされる可能性を考えて
my_lib_name/X/Y/z.hpp
においておくべきか,どうかで迷ってます
ヘッダーの場所を
#define my_lib_name/X/Y/z.hpp INC_XYZ
として後で変更できるようにしておくのが無難なのでしょうか?
namespaceも
boost::X::Y::z
などとせず
#define my_lib_name::X::Y::z NAME_XYZ
としておくのが無難なのでしょうか?
0689デフォルトの名無しさん
2007/01/28(日) 17:22:21boost 気にすんな。紛らわしい。
どうせ accept されないし。
書き換えるにしてもたいした手間じゃない。
0690デフォルトの名無しさん
2007/01/29(月) 16:44:56確か、mingwで使おうと思ったときに""だとどうしてもエラーになった気がする。
それ以後ずっと<>にしてる。
""で行けている人居る?
0691デフォルトの名無しさん
2007/01/29(月) 17:58:52#define BOOST_BIND_INC BOOST_DIR##bind.hpp
うまくいかない
#include "BOOST_BIND_INC "
うまくいくのかな?
#include <BOOST_BIND_INC >
0692デフォルトの名無しさん
2007/01/29(月) 18:04:41INCLUDE=C:/boost
LIB=C:/boost/mingw
こんなんでいけたはず。
というかUNIXルーツのソフトのお約束で常識だったはず。
x.ccをコンパイルする時はこうだった思う。
A>echo "INCLUDE=C:/boost">Makefile
A>echo "LIB=C:/boost/mingw">>Makefile
A>gmake x
0693デフォルトの名無しさん
2007/01/29(月) 18:25:49それをやるならこんな感じ。
# define BOOST_DIR c:/lib/boost_ver_xxx/
# define PP_IDENTITY(x) x
# define PP_STRINGIZE(x) PP_STRINGIZE_I(x)
# define PP_STRINGIZE_I(x) #x
# define BOOST_INC(name) PP_STRINGIZE(PP_IDENTITY(BOOST_DIR)name)
# include BOOST_INC(bind.hpp)
0694デフォルトの名無しさん
2007/01/29(月) 23:43:27ちょw
0695デフォルトの名無しさん
2007/01/30(火) 19:16:12ライセンスの関係?単なる好み?
0696デフォルトの名無しさん
2007/01/30(火) 21:58:140697デフォルトの名無しさん
2007/01/31(水) 05:06:160698デフォルトの名無しさん
2007/01/31(水) 11:15:53Unicodeのtextファイル相手にfile_iterator使ってる場合はBOMに注意。
0699デフォルトの名無しさん
2007/01/31(水) 11:51:170700デフォルトの名無しさん
2007/02/02(金) 23:37:31なぜかうまくいきません。
struct tmp_bi_op_t
{
double sum;
double operator()(double a ,double b)
{
sum +=a+b;
std::cout << "(" <<a << " " <<b << " " << sum << ")";
return a+b;
}
};
tmp_bi_op_t tmp_bi_op;
tmp_bi_op.sum=0;
std::vector<double > vec,vec2(2);
vec.push_back(2);
vec.push_back(1);
std::for_each(
boost::make_zip_iterator(
boost::make_tuple(vec.begin(), vec.begin())
),
boost::make_zip_iterator(
boost::make_tuple(vec.end(), vec.end())
),
boost::bind<void>( boost::ref( tmp_bi_op),
boost::bind(boost::tuples::get<0>,_1),
boost::bind(boost::tuples::get<1>,_1)));
std::cout << tmp_bi_op.sum;
0701デフォルトの名無しさん
2007/02/08(木) 22:12:27vista+vc2005環境にboostを組み込みたいんですけどうまく行きません
何が原因なんでしょうか・・以下の手順で駄目でした
まずboost1_33_1とjamを落とし展開、jamをboostフォルダに移動し、
コマンドプロンプトで以下を実行
(boostのフォルダ以下略)>"C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"
bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install
すると一見快調にビルドしてるようでしたが>>380氏と同様のエラーが頻発していて、
かつ「Unicodeで保存してください」ワーニングも量産されてました
6.0では組み込みが成功していたんですが、そのときコンパイラに組み込んでいた
(VCのフォルダ)\INCLUDE\boost-1_33_1みたいなフォルダは生成されてませんでした
次に>>391のサイトにあるインストーラを試してみましたがこれも例のフォルダは見当たらず・・
ひょっとしてvc2005ではboostの組み込み方が違っていて
私は壮大な勘違いをしてるんでしょうか?
今日一日かけて調べてみましたが全然分かりません
どうかよろしくお願いしますm(_ _;;)m
0702デフォルトの名無しさん
2007/02/08(木) 23:22:12391さんのお任せのやつなら、
VC8.0用を指定して展開位置を指定するとそこににboost-1-33-1のディレクトリが出来ているので、
その中にboostがあるから、自分のプロジェクトのインクルードディレクトリに追加指定すれば
よいかと思いますけど。リンク対象のライブラリ本体はlibの中にバイナリが入ってます。
VCのINCLUDEに入れたければ、boostフォルダごとコピーすれば使えるのはないですか?
VCのLIBにもlibの中身をコピーして。
見当違いでしたら、すみません。
0703デフォルトの名無しさん
2007/02/09(金) 19:15:31レスありがとうございます。
それでいいんですね、VC6.0でいけてたときは自動でVC以下にフォルダが
できてたような気がしたので、てっきり失敗してるのかと思ってました。
で、プロジェクトにインクルードとライブラリのフォルダを追加したのですが・・・
どうやらboostを認識してるようですがまたもや意味不明のエラーが多量にorz
SP1適用もなんかうまくいってないようなのでもう一度よく調べて出直してきます
0704デフォルトの名無しさん
2007/02/09(金) 19:41:07規制中なので携帯からリンク貼れね
0705デフォルトの名無しさん
2007/02/09(金) 19:55:20コピーしなくてもいいだろ。
0706デフォルトの名無しさん
2007/02/09(金) 20:02:160707デフォルトの名無しさん
2007/02/10(土) 21:11:130708デフォルトの名無しさん
2007/02/10(土) 22:22:590709デフォルトの名無しさん
2007/02/10(土) 22:45:210710デフォルトの名無しさん
2007/02/10(土) 23:58:59俺は、C直下にboost_1_33_1のフォルダ入れて
VS2005std使ってて
VC++のインクルードディレクトリにC\boost_1_33_1
ライブラリファイルフォルダにC\boost_1_33_1\lib
って設定したら、問題なく使えてる。
0711デフォルトの名無しさん
2007/02/11(日) 20:27:530712デフォルトの名無しさん
2007/02/13(火) 13:33:23何かスゲーな。
0713デフォルトの名無しさん
2007/02/18(日) 00:37:48とりあえずただの参照でテストしてみたら
unregistered_classが発生したので調べたとおりに
BOOST_CLASS_EXPORT(Derived);
を入れたら今度はunregistered_castが発生したのでいろいろ調べて
boost::serialization::void_cast_register<Derived, Base>(0, 0);
を入れたらただの参照ならシリアライズできるようになりました。
これを今度はshared_ptrに入れてみようかと思ったら
またもやunregistered_classが発生しました。
どうやらsp_counted_base_implとかいうのが絡んでるようで
いろいろ試してみたのですがなかなかうまくいきません。
boost_132::shared_ptrとかいう中途半端なものもあるみたいですけど
これはもしかしたら仕様策定中ですか?
0714713
2007/02/19(月) 18:24:41派生クラスをベースクラスのポインタでシリアライズしたいのです。
バージョンは1.33.1です。
0715デフォルトの名無しさん
2007/02/21(水) 18:45:54もう自分のプログラムにいれちゃったよ
0716デフォルトの名無しさん
2007/02/22(木) 10:40:57実際C++0xが2010年位にできたとして、実際主なコンパイラがサポートしだすのは
いつになるんだろう。
GCCは期待できるとして、次期Visual C++で何も動きがないとすると、
結局今後5年くらいはshared_ptrつかうにもboostのお世話になったりして。
1_34いつになるのかなぁ・・・。
0717デフォルトの名無しさん
2007/02/22(木) 10:57:48MSのサポートがなけりゃいい
0718デフォルトの名無しさん
2007/02/22(木) 11:05:360719デフォルトの名無しさん
2007/02/22(木) 12:26:40C++0x 後にゃ、今度はその新機能を使いまくりのライブラリが作られるだろうし。
0720デフォルトの名無しさん
2007/02/22(木) 14:13:29ドライバとか、どうしてもC/C++が必要な領域もあるだろうから、
当分はVisualC++無くならないと思う。たぶん。
0721デフォルトの名無しさん
2007/02/22(木) 14:17:110722713
2007/02/23(金) 19:57:51デバッグのためのコードが邪魔してたみたいです。
スレ汚しすいませんでした。
0723デフォルトの名無しさん
2007/02/25(日) 01:32:35boost\regex\v4\regex_raw_buffer.hpp(177) : error C2661: 'operator new' : 3 個の引数を伴うオーバーロードされた関数はありません。
boost\regex\v4\perl_matcher_non_recursive.hpp(99) : error C2059: 構文エラー : '*'
というエラーが出たんですが、どうすれば直るんでしょうか?
コンパイラはVC++2005Expressです。
0724723
2007/02/26(月) 23:31:23stdafx.hで
#include <boost/regex.hpp>
すればOKだった。
0725デフォルトの名無しさん
2007/02/26(月) 23:58:530726デフォルトの名無しさん
2007/02/27(火) 00:06:080727デフォルトの名無しさん
2007/02/27(火) 08:26:44必死の念仏でしょう。
0728デフォルトの名無しさん
2007/02/27(火) 14:38:27CVS から定期的に取って来て自動的にビルド、
エラー無ければ直前のバージョンと入れ替え、
というようなシステムを自前で用意しないとダメ?
PHP の PEAR のようにリポジトリから
最新バージョンを持ってきてくれると便利なんだが。
って、スクリプト言語の手軽さと比較するほうが間違いか。
0729デフォルトの名無しさん
2007/02/27(火) 21:30:350730デフォルトの名無しさん
2007/02/27(火) 21:58:05流行っていないといえば流行っていない
結構微妙な位置づけな気がする
巨大な非標準ライブラリってだけで、使いにくい局面は多いよな
0731デフォルトの名無しさん
2007/02/27(火) 22:03:29bjamの宣伝をしたいからじゃね?
0732デフォルトの名無しさん
2007/02/27(火) 22:05:000733デフォルトの名無しさん
2007/02/27(火) 22:11:59全ての組み合わせのLIB/DLLを合計すると軽く1GiB超えていた覚えがある。
でも今確かめてみたらDLLとそのインポートライブラリに限れば、
10MiB以下に収まっている(1.33.1のVC++ 7.1でのビルド)。
俺は動的リンク版が無いもの以外静的ライブラリを削除しているのだが、
残った静的ライブラリの合計は、およそ221MiB。
(ただしNTFSの圧縮でディスク上は68.5MiBとなっている)
0734デフォルトの名無しさん
2007/02/28(水) 00:19:33ユーザが多い順にバイナリくらい提供した方がいいだろ。
0735デフォルトの名無しさん
2007/02/28(水) 00:26:460736デフォルトの名無しさん
2007/02/28(水) 01:08:04馬鹿除けになるからバイナリは無い方がいい。bjamぐらい使え。
そもそもバイナリ必要なのは一部だけだし。
0737デフォルトの名無しさん
2007/02/28(水) 01:09:49つうか技術寄りな人が勝手に調べて喜んで使ってる感じ
0738デフォルトの名無しさん
2007/02/28(水) 10:24:58http://www.boost-consulting.com/download.html
0739デフォルトの名無しさん
2007/03/03(土) 02:39:07template<typename T>
class Hoge { ... };
というHogeテンプレートクラスについて、コンパイル通らなかったけど
template<typename T>
typedef Hoge<T> Hage;
こんなことをやりたい(Hogeのエイリアスなテンプレート型を作りたい)のですが、
boostに同等機能を実装するためのライブラリがありますか?
それとも頼らずともアッサリできたりするんですかね?
0740デフォルトの名無しさん
2007/03/03(土) 02:52:570741デフォルトの名無しさん
2007/03/03(土) 03:11:08typedef template ってやつだな。その機能は標準に採用されていない。
クラステンプレート内の typedef を使えば同等のことが出来る。
template<typename T> class HageOf { typedef Hoge<T> type; };
として使うときは HageOf<T>::type とする。
こういうのを型を受け取って型を返す関数と見てテンプレートメタ関数って言う。
テンプレートメタ関数を駆使してプログラムするためのライブラリが boost::mpl 。
0742デフォルトの名無しさん
2007/03/03(土) 03:26:580743デフォルトの名無しさん
2007/03/03(土) 03:34:08その間、コンパイラによって仕様への準拠度はまちまちになるから、
移植性の高いコードを記述することが著しく困難になる
0744デフォルトの名無しさん
2007/03/03(土) 04:41:04確かに資料を日本語でしか読めない人にとってはそういうことにしたいかも知れんね。
0745デフォルトの名無しさん
2007/03/03(土) 09:19:120746デフォルトの名無しさん
2007/03/03(土) 09:33:21やはりそうするしかないですか…
元々、偉く長いクラス名を短くしたかったので探していたので。
boost::mplは使ったこと無いのでこれ機会にちょっと見てみます。
ありがとうございました。
0747デフォルトの名無しさん
2007/03/03(土) 11:13:36boostは流行っていない。
0748デフォルトの名無しさん
2007/03/03(土) 11:34:37OpenGLオワタ\(^o^)/
と大して変わらんレスだな。
0749デフォルトの名無しさん
2007/03/03(土) 11:38:370750デフォルトの名無しさん
2007/03/03(土) 11:56:34ほとんど同じなのに2本立てにする意味が分からん。
0751デフォルトの名無しさん
2007/03/03(土) 12:43:440752デフォルトの名無しさん
2007/03/03(土) 13:23:32それとも、boostでSTLを置き替え可能なものでしょうか?
例えば、今からtemplateの学習をするとして、最初から
boostから始めてもいいものでしょうか?
それとも、STLをまずやっておくべきでしょうか?
0753デフォルトの名無しさん
2007/03/03(土) 13:24:470754デフォルトの名無しさん
2007/03/03(土) 13:28:46>STLとboostは互いに補完にしあう、併用するものでしょうか?
基本的に yes
>それとも、boostでSTLを置き替え可能なものでしょうか?
一部分については yes
0755デフォルトの名無しさん
2007/03/03(土) 13:30:120756デフォルトの名無しさん
2007/03/03(土) 13:48:35javaとかだと機能的に代替可能で、方法が異なるライブラリが多くあるので、
STLとboostの関係についても知りたく質問させていただきました。
0757デフォルトの名無しさん
2007/03/03(土) 14:27:190758デフォルトの名無しさん
2007/03/03(土) 15:45:45lexical_castとか単独で使えるものだってあるさ
0759デフォルトの名無しさん
2007/03/03(土) 15:59:030760デフォルトの名無しさん
2007/03/03(土) 16:00:39今のboostは巨大になりすぎたような気がする。
0761デフォルトの名無しさん
2007/03/03(土) 16:10:140762デフォルトの名無しさん
2007/03/03(土) 16:42:22他で簡単に代替が効かんからなぁ。
0763デフォルトの名無しさん
2007/03/03(土) 16:47:42bcp 使え。
って、 shared_ptr のためだけでも結構な量がついてくるな。
0764デフォルトの名無しさん
2007/03/03(土) 16:51:210765デフォルトの名無しさん
2007/03/03(土) 17:07:080766デフォルトの名無しさん
2007/03/03(土) 17:57:27以外はヘッダだけで使えなかったっけ
0767デフォルトの名無しさん
2007/03/03(土) 18:20:36date_time
filesystem
iostreams
prg_exec_monitor
program_options
regex
(w)serialization
signals
thread
unit_test_framework
wave
0768デフォルトの名無しさん
2007/03/03(土) 18:38:35シャレにならん
0769デフォルトの名無しさん
2007/03/03(土) 18:47:34マンドクセー
つかいちいちこんなに取り込んでりゃそりゃコンパイル遅くなるわ
$ cat t.cpp
#include <boost/shared_ptr.hpp>
$ cc -E t.cpp |grep ^# | grep hpp | awk '{print $3}' | sort -u
"/usr/include/boost/assert.hpp"
"/usr/include/boost/checked_delete.hpp"
"/usr/include/boost/config.hpp"
"/usr/include/boost/config/compiler/gcc.hpp"
"/usr/include/boost/config/platform/cygwin.hpp"
"/usr/include/boost/config/posix_features.hpp"
"/usr/include/boost/config/select_compiler_config.hpp"
"/usr/include/boost/config/select_platform_config.hpp"
"/usr/include/boost/config/select_stdlib_config.hpp"
"/usr/include/boost/config/stdlib/libstdcpp3.hpp"
"/usr/include/boost/config/suffix.hpp"
"/usr/include/boost/config/user.hpp"
"/usr/include/boost/detail/bad_weak_ptr.hpp"
"/usr/include/boost/detail/shared_count.hpp"
"/usr/include/boost/detail/sp_counted_base.hpp"
"/usr/include/boost/detail/sp_counted_base_gcc_x86.hpp"
"/usr/include/boost/detail/sp_counted_impl.hpp"
"/usr/include/boost/detail/workaround.hpp"
"/usr/include/boost/shared_ptr.hpp"
"/usr/include/boost/throw_exception.hpp"
0770デフォルトの名無しさん
2007/03/04(日) 10:39:410771デフォルトの名無しさん
2007/03/04(日) 11:26:52こんなの流行らないし、標準化なんてされるわけないわな。
もっときっちり考えて作れよ。
0772デフォルトの名無しさん
2007/03/04(日) 11:35:320773デフォルトの名無しさん
2007/03/04(日) 11:35:38>boostって単なるライブラリの寄せ集めで、統一性や一貫性がないよね。
kwsk
0774デフォルトの名無しさん
2007/03/04(日) 12:07:58ContainerではなくRangeを受け取るようにしろよとは思う。
0775デフォルトの名無しさん
2007/03/04(日) 12:12:20行き当たりばったり。統一性や一貫性がないとはこういうことだ。
0776デフォルトの名無しさん
2007/03/04(日) 12:23:260777デフォルトの名無しさん
2007/03/04(日) 12:28:240778デフォルトの名無しさん
2007/03/04(日) 12:32:48何故か突然Pythonに対応して、かつPythonにしか対応していないところに
統一性や一貫性がないと言っている。
0779デフォルトの名無しさん
2007/03/04(日) 12:38:00そういう目的なら、もっとふさわしいものがあると思うけど。
取捨選択して使えばいいじゃない。
0780デフォルトの名無しさん
2007/03/04(日) 12:46:10コアな機能とその他の雑多な機能を明確にわかりやすく分類してほしいものだね。
いまのBoostは統一感のないごった煮だ。
0781デフォルトの名無しさん
2007/03/04(日) 12:50:240782デフォルトの名無しさん
2007/03/04(日) 12:53:22貴方の言葉を借りれば、「単なるライブラリの寄せ集め」ですし。
0783デフォルトの名無しさん
2007/03/04(日) 12:54:52>Boost.PythonのゴールはBoost.LangBindingだよ。
それは後付けな印象が強いんですがどうなんですかね?
Boost.LangBinding の prototype 的な役割を
Boost.Python が担っている,というほうが適切な気が
0784デフォルトの名無しさん
2007/03/04(日) 13:12:180785デフォルトの名無しさん
2007/03/04(日) 19:05:560786デフォルトの名無しさん
2007/03/04(日) 19:16:35ネットワークも暗号化も数値計算もDBアクセスもXML/HTML等のパーシングも
扱っていない(今後グラフィックスやネットワーク機能は追加されるようだが)
現実の応用において欲しくなるような機能が恐ろしく乏しいというのに、
既にヘッダの数が1000のオーダーというのはいっそ笑えるな
0787デフォルトの名無しさん
2007/03/04(日) 19:19:420788デフォルトの名無しさん
2007/03/04(日) 19:26:13ライセンスを煩く考えずに済む点が良いと思うけどなぁ。
0789デフォルトの名無しさん
2007/03/04(日) 19:27:30boost::regexのバグは直ったのかな?
0790デフォルトの名無しさん
2007/03/04(日) 19:37:25的外れなツッコミ乙
0791デフォルトの名無しさん
2007/03/04(日) 21:04:200792デフォルトの名無しさん
2007/03/04(日) 21:12:540793デフォルトの名無しさん
2007/03/04(日) 22:47:39WindowsならATLを使い、UNIXならgtkを使うという使い分けができるわけで、
依存関係とかcygwinによるエミュレーションとかの厄介事を避けることができるわけ。
0794デフォルトの名無しさん
2007/03/04(日) 22:59:15その理屈は意味不明だな。
別にBoostはお仕着せフレームワークじゃないんだから、
GUIの機能を持ってても、欲しくないのなら使わなければいいだけだろ。
現状でもBoost::threadやBoost::filesystemなんて、あんたが言うような
そのものズバリのエミュレーション層だし
Boost::pythonなんて意味不明だし
0795デフォルトの名無しさん
2007/03/04(日) 23:16:59なんでケチつけてるのか意味が分からない。
0796デフォルトの名無しさん
2007/03/05(月) 00:19:37C++の標準になるのであれば、論理的に必要十分なライブラリ集に仕上げてもらいたいものだ。
0797デフォルトの名無しさん
2007/03/05(月) 00:28:21そのまんま標準になるわけなかろう
0798デフォルトの名無しさん
2007/03/05(月) 01:16:48MFCみたいにGUIと密着してると、
サービスを作る時に、どのクラスがメッセージポンプに関連するかとか
いちいち気にしないといけないだろ。
0799デフォルトの名無しさん
2007/03/05(月) 01:19:380800デフォルトの名無しさん
2007/03/05(月) 01:31:44それはMFCのツクリがタコであるというだけ。
大体、どのクラスがWindow System絡みかなんて、namespaceや
ディレクトリ階層みりゃすぐ分かるだろ。
0801デフォルトの名無しさん
2007/03/05(月) 01:49:40何が的外れなの?
正規表現のバックリファレレンスなんてありふれたものに
バグを作りこむなんて随分枯れてるライブラリだなと感心したものだけれど。
0802デフォルトの名無しさん
2007/03/05(月) 02:04:12Boostはまだまだ「枯れる」段階じゃないっしょ
0803デフォルトの名無しさん
2007/03/05(月) 02:19:07多機能で延々とサポートが続くライブラリよりも
シンプルですぐ枯れて安定するのが欲しい。
0804デフォルトの名無しさん
2007/03/05(月) 05:22:34それならVCでもGCCでもSTLでもバグが皆無なのかと聞きたいもんだが。
バグが存在しないソフトウェアなど存在しない。\
君のレスは重箱の隅をつつくようなもんだ。
0805デフォルトの名無しさん
2007/03/05(月) 10:17:43今だと特定の用途向け杉とかであっさり reject されそう
0806デフォルトの名無しさん
2007/03/05(月) 13:03:540807デフォルトの名無しさん
2007/03/05(月) 13:26:04全部標準のincludeに入って.hppはずしてstd::になったらさぞや壮観だろうw
0808デフォルトの名無しさん
2007/03/05(月) 16:17:13>>771
ublas.matrix
multi_array
を組合せてテンソル処理ができないかと思ったら
全然互換性がなくて死んだ
0809デフォルトの名無しさん
2007/03/05(月) 16:20:56lispあたりからcを呼ぶようにしたほうがよかったと思う
今日このごろ
0810デフォルトの名無しさん
2007/03/05(月) 16:39:11shard_ptrやfunctionなどはtr1に入っているが正にそんな感じ
0811デフォルトの名無しさん
2007/03/05(月) 18:33:00標準ライブラリでさえstd::valarrayはひでえもんだぞ
それに比べればマシ
0812デフォルトの名無しさん
2007/03/06(火) 04:48:05ってやってるのに、
warning: Configuring default toolset "gcc".
って出るのは何故?
cvsで最新のboost落としてビルドしてるんだけど、
オプションの与え方変わったの?
0813デフォルトの名無しさん
2007/03/06(火) 14:56:58bind は、lamdba.bind に吸収されろと思う。
lambda と phoenix はどっちベースでもいいから統合されて欲しい。
できれば、lamdba が母体となって、spirit は lamdba で実装。
asio と sandbox にある network は一本化してほしい。
0814デフォルトの名無しさん
2007/03/06(火) 15:30:42糞ライブラリがゴチャゴチャしててウザい。
0815デフォルトの名無しさん
2007/03/06(火) 15:33:28tuple も fusion に(ry
0816デフォルトの名無しさん
2007/03/07(水) 08:23:16swigとboost.python経由でlispとかとインターフェイス作るのは
どっちがいいんだろうか
0817デフォルトの名無しさん
2007/03/08(木) 08:57:240818デフォルトの名無しさん
2007/03/09(金) 22:38:560819デフォルトの名無しさん
2007/03/09(金) 22:53:46ノシ
0820デフォルトの名無しさん
2007/03/09(金) 23:08:410821デフォルトの名無しさん
2007/03/09(金) 23:09:47STL>>>>>>>>>>>うんこ>>>boost
0822デフォルトの名無しさん
2007/03/09(金) 23:31:48マットウに使えてるかどうかしりたいんだが
いろんなtraverse方法でvisitって本当にできてる?
あと100万ノードとかぶら下げてもちゃんと動く?
0823デフォルトの名無しさん
2007/03/09(金) 23:42:44>いろんなtraverse方法でvisitって本当にできてる?
少なくとも DFS, WFS はどっちも問題ないと思いますよ?特殊な traverse がしたいとか?
>あと100万ノードとかぶら下げてもちゃんと動く?
場合によるとしか.単純に node がそのオーダーってだけなら
最近のマシンのメモリ的には問題ないんじゃないですかね?
実際には O(E) や, node や edge にどんなプロパティくっつけているかとか,
回そうとしているアルゴリズムの複雑性如何なのでなんとも.
0824823
2007/03/09(金) 23:45:12WFS ってなんでこんな間違いを……正しくは BFS です
0825デフォルトの名無しさん
2007/03/10(土) 00:57:44妙なアノマリがないかなーと思って聞いてみました
やっぱ試してみるしかないなあ
0826デフォルトの名無しさん
2007/03/13(火) 10:21:44以下の例では成功してます. ただbindでメンバ変数に触るのにはthisが必要だったのでこれじゃまずいのかなーと思いました
struct AAA {
AAA() {
cnt_ = 0;
var_type<unsigned>::type cnt = var(cnt_);
f_ = (++cnt);
}
~AAA() {
cout << "cnt_: " << cnt_ << endl;
}
void f() {
f_();
}
private:
function<void ()> f_;
unsigned cnt_;
};
0827デフォルトの名無しさん
2007/03/13(火) 11:14:37var は変数への参照を受け取るからメンバ変数でもそれ以外の変数でも区別は無いよ。
bind で this が要るっていうほうがよくわからん。
0829デフォルトの名無しさん
2007/03/16(金) 09:40:340830デフォルトの名無しさん
2007/03/16(金) 13:23:440831デフォルトの名無しさん
2007/03/16(金) 14:43:17たしかにアレはいまいちだが、別に顔は見たくないな
0832デフォルトの名無しさん
2007/03/16(金) 14:45:250833デフォルトの名無しさん
2007/03/16(金) 14:47:100834デフォルトの名無しさん
2007/03/16(金) 19:13:28boostの使えないところでindirect_iterator(make_indirect_iterator)と同程度のことができるものが要求されているのですが、
なにか手がかりやシンプルな実装知りませんか?
0835834
2007/03/16(金) 20:36:56cppllの過去ログで見つかりました。
0836デフォルトの名無しさん
2007/03/16(金) 22:15:30大学の課題にすらならない予感
あんなものが標準化されたらC++捨てるわ
0837デフォルトの名無しさん
2007/03/17(土) 09:52:130838デフォルトの名無しさん
2007/03/17(土) 11:11:270839デフォルトの名無しさん
2007/03/17(土) 16:46:430840デフォルトの名無しさん
2007/03/17(土) 16:59:260841デフォルトの名無しさん
2007/03/18(日) 15:53:56半年くらい待ってるが・・・
CVSで引っ張ってきたけど、ボーランドでエラー出てる ( ;ω;)
0842デフォルトの名無しさん
2007/03/18(日) 16:09:370843デフォルトの名無しさん
2007/03/18(日) 16:38:44雑多なのは構わないがゴミを詰め込むのはやめてくれ。
0844デフォルトの名無しさん
2007/03/18(日) 17:05:520845デフォルトの名無しさん
2007/03/18(日) 17:45:21>>842はただの興奮気味の中学生。
0846デフォルトの名無しさん
2007/03/18(日) 17:48:260847デフォルトの名無しさん
2007/03/18(日) 18:03:000848デフォルトの名無しさん
2007/03/18(日) 18:35:49お前馬鹿だろ? このケースは猫に小判だっつーの!
0849デフォルトの名無しさん
2007/03/18(日) 18:40:330850デフォルトの名無しさん
2007/03/18(日) 18:49:09何が違うの?
辞書とか見ても、別の言い換えとして互いに出てくんだが。
0851デフォルトの名無しさん
2007/03/18(日) 19:22:440852デフォルトの名無しさん
2007/03/18(日) 19:32:120853デフォルトの名無しさん
2007/03/18(日) 19:33:350854デフォルトの名無しさん
2007/03/18(日) 19:57:010855デフォルトの名無しさん
2007/03/18(日) 20:03:24本当に馬鹿だったか。
0856デフォルトの名無しさん
2007/03/18(日) 21:56:51ププッ
おまえもわかんないんだろ。
0857デフォルトの名無しさん
2007/03/18(日) 22:08:19思ったように味方がつかなくて不安になってきたのでは。
流れが変わるまで、このまま「何か知ってるフリ」を通すのでしょう :-)
0858デフォルトの名無しさん
2007/03/18(日) 22:14:17小学生からやり直せ。
0859デフォルトの名無しさん
2007/03/18(日) 22:21:540860デフォルトの名無しさん
2007/03/18(日) 22:40:29そりゃ馬鹿がいるからだろ。
0861デフォルトの名無しさん
2007/03/18(日) 22:49:220862デフォルトの名無しさん
2007/03/18(日) 22:54:37とりあえずマ板行こうぜ
0863デフォルトの名無しさん
2007/03/18(日) 22:55:09結局わかんないのねwwwww
0864デフォルトの名無しさん
2007/03/18(日) 22:57:58俺が悪かったよ、マジですまん。前言撤回するよ。
幼稚園からやり直せ。
0865デフォルトの名無しさん
2007/03/18(日) 23:00:420866デフォルトの名無しさん
2007/03/18(日) 23:24:33ププッ
怒られてやんの
0867デフォルトの名無しさん
2007/03/18(日) 23:36:34虚言がばれるのって、匿名でも嫌なもんなのかな?
0868デフォルトの名無しさん
2007/03/18(日) 23:50:26っttp://www.asahi-net.or.jp/~bj7o-wkt/Vmessage/vm060723.html
最初っからから根拠を見せれば、ここまで煽られることもなかったのでは?
ということで、そろそろこの話題は終わりにしませんか?
0869デフォルトの名無しさん
2007/03/18(日) 23:52:010870デフォルトの名無しさん
2007/03/18(日) 23:54:36864は知らなかったんだから、根拠を示せるわけないじゃんwww
0871デフォルトの名無しさん
2007/03/19(月) 01:04:47で、結局お前は意味を理解できたのか?
0872デフォルトの名無しさん
2007/03/19(月) 01:38:06861氏も言ってるけど、自分の品位を落とすだけだよ。
0873デフォルトの名無しさん
2007/03/19(月) 03:30:210874デフォルトの名無しさん
2007/03/19(月) 03:39:49で、結局お前は意味を理解できたのか?
0875デフォルトの名無しさん
2007/03/19(月) 04:07:16虚言がばれるのって、匿名でも嫌なもんなのかな?
0876デフォルトの名無しさん
2007/03/19(月) 05:59:38で、結局お前は意味を理解できたのか?
0877デフォルトの名無しさん
2007/03/19(月) 06:41:420878デフォルトの名無しさん
2007/03/19(月) 07:04:07そりゃ馬鹿がいるからだろ。
0879デフォルトの名無しさん
2007/03/19(月) 07:22:290880デフォルトの名無しさん
2007/03/19(月) 08:51:460881デフォルトの名無しさん
2007/03/19(月) 09:25:440882デフォルトの名無しさん
2007/03/19(月) 09:33:210883デフォルトの名無しさん
2007/03/19(月) 09:44:180884デフォルトの名無しさん
2007/03/19(月) 09:50:56半分以上が趣味だろうね、使うのは危険!
小さな趣味自作ソフトでboostいれたけど、外すのがめんどい
大企業が導入しないとか、いまだにVC++6使う理由もわかる
0885デフォルトの名無しさん
2007/03/19(月) 10:02:13> いまだにVC++6使う
いや、それは全然別問題だと思うぞw
今やサポートされておらず、最新のPlatformSDKにも追従せず、
C++標準にも準拠していないコンパイラを
わざわざ「大企業が」使うとすれば、VC++6で開発されたレガシーな
プログラムのメンテのためだけだろう。
0886デフォルトの名無しさん
2007/03/19(月) 10:22:340887デフォルトの名無しさん
2007/03/19(月) 10:39:09幸いどっちもtr1にあるからゆくゆくは標準入りするだろうけど。
0888デフォルトの名無しさん
2007/03/19(月) 10:44:290889デフォルトの名無しさん
2007/03/19(月) 10:45:11転職考えてるんだが、Webとか組み込みでは無いな
WindowsはC#か? てことはUNIXのデータベース系?
0890デフォルトの名無しさん
2007/03/19(月) 10:45:48そうでないものとの差が激しいんだよね…。
0891デフォルトの名無しさん
2007/03/19(月) 10:58:32あったら便利そうなものを提案
→議論をして採用不採用を決定
→コード化→最適化→提出
→製作者「便利でしょう!しかも早いし安全なんです!」
・今の流れ
とりあえずテキトーに何かをコード化
→最適化処理に躍起になる→提出
→製作者「とにかく早いニダ。需要なんて知らないニダ。
いいから標準入りさせろニダ。有名になりたいニダ」
0892デフォルトの名無しさん
2007/03/19(月) 11:00:52そこがボーストのいいところ ( ・`ω・´)ノ
0893デフォルトの名無しさん
2007/03/19(月) 11:08:42つーかWebで今現在わざわざC++使ってるトコなんて、あんのか。
ちょっと驚き。
ISAPIフィルタかな?ASAPIならC++どころかCだろし。
「UNIXのデータベース系」の意味も不明。
0894デフォルトの名無しさん
2007/03/19(月) 11:17:47GoogleとかC++使ってるし、C++用のライブラリ公開してたりもするが。
0895デフォルトの名無しさん
2007/03/19(月) 11:23:23毎度公開レビューされてるの知らんのか?
0896デフォルトの名無しさん
2007/03/19(月) 11:28:47googleぐらいになるとバックエンドで相当複雑で高度なことをやってるからな。
でも、それはレアケース。
Webベースのシステムの大半(特に日本のシステム屋が作ってるような奴)は
単なるCRUDアプリ、もしくはそれに毛の生えたような奴だべや。
そのような場所ではもはやC++は必要ないし、使われない。
0897デフォルトの名無しさん
2007/03/19(月) 11:34:58うまく動作するか否かを見るだけのレビューだろ
0898デフォルトの名無しさん
2007/03/19(月) 11:39:25「業務」という単語に対する認識が極めて狭い人ですね。
ある種の偏見と言えるでしょう。
0899デフォルトの名無しさん
2007/03/19(月) 12:13:41ちがうよ。
トップページの news として最近 rejeced になったライブラリが挙がってるから見てみるといい。
0900デフォルトの名無しさん
2007/03/19(月) 15:32:50検索してもみつからねぇ
0901デフォルトの名無しさん
2007/03/19(月) 17:45:48何かを揶揄したいがために捏造するのは痛いですよ。
高校生くらいですか?
0902デフォルトの名無しさん
2007/03/19(月) 20:00:42いつ反映されますか?
0903デフォルトの名無しさん
2007/03/19(月) 20:03:11>>901のような態度を取るかで
大人かガキかが一瞬でわかるな。
0904デフォルトの名無しさん
2007/03/19(月) 20:19:21|← reject| boostの中の人 display ユーザー
. ̄.|| ̄ ̄ ┗(^o^ )┳(^o^ )┳(^o^ )┛≡=-
|| ┏┗ ┗┗ ┏┗ ≡=-
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0905デフォルトの名無しさん
2007/03/19(月) 20:24:37×ちがうよ。
○違うよ、全然違うよ。
0906デフォルトの名無しさん
2007/03/19(月) 20:32:560907デフォルトの名無しさん
2007/03/19(月) 20:42:170908デフォルトの名無しさん
2007/03/19(月) 20:52:42そりゃお前がいるからだろ。
0909デフォルトの名無しさん
2007/03/19(月) 20:53:370910デフォルトの名無しさん
2007/03/19(月) 21:12:180911デフォルトの名無しさん
2007/03/19(月) 21:18:01Level 5(必要)
:
Level 1(不要)
0912デフォルトの名無しさん
2007/03/19(月) 21:18:140913デフォルトの名無しさん
2007/03/19(月) 23:59:27ところでBigIntegerどうなったの?
Google Summer Of Code 2007に挙がっているみたいだけど、そんなに完成遠いの?
0914デフォルトの名無しさん
2007/03/20(火) 07:38:41�@1-20
�A20-30
�B30-40
�C40-60
�D60-∞
�@
0915デフォルトの名無しさん
2007/03/20(火) 08:33:460916デフォルトの名無しさん
2007/03/20(火) 11:16:240917デフォルトの名無しさん
2007/03/20(火) 13:27:080918デフォルトの名無しさん
2007/03/20(火) 13:36:580919デフォルトの名無しさん
2007/03/20(火) 13:40:090920デフォルトの名無しさん
2007/03/20(火) 13:49:350歳が書いてないところを見ると、数え年で答えろということか?
0921デフォルトの名無しさん
2007/03/20(火) 14:13:150922デフォルトの名無しさん
2007/03/20(火) 15:22:00実はソレが高度な心理テストだったんだよ!
0923デフォルトの名無しさん
2007/03/20(火) 15:24:13seikihyougen
もおねがいします
0924デフォルトの名無しさん
2007/03/20(火) 15:25:04それこそ、この巧妙なトリックをあばくカギだったんだよ
0925デフォルトの名無しさん
2007/03/20(火) 15:46:39collection of seiki_hyougen tag;
namespace seiki_hyougen
{
namespace tag
{
struct tinko;
struct manko;
typedef tinko penis;
typedef manko awabi;
....
}
}
0926デフォルトの名無しさん
2007/03/23(金) 05:01:16という文字列があったときに、
「a」「b」「」「c」「d」
というトークンに分解したい(<>で分けたい)のですが、
boost::tokenizerで自分でseparatorを書かずに出来ますか?
char_separator sep("<>")
だと、"<"と">"の二つで分けてしまうので出来ません。
0927デフォルトの名無しさん
2007/03/23(金) 10:19:07dekimasu
0928デフォルトの名無しさん
2007/03/24(土) 10:24:58"<"でも">"でも、それらをいくつも並べたもの("<>"含む)でも分ける方法なんだけど。
>>926が何も言わないところを見ると、どっかよそで解決したのかなあ?
0929デフォルトの名無しさん
2007/03/24(土) 12:51:090930デフォルトの名無しさん
2007/03/25(日) 16:40:55boost:algorithm::starts_with(hoge, L"あい");
->コンパイル出来るけど、結果が正しくない(falseが返る)
boost::algorithm::starts_with(hoge, std::wstring(L"あい"));
->正しく動く
上のようになってしまうのですが、wstringを第一引数に渡す場合、第二引数
はわざわざwstringを生成して渡してやるほかないのですか?
0931デフォルトの名無しさん
2007/03/25(日) 19:56:400932デフォルトの名無しさん
2007/03/25(日) 22:35:47死ね
0933デフォルトの名無しさん
2007/03/25(日) 23:00:37https://boost-consulting.com:8443/trac/soc/export/1786/boost/soc/2006/concurrency/tags/postfinal_untested/doc/html/index.html
これ見てみろよ.STL algorithm の parallel/serial 実行をテンプレート使って切り替えるんだと.
こいつがリリースしたらヤバいぞ…
0934デフォルトの名無しさん
2007/03/25(日) 23:08:020935デフォルトの名無しさん
2007/03/25(日) 23:09:49OpenMPでSTLをお手軽並列化・・・これはヤバイかもわからんね。
0936デフォルトの名無しさん
2007/03/25(日) 23:14:480937デフォルトの名無しさん
2007/03/26(月) 00:02:07#include <boost/act/algorithm.hpp>
#include <iostream>
struct output_for_var
: boost::act::parallel_safe
{
void operator ()( int index ) const
{
std::cout << index;
}
};
int main()
{
using boost::act::basic_for;
using boost::act::for_var;
basic_for( for_var = 0, for_var < 10, ++for_var )
[
output_for_var()
];
}
0938デフォルトの名無しさん
2007/03/26(月) 00:05:48ちらっとソース見てみたんだがコンパイルエラーが出たらヒドそうだぜwww
0939デフォルトの名無しさん
2007/03/26(月) 00:14:39この中に
http://d.hatena.ne.jp/mrkn/20070325/boost_act
こいつまざってるだろ?
タイミング良すぎてワラたぞw
0940デフォルトの名無しさん
2007/03/26(月) 08:46:32ハァ?ブログのアクセス・アップの常套手段だろ?
0941デフォルトの名無しさん
2007/03/26(月) 08:50:450942デフォルトの名無しさん
2007/03/26(月) 09:55:200943デフォルトの名無しさん
2007/03/26(月) 09:57:370944933
2007/03/26(月) 13:21:40そんなことより Boost.Act すごいから誰か試してみないか?
俺の貧弱なマシンでは試したところで良く分からないというオチなんだろうな
とても悲しい
0945デフォルトの名無しさん
2007/03/26(月) 14:10:410946デフォルトの名無しさん
2007/03/26(月) 22:00:510947デフォルトの名無しさん
2007/03/26(月) 22:08:540948デフォルトの名無しさん
2007/03/27(火) 00:16:40> area = volume / length; // correct
> force = mass * velocity; // wrong
> total_area = area + 3.14 * length * length; // correct
> total_force = force + 2.718; // wrong
とかできるんだって。opaque typedefがなくてもしばらく大丈夫かも。
0949デフォルトの名無しさん
2007/03/27(火) 01:07:48|← reject| boostの中の人 display ユーザー
. ̄.|| ̄ ̄ ┗(^o^ )┳(^o^ )┳(^o^ )┛≡=-
|| ┏┗ ┗┗ ┏┗ ≡=-
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0950デフォルトの名無しさん
2007/03/27(火) 01:10:100951デフォルトの名無しさん
2007/03/27(火) 01:42:140952デフォルトの名無しさん
2007/03/27(火) 15:45:53にブログもってる人多いね
c++のコード貼るのに便利な機能でもあるの?
0953デフォルトの名無しさん
2007/03/27(火) 16:14:000954デフォルトの名無しさん
2007/03/27(火) 17:23:58なんでプログラム系ばっかなのかは気になる
0955デフォルトの名無しさん
2007/03/27(火) 17:46:23板違いだが "シンタックスハイライト" という記法があるとレスしとく。
地味に便利なんだ。
http://www.google.co.jp/search?q=%E3%81%AF%E3%81%A6%E3%81%AA%E8%A8%98%E6%B3%95+cpp
0956デフォルトの名無しさん
2007/03/27(火) 17:49:04それ結構最近だし。
はてなは中の人があれで類友だからじゃね?
0957デフォルトの名無しさん
2007/03/28(水) 01:52:55hatenaでblog始めたら負けかな? と思ってたんだが、ついに去年負けちゃった俺がきましたよ。
あそこはねぇ、各種キーワードを含むページの更新情報・・・って言ってもわかりにくいから
例を挙げると http://d.hatena.ne.jp/keyword/Boost みたいなページがあってですねぇ、
ここを監視していると hatena 内で言及された Boost の話題を全部チェックできるんですよ。
で、これは RSS にも対応してて便利なんですよ。さらに各キーワードをそれぞれの分野の
ヲタがヲチしてるから、なんかトラぶってる様でも blog で愚痴れば詳しいヤツの助言が
得られたりするですよ。
まぁ、RSS チェックしててもノイズが多いし、下手なこと言おうもんならすぐに嗅ぎ付けられ
ちゃうし良し悪しではあるんですが、俺が負けちゃった理由はそんなところです。
0958デフォルトの名無しさん
2007/03/28(水) 01:58:36書くほうは楽なんだろうけど
0959デフォルトの名無しさん
2007/03/28(水) 02:08:07「どないせえっちゅうんじゃ」という文字列中の「えっち」にリンクが張られたという笑い話もある
0960デフォルトの名無しさん
2007/03/28(水) 05:07:380961デフォルトの名無しさん
2007/03/28(水) 06:19:350962デフォルトの名無しさん
2007/03/30(金) 17:55:31そりゃ幻聴だ、結構ヤバイぞ。
0963デフォルトの名無しさん
2007/03/30(金) 22:06:58スレ違い。お前はこっちへ逝け
http://pc11.2ch.net/test/read.cgi/tech/1139266461/
0964デフォルトの名無しさん
2007/03/30(金) 23:13:070965デフォルトの名無しさん
2007/03/31(土) 00:16:11まだそのスレ生きてたのかw
0966デフォルトの名無しさん
2007/03/31(土) 06:17:540967デフォルトの名無しさん
2007/03/31(土) 06:19:510968デフォルトの名無しさん
2007/03/31(土) 09:55:200969デフォルトの名無しさん
2007/03/31(土) 13:51:06おまえさまは>>963のスレタイを画面に穴が開くまでよく読むか目医者に行った方がいいと思うよ。
0970デフォルトの名無しさん
2007/03/31(土) 14:39:48正規表現でいうところの [ab]*b って事で
spirit で *('a' | 'b') 'b' を定義して,"aab" という入力を食わせると
hit しなかったわけですけども,
これって正常?ですか?ですよね?
つまり,「BNFの量指定子はバックトラックするべきか否か?」という
問題になるのかなと思うんですが
ここらへんの事って,もうどこかで議論されていたりするんでしょうか?
っていうか,慣例やガイドラインのようなものがあったり?
RFC4234見ても,このあたりは書いてないっぽいですけど。
もっとも,プログラム言語のような比較的規模のデカい構文で
いちいちバックトラックの用意をしてたら,もうアタシ死んじゃいそうですけどね。
yacc とか使い物にならなくなりそうですよね。。。
0971デフォルトの名無しさん
2007/03/31(土) 15:28:00じゃないの?試してないけど。
あと、頭の'a'はch_p('a')でなくていいんだっけ?
0972デフォルトの名無しさん
2007/03/31(土) 15:36:080973972
2007/03/31(土) 15:40:170974デフォルトの名無しさん
2007/03/31(土) 16:11:26よって
*ch_p('c') >> 'b'
ってことだろ。多分
0975デフォルトの名無しさん
2007/03/31(土) 16:16:09int main()
{
using namespace boost::spirit;
std::cout << parse("aab", *(ch_p('a') | 'b') >> 'b').full << '\n';
}
0976デフォルトの名無しさん
2007/03/31(土) 23:07:19+(*ch_p('a') >> ch_p('b'))
……同じ文法を受理するから、まあ良いか。
0977デフォルトの名無しさん
2007/04/01(日) 16:40:550978デフォルトの名無しさん
2007/04/01(日) 18:02:390979デフォルトの名無しさん
2007/04/01(日) 19:42:40while('A')
if('-');
0980デフォルトの名無しさん
2007/04/01(日) 22:15:04そうっすね。実はあまり真面目に spirit について勉強してないんですが
とりあえず間違いのないように全部 ch_p をつけて
*(ch_p('a') | ch_p('b')) >> ch_p('b')
として "aab" を食わしてやりました。
>>976
んー素晴らしい。
必要な時は,NFAな表現をあらかじめ手作業でDFAに
変換しとけばおkという事ですね。
ところで,グループの中の or もバックトラックしない模様です。
(ch_p('a') | str_p("aa")) >> ch_p('b')
これもやはり "aab" を受理してくれませんでした。ch_p と str_p を入れ替えて
(str_p("aa") | ch_p('a')) >> ch_p('b')
とすれば受理してくれるんですが。
0981デフォルトの名無しさん
2007/04/01(日) 22:43:13"|" が短絡されるのはドキュメントに明示されてるんですね。
そのために longest_d[] があるんだよ,と。
longest_d[ch_p('a') | str_p("aa")] >> ch_p('b')
うーんなるほど。
0982デフォルトの名無しさん
2007/04/02(月) 00:48:020983デフォルトの名無しさん
2007/04/02(月) 00:49:100984デフォルトの名無しさん
2007/04/02(月) 01:47:00それは履き物
0985デフォルトの名無しさん
2007/04/02(月) 23:16:150986デフォルトの名無しさん
2007/04/03(火) 00:05:04それはビスタ
0987デフォルトの名無しさん
2007/04/04(水) 08:36:410988デフォルトの名無しさん
2007/04/04(水) 10:11:490989デフォルトの名無しさん
2007/04/04(水) 14:10:02http://pc11.2ch.net/test/read.cgi/tech/1175663346/
立てました
0990デフォルトの名無しさん
2007/04/04(水) 14:51:140991デフォルトの名無しさん
2007/04/05(木) 09:13:520992デフォルトの名無しさん
2007/04/05(木) 20:14:450993デフォルトの名無しさん
2007/04/05(木) 20:18:190994デフォルトの名無しさん
2007/04/05(木) 21:29:420995デフォルトの名無しさん
2007/04/06(金) 16:53:180996デフォルトの名無しさん
2007/04/06(金) 20:38:570997デフォルトの名無しさん
2007/04/06(金) 20:39:570998デフォルトの名無しさん
2007/04/06(金) 20:40:430999デフォルトの名無しさん
2007/04/06(金) 20:41:241000デフォルトの名無しさん
2007/04/06(金) 20:41:2810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。