Boost C++ Libraries Sandbox
■ このスレッドは過去ログ倉庫に格納されています
C++用ライブラリBoost C++ Libraries の Sandboxについて語るスレです。
Boostとは?
1998年に、最初のC++言語の国際規格が誕生しました。
その規格に採用されたライブラリがいわゆる「C++標準ライブラリ」です。
しかしこのとき、さらに強力な標準ライブラリを求めて、
標準化委員会のメンバー達が新しいプロジェクトを立ち上げました。
それが Boost です。
Boost の目標は、有用で、フリーな、 移植性のあるライブラリを実際に実装・公開し、
いずれ来る次のC++標準化 (C++0X) の際に、 新標準ライブラリとして提供されることにあります。 >>62
Boost スレで回答あったっていうかした。半日くらい待てんかね。 >>63
すいませんせっかちなもんで。助かりました。 Boost総合スレがみつからなかったので、こちらに書かせてください。
boostで、実行ファイルのパスを取得する関数はあるのでしょうか?
filesystemを探したが見つからなかった。。。
環境は
OS:Ubuntu10.04
boost ver1.40
です。 このスレ、1年に4つしか投稿無いけど読んでいる人いるのかな・・・
質問です。(boost 1.47.0使用)
asioで
ip:tcp:socket
ip::tcp::acceptor
io_service
あたりを使って通信プログラムを書いてます。
データのやり取りはできるようになったのですが、相手側の切断検出方法がわかりません。
イベントハンドラ登録か、socketあたりのisAlive()あたりがないかと期待したのですが、
どうもみつからない。アプローチがおかしいのでしょうか・・
ヒントをいただければ幸いです 投稿した瞬間、readhandlerじゃないかと思って確認したら、
boost::asio::error::shut_down てのをみつけた、、これか・・・
がんばってみゆ・・。 これ最新版だとインストーラ入らないのかな
解凍してbootstrap.batを実行したらビルドエンディングとかでてました
コレで全てのライブラリが使えるようになったのかな std::auto_ptr<float> x(new float(1.1)),y(new float(2.2)),z(new float(3.3));
std::cout << *x << " " << &(*x) << std::endl;
boost::ptr_list<float> l;
l.push_back(x);
std::cout << &(*l.begin()) << std::endl;
boost::ptr_list<float> l2(l.begin(),l.end());
std::cout << &(*l2.begin()) << std::endl;
全部同じアドレスがプリンとされるはずなのにされない
lをl2にコピーする方法間違ってるの? >>73
何を出力しているか判っている?
中身は同じでも入れ物自体は違うでしょ。 boost::ptr_list<float, boost::view_clone_allocator> l2(l.begin(),l.end());
すみません。これでいけました それ、スマートポインタを出力しようとしてない?
x.get() でナマポがもらえる。
template<typename T>
func(const boost::ptr_list<T>& lis){...
}
constつけるといろいろおかしくなる。
std::listではconst_iteratorをiteratorに勝手に変換してくれるのに
>>79
> std::listではconst_iteratorをiteratorに勝手に変換してくれるのに
んなわけあるか
#include <list>
typedef std::list<int> list;
list::iterator f(list::const_iterator i) { return i; }
: In function 'std::list<int>::iterator f(std::list<int>::const_iterator)':
:3:51: error: conversion from 'std::list<int>::const_iterator' to non-scalar type 'std::list<int>::iterator' requested 11でコンテナのメンバのいくつかは、素のiteratorしか引数にできない->const_iteratorも引数にできる、に変わったんだが
そのあたりの挙動にからむ誤解なんじゃないか fusionのi番目要素求めるのに
コンパイル時にiがわかってるならat<i>で求められるけど
動的にi番目を求める方法ないのでしょうか
コンパイル時にiがわかってないとi番目の型もわからんじゃないか i番目の型だけはコンパイル時に既に分かってる場合を考えて作ってみたら
要素の入ってない末尾に_voidなんて型が入っていてコンパイルエラー いつもニヤニヤあなたのコードに紛れ込む不具合、boostです!
どうぞ、boostとお呼びくださいねっ(はぁと) もどり値の型 Retをコンパイル時に指定する場合
template <typename IIterator> IIterator
list_ref_fusion_impl(IIterator i, int n ){
if(n>0){ return list_ref_fusion_impl(boost::fusion::next(i),n-1);}
return i;}
template <typename Ret,typename Sequence> Ret
list_ref(Sequence & seq, int n
){ return boost::fusion::deref(list_ref_fusion_impl(boost::fusion::begin(seq), n));} type traitsと同様に使える
自分のカスタム
is_my_object
を作りたい
template<typename T>
struct is_my_object
{
typendef なにか type
bool value= なにか
}
の2つのメンバーさえ何らかの方法で定義すれば
他のis_arrayとかとmpl::and_ ,mpl::or_したりして使えるの?
boost::mpl::true_::value;//true
boost::mpl::true_()(12);//error
bool operator()(const T &t){return true;}
ぐらい追加しろよ
boost::fusion::vector
で3番めの要素を型も含めて変更することできないの?
at<3>(v)=`c`
at<3>(v)="aaaaa"
みたいなことしたい
メモリー効率を考えて
view_clone_allocator
を使いまくってるけど
OpenCVとかもこれ使うと元のアルゴリズムより高速になることあるんだろうか enable_if で場合分けした関数を作ってるとresult_ofが自動で型推論されない 時間を扱うライブラリとして、
boost::posix_time, boost_chrono, boost::xtime
など色々あると思うのですが、
なぜこんなに色々あるんでしょうか。
使い分けすべきなのか、どれか一つだけを使うべきなのかよく分かりません。
使い分けすべきであるなら、どのような使い分けがあるのでしょうか。 posix_time boost::date_timeの一部
xtime boost::threadの一部
chrono C++11で標準入りしたstd::chronoのboost版実装 てことで使えるならstd::chrono
それがだめでboostが使えるならboost::chronoを使うのが良いのかね 文字列との相互変換はposix_time(というかBoost.Date_time)のほうが
充実していて便利ではないか?
と思ったが、Boost.Chronoには標準ライブラリにないIOがあった。
標準にも欲しいぞ。 浅岡 坂井 近藤 倉石 関 江村 鎌原 棉田 松井 壇原 宮脇 武田
会津 石田 佐々木 光 >大阪府三島郡島本町の小学校や中学校は、暴力イジメ学校や。
島本町の学校でいじめ・暴力・脅迫・恐喝などを受け続けて廃人同様になってしもうた僕が言うんやから、
まちがいないで。僕のほかにも、イジメが原因で精神病になったりひきこもりになったりした子が何人もおる。
教師も校長も、暴力やいじめがあっても見て見ぬフリ。イジメに加担する教師すらおった。
誰かがイジメを苦にして自殺しても、「本校にイジメはなかった」と言うて逃げるんやろうなあ。
島本町の学校の関係者は、僕を捜し出して口封じをするな
>島本町って町は、暴力といじめの町なんだな
子供の時に受けた酷いイジメの体験は、一生癒えない後遺症になるなあ >>101 どこの誤爆だw
島本町は教育委員会含めて屑ぞろいだからな
廃校決まった地元の底辺高校へ進学させようとする屑教師とかいまだに健在なんだろうか? あと、児童臨時保管所の運営も厚生していかんとどうにもならん 最新のコンピュータはBoostライブラリを使ったソースコードをコンパイルして楽しむ為にあるのではないかと思えてきた 最近はboostよりC++11、14のほうが熱く感じる
rvalure ref、constexprなど面白い
boostはver1.56なってもうやりつくした感で今後の予定も未定になってしまった 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
PC6G7 ■ このスレッドは過去ログ倉庫に格納されています