Boost C++ Libraries Sandbox
■ このスレッドは過去ログ倉庫に格納されています
C++用ライブラリBoost C++ Libraries の Sandboxについて語るスレです。
Boostとは?
1998年に、最初のC++言語の国際規格が誕生しました。
その規格に採用されたライブラリがいわゆる「C++標準ライブラリ」です。
しかしこのとき、さらに強力な標準ライブラリを求めて、
標準化委員会のメンバー達が新しいプロジェクトを立ち上げました。
それが Boost です。
Boost の目標は、有用で、フリーな、 移植性のあるライブラリを実際に実装・公開し、
いずれ来る次のC++標準化 (C++0X) の際に、 新標準ライブラリとして提供されることにあります。 このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所 ■本家サイト■
Boost C++ Libraries
ttp://www.boost.org/
BoostSandbox Boost C++ Libraries
ttps://svn.boost.org/trac/boost/wiki/BoostSandbox
■本スレ■
Boost総合スレ part7
ttp://pc12.2ch.net/test/read.cgi/tech/1232367742/
■関連サイト■
Boost 翻訳プロジェクト
ttp://boost.cppll.jp/HEAD/
Let's Boost
ttp://www.kmonos.net/alang/boost/
boost info
ttp://shinh.skr.jp/boost/
■Subversion Repository■
Boost正式
svn co http://svn.boost.org/svn/boost/trunk/ [インストール先パス]
BoostSandbox
svn co http://svn.boost.org/svn/boost/sandbox [インストール先パス]
Boost Sandbox
は Subversion リポジトリのサンドボックス・サブディレクトリに収納されています。
Boost Sandboxには、最終的にBoost C++ Librariesの一部となるよう意図された
未検証のコードが含まれています。 #include <cstring>//これがないとコンパイルが通らない
#include <boost/bigint/bigint.hpp>
boost::bigint aa("1111");
boost::bigint bb(aa);
boost::bigint cc("1000000000000000") ;
boost::bigint dd = cc / 10001 ;
//(1と0ばっかりですが、10進法です。)
こんなライブラリが含まれていたりします。
またニッチなスレを・・
で、progress_displayを超える期待株は何かあったりしますか? >>9
あれを超える逸材はなかなか無いですね。
たぶん(笑) >>11
未検証のコードが含まれています。
未検証と言ってもかなり活発に開発中で、
Boostの厳しい検査に合格すれば
将来的に正式にBoost C++に乗れるもの達です。 次世代C++の元の元ってわけか
完全に趣味の人くらいしか手を出さなそうだな.
もしくはboostの開発に関わりたい人か
何かboostにないいい感じのクラスはあるの? >>13
まさにその辺を語り合いたいと思います。
とりあえず>>8なんかどうです?
私は全然しらないのでこれから勉強していきたいですが。
既に正式に含まれているregexやfusion、flyweightその他いくつもあるようですので
おそらく既存のライブラリが改訂される時も一度はSandboxを経由
するのでしょうかね。
未来のBoostですから相当おもしろそうな物がちらほら見られます。
filesystem-v3
とかもフォルダ名しか見てませんが面白そうですね。
とりあえずageてみる
本スレと統合すべきかどうか。
調べるにも全て英語ページだな
暇つぶしにやるにもしんどいわ そうなんですよ。
英語だとやはりめんどくささ倍増ですよね。
Boost File Vault
Boostライブラリには入っていないけれど、その叩き台としたい、 というようなソースが転がっています。宝の山。^^
ってk.inaba氏が言ってた。 本スレのタイトルはBoost"総合"スレなわけだし、Sandboxもあっちで扱って良いんじゃね? 俺も微妙にそう思う。
まあSandboxに着目したのは良いと思うけど、
本スレがそんな勢いないから統合しても大丈夫じゃないかと。 boost自体がC++0xの砂場だったはずだけど…。
そのうちSandboxのSandboxができるのか? >>28
boostが砂場以上の役割を求められてきたから、
Sandboxを作る必要が出て来たってことだろうね。
SandboxのSandboxが出て来てもおかしくない。
linux kernelだとこんなことに
ttp://www.atmarkit.co.jp/flinux/rensai/watch2008/watch06a.html
> 順番としてはlinux-staging → linux-next → -mm → -rc → releaseという順番でパッチが流れていくことが期待されています。 Boostもそうなるのだろうか。
Boost.Sandbox.Sandbox.Sandbox PIC16F84Aへの書き込みの為SourceBoost6.0 Ver6.95を購入したのですが
操作手順が解りません,,,のです。、、、(--;
SourceBoost IDEのBoostC でHexフアイルを吐き出す為の
SourceBoost IDEの操作手順を教えて頂けませんか?
------------------------------------------------------------------
以下はCプログラムです。
------------------------------------------------------------------
#include<pic.h>
__CONFIG(0xfff2);
void ioport(void);
void main()
{
unsigned char port_data;
ioport();
while(1)
{
port_data = PORTA;
PORTB = port_data;
}
}
void ioport (void)
{
TRISA = 0x0f;
TRISB = 0;
} 次はASIO開発の質問をAsioと勘違いしてここに投下する俺が現れると予想 ■Subversion Repository■
Boost正式
svn co http://svn.boost.org/svn/boost/trunk/ [インストール先パス]
BoostSandbox
svn co http://svn.boost.org/svn/boost/sandbox [インストール先パス]
これが一番便利かと。
Subversion使ってる・・・よね? >>37
どうしてこういうヤツって答えてもらっておいて
シカトするんだろうなぁ
って疑問に思いながらageてみるテスト Visutal Studio C++ 2005 Express Edition のときは
無事に build 出来たのですが
同じソースを
Visutal Studio C++ 2008 Express Edition で build しようとすると
Unknown compiler version - please run the configure tests and report the results
と出てきます
http://www.infosakyu.ne.jp/~yamaken/mymodel/fal/fal6.jpg
ブースカ numeric bindingsが本家に入るのはいつになるだろか。 Boost Geometryには期待している。
しばらくはCGALで我慢するが。 Boost.Generic Geometry Libraryが採択されました - Faith and Brave - C++で遊ぼう
ttp://d.hatena.ne.jp/faith_and_brave/20091130/1259565033
より
Boost.GGLが採択されました。
レビューであがったいくつかの問題を修正し、正式にBoostに組み込まれることになります。
「"Generic" Geomerty Libraryというライブラリ名は誤解をまねきやすいので
Boost.Geometryとかに変えたほうがいいんじゃない(強制はしないけど)」
「理想的にはBoost.Polygonの作者と協力して合併することを期待したい」
といった意見があるようです。
だって。へー。
でも何に使うのか全然分からん。 座標計算とか幾何図形の演算とかを、
配列とかpairとかtupleとか、その他「座標として扱える(特殊化された)クラス」を
(このあたりがGeneric?)混在して扱うことができるらしい。
しかし、こういう基地外じみた名前空間はどうにかならないだろうか。
boost::geometry::strategy::transform::translate_transformer<boost::geometry::point_2d, boost::geometry::point_2d> namespace tmp {
using namespace boost::geometry;
using namespace boost::geometry::strategy;
using namespace boost::geometry::transform;
}
namespace geo = tmp;
typedef geo::translate_transformer<geo::point_2d, geo::point_2d> T;
NSMP(名前空間メタプログラミング)始まったな ttp://www.bookshelf.jp/2ch/tech/1241438694.html
このスレで例外指向プログラミング言語の概念を提唱した
変態になりたがりの俺が通りますよ
#include <utility>
#include <boost/mpl/assert.hpp>
#include <boost/type_traits/is_same.hpp>
#include <ftmpl/vector.hpp>
#include <ftmpl/fold.hpp>
#include <ftmpl/value.hpp>
#include <ftmpl/type.hpp>
using namespace boost::ftmpl;
struct add_
{
template<int a, int b>
value_t<int, (a+b)>& operator()(type_t<value_t<int, a>>&, type_t<value_t<int, b>>&);
} add;
int main(){
typedef decltype(vector(value<int, 1>(), value<int, 2>(), value<int, 3>())) lst;
typedef decltype(fold(type<add_>(),value<int,0>(), std::declval<lst>())) result;
BOOST_MPL_ASSERT((boost::is_same<result, value_t<int,6>&>));
} VisualStudioで動く設定ずみ環境をダウンロードできるように
まとめる人いなかった? property_treeのiniファイルパーサーですけど、セクションとキー文字列の
大文字小文字の区別を無くすにはどうすればいいのでしょうか? >>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 ■ このスレッドは過去ログ倉庫に格納されています