タグ

boostに関するrydotのブックマーク (62)

  • Boost.PropertyMap (.pdf)

    2010/10/23 Boost.勉強会 #3 関西 プレゼン資料 .pdf とりあえず upload 版Read less

    Boost.PropertyMap (.pdf)
  • Boost.Test v3 を使ってみた

    BOOST_TEST マクロCatch のアサーションのように、式の各値を出力してくれる機能がついたアサーションです。 Catch に関しては以前のブログを参考にしてください。 #define BOOST_TEST_MODULE example #include "boost/test/unit_test.hpp" int f() { return 42; } BOOST_AUTO_TEST_CASE(test_op_reportings) { int a = 43, b = 42, c = 0; BOOST_TEST(a == b); BOOST_TEST(f() == a); BOOST_TEST(a < b); BOOST_TEST(a - 1 < b); BOOST_TEST(b > a - 1); BOOST_TEST((f() && c)); } こんなふうに出力されます。 |

    Boost.Test v3 を使ってみた
  • Boost.Logの使い方(1. 概略) - Qiita

    概略 ログの収集 ログの出力 cmakeによるコンパイル Boost.Logの全体像 (Design overviewより転載) Boost.Logには3つの階層があり、 logger : アプリがログを出力するためのインターフェイス core : 各loggerから取得したログをまとめて、フィルタリングしたりする sink : logをファイルや標準出力したりする(ここでフィルターもできる) アプリ、あるいはモジュールをユーザーが使用する場合 core, logger : アプリ、モジュールが使用 core, sink : ユーザーが使用 のように使う事になります。 loggerはなるべく多くの情報を提供し、ユーザー側がcore/sinkの設定でフィルターします。 特徴 macroを多用する placeholderを多用する 特にplaceholderは慣れると便利なんですが、 Boos

    Boost.Logの使い方(1. 概略) - Qiita
  • Boost.老害

    I @wx257osn2 何回か話に出してるけどC++0x策定前後にC++格的に始めたせいでかなりスムーズにC++11に馴染んだけど、scoped_ptrとか諸々は標準ライブラリに入ってるのが当たり前になっててあんまりBoostのお世話になってないから個人的にBoostすごいっって感覚があんまりない 2013-02-14 00:29:42

    Boost.老害
  • テンプレートの推論された型をお手軽確認 - Qiita

    テンプレートを書いていて、推論された型を確認したい テンプレートを記述していると 「この引数を与えたときには、Tがどう推論されるのか?」 なんて思うことは良くありますよね? 嗚呼、そんなとき、どーしたらよいのでしょーか? たとえば template < typename T > void f(T&&){} void g(int const&){}; int main(){ f(g); } この場合のTがどう推論されるのか知りたい! と思ったとき、どうしますか? 諦める IDEに頼る typeid.name()を使う Boost.Typeindexを使う Attributeを使う(C++14) IDEに頼る フォーカスすると情報が表示されるのを利用する IDEを使っている場合は概ねこれで事足りる typeid.name()を使う ヘッダをインクルードして この方法では実行時までわからない型情

    テンプレートの推論された型をお手軽確認 - Qiita
  • GitHub - boostorg/compute: A C++ GPU Computing Library for OpenCL

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - boostorg/compute: A C++ GPU Computing Library for OpenCL
  • C++で常微分方程式:boost::odeint入門 - Qiita

    概要 シミュレーションなどではよく、微分方程式に従った時間発展を計算することがあります。そういった計算には、オイラー法やルンゲ・クッタ法と呼ばれるアルゴリズムを用いるのですが、自分でそうしたコードを記述するのは面倒だしバグの元でもあります。 boostには、そういった常微分方程式の数値解析用ライブラリ、boost::odeint が含まれています。できることを列記してみると、 用途に応じた幅広い常微分方程式計算用アルゴリズムが用意されており、簡単に切り替えも可能 自動で一定時間動かしたり、一ステップごとの処理を自分で書いたりと、目的に応じて幅広く使える エラーに応じた最適なステップ幅の自動計算ができる(controlled_stepper) ステップごとではなく、任意の位置における積分値の取得も可能(dense output stepper) 速度と位置を両方おいかけるような、ハミルトン力

    C++で常微分方程式:boost::odeint入門 - Qiita
  • Boost.odeintの紹介 - Qiita

    この記事は C++ Advent Calendar 2014 18日目の記事です。色々とネタに迷った結果、まだ日語の解説記事が全然ないodeintを紹介することにします。(なぜこれほど日語での解説が少ないのか。。) Boost.Odeintとは 皆さんご存知Boostライブラリの1つで、常微分方程式を解くために使います。簡単にいうと という形をした方程式に対して使います。$x$は$t$に依存する変数、つまり$x=x(t)$ですね。これを解くアルゴリズムにはRunge-Kutta法(RK)やその改良版などがあります。Boost.OdeintはこのRK法を実装しています。GPGPUやMPI, OpenMPを利用した並列計算にも対応していますが、今回はそこまで説明しません。 いちばん簡単な方法 数値計算法に馴染みがない人も読むかもしれないので、上記の方程式を解くいちばん簡単な考え方を紹介しま

    Boost.odeintの紹介 - Qiita
  • boost::optionalをパターンマッチする関数 - Faith and Brave - C++で遊ぼう

    match function on sum types - std-proposals Vicenteさんが標準向けに提案していた関数を元に、boost::optional用のパターンマッチ関数を作ってみました。 実装 shand/match.hpp shand/type_traits/is_callable.hpp コード例 libs/match/example/match.cpp テスト libs/match/test/match.cpp インタフェース: // shand/match.hpp namespace shand { // 1引数版 template <class T, class F> void match(boost::optional<T>& x, F f); template <class T, class F> void match(const boost::op

    boost::optionalをパターンマッチする関数 - Faith and Brave - C++で遊ぼう
  • C++テンプレートメタプログラミング読み終わった−! - ::Eldesh a b = LEFT a | RIGHT b

    ちょっと文章が直訳っぽくてところどころ不自然だけど,丁寧にBoost.MPLの実装(と使い方)について解説してあってとても分かり易い! 個人的な需要にぴったり合ってたこともあると思うけど,MPLの基的なことを理解するにはかなり良い内容だと思います. ただ,表紙の宣伝文句(メタ言語としてのC++がマスターできる)というのはどうみても誇大広告w (勝手に汲み取った)対象読者 テンプレートの振る舞いが一通り分かる(気がする) ModernC++Designに洗脳された MPLを使いこなせているとは言えない なんという俺! 以下自分なりのダイジェスト. 前半 丁寧なBoost.MPLの解説. この前半の解説が分かり易かった. 書いてあることはMPLのリファレンスとほとんど同じ内容なので,それだけで分かる人はこの要らないかも. メタ関数転送(継承するだけ) typedefする手間が減る ネストし

    C++テンプレートメタプログラミング読み終わった−! - ::Eldesh a b = LEFT a | RIGHT b
  • Define and expansion of cpp macro

    2017/6/3に開催されたUnity道場 博多スペシャルの講演スライドです。 講師:安原 祐二(ユニティ・テクノロジーズ・ジャパン合同会社) 講演動画:https://youtu.be/uKWLPU8gfIY 知ってはいるけれどピンとこない、知ってはいるけれどピンとこない、そんなクォータニオンについて基となる概念からたっぷりと、丁寧に説明していきます。行列についても解説しますので、これからシェーダプログラミングに取り組もうとするエンジニアにも役に立つ内容です。数学に苦手意識のある人も、この機会にマスターしてしまいましょう! こんな人におすすめ ・プログラマ全般および数学に興味のある人 受講者が得られる知見 ・クォータニオンの意味 ・行列とクォータニオンの関係 ・数学的な背景 Unityのイベント資料はこちらから: https://www.slideshare.net/UnityTech

    Define and expansion of cpp macro
  • 二分探索法で作る再帰呼び出しできるCプリプロセッサマクロ

    7. でも #include <iostream> #include <boost/preprocessor/repetition/for.hpp> #include <boost/preprocessor/arithmetic/dec.hpp> #define M1(r, x) BOOST_PP_FOR(x, P, OP, M2) #define M2(r, x) x, #define P(r, x) x #define OP(r, x) BOOST_PP_DEC(x) int main() { int xs[] = { BOOST_PP_FOR(5, P, OP, M1) }; // A. for (auto x : xs) std::cout << x << ' '; } > 5 4 3 2 1 4 3 2 1 3 2 1 2 1 1 BOOST_PP_FORの中でBOOST_PP_

    二分探索法で作る再帰呼び出しできるCプリプロセッサマクロ
  • オーブンレンジ2014夏モデル

  • MySQLの実装にBoost.Geometryが使われはじめた - Faith and Brave - C++で遊ぼう

    Why Boost.Geometry in MySQL? MySQL 5.7のリリースから、そのビルドがBoostに依存するようになります。MySQLの幾何演算を、Boost.Geometryライブラリのコードに置き換えることになったからです。 近年、ロケーションベースのサービスが途方もない成長を続けており、MySQLがそのストレージとして重要視されるようになってきました。 MySQL 5.6時点でも、これまでGIS関係の機能は持っていましたが、その幾何アルゴリズムは多くのコーナーケース(Corner Case:めったに発生しない厄介なケース)を扱えませんでした。それを一つひとつ修正するか、既存のアルゴリズムを置き換えるか、どちらを選ぶかという選択肢で、MySQLはBoost.Geometryで既存アルゴリズムを置き換えることを選択したようです。 MySQLコミュニティはBoost.Geo

    MySQLの実装にBoost.Geometryが使われはじめた - Faith and Brave - C++で遊ぼう
  • 今更ながらに Boost.SmartPointers を考える - 野良C++erの雑記帳

    Smart Pointers というか主に shared_ptr ですが(scoped_ptr のこともたまには思い出してあげてね!)。 恐らくは散々ガイシュツなネタですが、まー「検索するのが面倒だ」って人の手助けになればいいかと思います。僕も検索するの面倒ですし。 というかこの記事書いてるときもロクに検索してないです。間違いとかあったらすみません。 疑問点とか有りましたら、自分で調べるか、あるいは僕に知らせてもらえると助かります。では、始めましょう。 [最終更新] 応用例にカスタムアロケータでの参照カウント管理を追加: 09/12/16 基的な使い道 まず基的なことについては、僕が説明するより、この動画を参照した方が速いでしょう: http://www.ustream.tv/recorded/2981654 それに対するついったーでの突っ込み: http://kiwofusi.sa

    今更ながらに Boost.SmartPointers を考える - 野良C++erの雑記帳
  • レビュー『Boost C++ Application Development Cookbook』 - Faith and Brave - C++で遊ぼう

    新たなBoost 『Boost C++ Application Development Cookbook』 id:wraith13 さんに送っていただいたので、読んでました。 このの内容を一言で表すと、boostjpサイトでやっている「Boost逆引きリファレンス」です。 Boostは100以上のライブラリが含まれている巨大なプロジェクトなので、どこから始めればいいかわからない、という方向けに、「こういうことがやりたい!」から「どうやれば?」と調べるになっています。 英語ですが非常に読みやすいので、初めて洋書を読む、という方はこのから取り組んでみると入りやすいんじゃないかと思いました。 このの各Tipsは、以下のような構成になっています。 こんなことがやりたい 前準備として、このライブラリのリンクと、このライブラリの知識が必要だよ それをどうやって実現するか この機能は内部的

    レビュー『Boost C++ Application Development Cookbook』 - Faith and Brave - C++で遊ぼう
  • Boost.Graphの設計と、最短経路アルゴリズムの使い方いろいろ

    pdf file is here: https://dl.dropboxusercontent.com/u/1682460/presentation/boost_14/bgl_design_and_shortest_path.pdfRead less

    Boost.Graphの設計と、最短経路アルゴリズムの使い方いろいろ
  • BoostのVisual Studio Debugger Visualizers - Faith and Brave - C++で遊ぼう

    Visual Studioには2005からDebugger Visualizersという機能がこっそり入っていて そのおかげでSTLコンテナの状態がデバッグウィンドウで見やすくなっています。 デフォルトでDebugger Visualizersが有効になっているので、 vectorをデバッグしてみると以下のようにデバッグウィンドウに表示されます。 Debugger Visualizersを無効にした場合は以下のように表示されます。 これを見れば、Debugger Visualizersのおかげでどれだけ見やすくなっているかがわかると思います。 なんだかよくわからない値ではなく、要素数と要素がはっきりわかるようになっています。 Debugger Visualizersは、コンパイラに同梱されたライブラリのみに適用されるだけでなく ユーザー定義のライブラリにも適用することができます。 Visu

    BoostのVisual Studio Debugger Visualizers - Faith and Brave - C++で遊ぼう
  • Boost.Variantで継承を置き換える - Faith and Brave - C++で遊ぼう

    この記事は、C++ Advent Calendar 2013の参加記事です。 今回は、継承を使ったプログラムを、Boost.Variantで置き換えてみよう、というチャレンジ記事です。 まず、継承を使った単純なプログラムを用意します。 update()メンバ関数という共通インタフェースを持ったクラスのオブジェクトをリストとして持つ、というよくあるプログラムです。 #include <iostream> #include <memory> #include <vector> #include <boost/range/adaptor/indirected.hpp> struct UpdateInterface { virtual void update() = 0; }; struct Background : public UpdateInterface { void update() o

    Boost.Variantで継承を置き換える - Faith and Brave - C++で遊ぼう
  • Leaning random using Boost Random

    6. 話さないこと • • • std::rand() 数学的な詳細 エンジンアダプタ • discard_block_engine(Boost, C++11) • shuffle_order_engine(Boost, C++11) • independent_bits_engine(Boost, C++11) • addive_combine_engine(Boost) • xor_combine(Boost) 8. 基的な使い方 • 以下は、メルセンヌ・ツイスター擬似乱数生成器と一様整数分布を使用し て、[0, 3](0以上3以下、と読む)の値を等確率で分布させる処理。 using namespace boost::random; random_device seed_gen; mt19937 engine(seed_gen()); uniform_int_distribution

    Leaning random using Boost Random