[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

Boostに関するbabydaemonsのブックマーク (20)

  • 実践C++応用講座 第29回 マルチプラットフォームなスタック・トレースその2 | Theolizer®

    こんにちは。田原です。 前回はboostライブラリに含まれるスタック・トレース機能の基的な使い方を解説しました。前回の使い方は通常のコンテキストで使用できます。しかし、スタック・トレースはもっとクリティカルなコンテキストでも使いたいです。特に「ぬるぽ」などの不正メモリ・アクセスが発生した時がその筆頭と思います。これはSIGSEGV等のシグナルで捕まえることができますが、このシグナル・ハンドラーのコンテキストはかなり特殊でできないことが盛りだくさんです。その中でのスタック・トレースのとり方について解説します。 1.まずはboostのドキュメントから Handle terminates, aborts and Segmentation Faultsにシグナル発生時のスタック・トレースのとり方が解説されています。 ポイントは、シグナルは非同期に発生する「割り込み」処理なのでスタック・トレースの

    実践C++応用講座 第29回 マルチプラットフォームなスタック・トレースその2 | Theolizer®
  • 実践C++応用講座 第28回 マルチプラットフォームなスタック・トレース | Theolizer®

    (実際にはこの前後にもう少し履歴がありますし、ビルド・モードによって内容が異なります。詳しくは後述します。) さて、上記プログラムのbar()関数でスタック・トレースを出力することを知っているので意味付けできますが、どこでスタック・トレースを出力したのか知らない時(普通はこちらです)、単なるアドレスのリストを見ても何が何やら分からないですね。 そこで、コード内のアドレスとソースの位置を対応付けるためのデバッグ用シンボルを利用して、上記アドレスをソースへ対応付けることができます。例えば、次のような出力を得られます。 1# bar at c:\cpp-school2\12.stack_trace\stack_trace.cpp:36 2# foo at c:\cpp-school2\12.stack_trace\stack_trace.cpp:42 3# main at c:\cpp-scho

    実践C++応用講座 第28回 マルチプラットフォームなスタック・トレース | Theolizer®
  • Boost.uBLAS で逆行列 - yanoの日記

    Boost.uBLASを使い始めて,一番最初に疑問に思うことの多くは 「uBLASには逆行列を計算する関数はないのか」 だと思います. 残念ながらuBLASにはそのような関数はありません. しかし,多くの先人が既にこの問題を解決してくれています. 具体的には次のサイトを参考にすればよいと思います. boost::numeric::ublas 線形代数ライブラリの使い方 LU Matrix Inversion Effective UBLAS/Matrix Inversion 以下に私が実装した例を紹介します.といっても,上記のサイトのコードに変更を少し加えただけですが. math.hpp #ifndef MATH_HPP_20080914 #define MATH_HPP_20080914 #if defined(_MSC_VER) && (_MSC_VER >= 1020) # pragm

    Boost.uBLAS で逆行列 - yanoの日記
  • boostをVisual Studio 2019で使う方法 | PCの歯車

    この記事は、Windows の Visual Studio 2019 で boost を導入した際のメモです。 目次はじめに環境Windows 10 Home(64bit)Visual Studio Community 2019注意boost には、ビルドなしで使える機能も多くあります。そのため、利用したい機能がビルド不要な場合、必ずしもビルドをする必要はありません。 どの機能がビルド不要なのかは、boostjpを見れば分かります。 手順1.ダウンロードboost 公式から「boost◯◯.zip」をダウンロードします。 boostのダウンロード今回は「boost_1_70_0.zip」をダウンロードしました。以降、「1_70_0」などの表記は、ご自身がダウンロードしたバージョンに読み替えてください。 2.解凍ダウンロードしたファイルを解凍します。Windows 標準の展開を使っても良いで

    boostをVisual Studio 2019で使う方法 | PCの歯車
  • Google Test ユーザーが Boost.Test を使ってみた

    この記事は、C++ Advent Calendar 2012: 17日目の記事になります。 お題は「Google Test ユーザーが Boost.Test を使ってみた」です。 (2012/12/27: 補足記事を書きました。) これまで、C++ の testing framework には Google Test を使ってきたのですが、 この機会に Boost.Test に挑戦したいと思います。 今年2月に行われた「Boost.勉強会 #8 大阪」の参加報告で Boost.Test 使うぜ!っと意気込んでおいて今更かという感じではありますが・・・ では、なぜ今まで使わなかったのかというと boost の導入がめんどくさそう 日語情報が少ない Google Test が使いやすかった と、いう勝手なイメージがあったからです。最後のが一番大きな理由でした。 でも、他のフレームワークのこと

    Google Test ユーザーが Boost.Test を使ってみた
  • Boost 数学関係ライブラリの使い方

    boost::numeric::ublas 線形代数ライブラリの使い方 連立方程式を解く・逆行列を求める DT Specials -> Boost -> boost::numeric::ublas 線形代数ライブラリの使い方 Last update : Jan. 13th, 2005 はじめに この文書は,線形演算ライブラリ boost::numeric::ublas の使い方の一部を簡単に説明したものです. どうも boost ― uBLAS については日語の説明書きがないようです.頼みの日語解説書[2]も uBLAS はたった 2 ページ.Web をあさっても私の希望にあう解説は見あたりません.仕方がないので英語のオリジナルドキュメントと格闘しました.その結果,なんとか連立1次方程式を解くことと,逆行列を求めることはできるようになったので,私と同じようなお悩みを抱えて Web を巡

  • 文字列と相互変換できる列挙型(enum) - kryozahiro’s diary

    stringとenumを双方向で変換できてかつPODなのが欲しくなったので書きました。内部の変換テーブルにはboost::bimapを使っています。 特徴としては 双方向に変換できる 実行時 POD型 boost::bimapなので速い(後述) などです。 使用例 ENUM_UTILの実装は(長いので)記事の最後にあります。 #include <iostream> #include "EnumUtil.h" using namespace std; //文字列変換できるenum ENUM_UTIL(Number, ZERO, ONE, THREE = 3, ); //クラス内にも定義可能 class MyClass { ENUM_UTIL(Fruit, APPLE, BANANA, ORANGE); }; int main() { //文字列との相互変換 Number zero = Num

    文字列と相互変換できる列挙型(enum) - kryozahiro’s diary
    babydaemons
    babydaemons 2016/02/25
    C++でこういうの、面白い!
  • mutexの制約とバイナリセマフォ - yohhoyの日記

    C++11標準ライブラリのstd::mutexオブジェクトでは、ロック取得/解放を同一スレッド*1から行わなければならない。(N3337 30.2.5.2/p3) m.unlock() Requires: The current execution agent shall hold a lock on m. この制約条件のため、下記コードのmutexオブジェクト利用は未定義動作(undefined behavior)を引き起こす。 #include <thread> #include <mutex> std::mutex mtx; // mutexオブジェクト int resource; // 保護対象のリソース void proc() { // resourceを使う処理B mtx.unlock(); // (2) NG:別スレッドでロック解放...したい //... } int mai

    mutexの制約とバイナリセマフォ - yohhoyの日記
  • Boost Tour 1.50.0 All

    1. Boostライブラリ一周の旅 ver.1.50.0(Merge) 高橋晶(Akira Takahashi) id:faith_and_brave @cpp_akira Boost.勉強会#10 2012/07/28(土) 3. Boostとは • C++標準化委員会の人たちが作ったC++のライブラリ群 • 普段のプログラミング全般で使える基的なものから、専門 特化したものまでいろいろなライブラリがある • Google、Intel、Adobeも開発に関わっている • ライセンスはBoost Software License 1.0 – 無償で商用利用可能 – 著作権表記の必要なし – ソースコードの改変自由 4. 今回紹介するライブラリ 01.Accumulators 23.Format 45.Meta State Machine 67.Signals2 02.Algorithm

    Boost Tour 1.50.0 All
  • Boost.uBLAS で逆行列 - lapack版 - yanoの日記

    今回は前回実装した逆行列を lapack を用いて実装してみます. 前回と同様にまずLU分解をして,その結果を基に逆行列を計算する流れになります. LU分解は前回と同じく lapack.dgetrf を用います.その結果を lapack.dgetri に渡すだけで逆行列を計算できます. LU分解のときのように行列を一生懸命切り出す必要がないため,非常に簡単に実装できうれしい限りです. 以下に私の実装例を示します. math.hpp #ifndef MATH_HPP_20081014 #define MATH_HPP_20081014 #if defined(_MSC_VER) && (_MSC_VER >= 1020) # pragma once #endif #include <boost/numeric/ublas/fwd.hpp> namespace math { void inve

    Boost.uBLAS で逆行列 - lapack版 - yanoの日記
    babydaemons
    babydaemons 2013/09/28
    ブクマしてたのに試さなかったのはなぜだろう??
  • 株式会社エス・スリー・フォー » ‘置換’はどうやればいいのですか?

    ‘置換’はどうやればいいのですか? そうですよね、’検索’ができたならその次は’置換’でしょう。置換すなわち文字列のある部分を他の文字列で置き換えるのは、単なる’検索’より少しばかり複雑です。 charやwchar_t配列を文字列として用いている場合、’置換’はひどく面倒な処理が必要となります。’置換’によって文字列の長さが変わらないのなら何の問題もないのですが、文字列の一部をより短い文字列で置き換える場合、置き換える箇所の後ろに続く部分を短くなった分だけ前に詰めなくてはなりません。また、より長い文字列で置き換える場合、置き換える箇所の後ろに続く部分をより後ろにズラさなくてはなりません。困ったことにcharやwchar_t配列の長さを知ることができませんから、置換による領域あふれの危険が常につきまといます。 それに対し標準C++ライブラリが提供する文字列クラスstd::basic_stri

    babydaemons
    babydaemons 2013/09/14
    Boost勉強しないとなー
  • RAII - Wikipedia

    RAII(Resource Acquisition Is Initialization)は、日語では「リソース取得は初期化である」「リソースの確保は初期化時に」「リソースの取得と初期化」などの意味を持ち、資源(リソース)の確保と解放を、クラス型の変数の初期化と破棄処理に結び付けるというプログラミングのテクニックである。特にC++とD言語で一般的であり、デストラクタをサポートしないC言語などに対する優位性や利便性のうちのひとつとなっている。 RAIIでは、資源の取得をクラス型変数の構築(初期化)時に、また返却を破壊時に行う。特にプログラムの制御フローが自動変数の属するブロックを抜けるとき、その変数のデストラクタが自動的に呼ばれるため、デストラクタを適切に記述したクラス型変数の寿命が終わるとすぐに資源が返却されることが保証できるようになる。これは例外が発生したときでも同様であるため、RAII

    babydaemons
    babydaemons 2012/08/22
    当たり前の習慣にこのような名前があったとは。
  • BoostでC++0xのライブラリ「TR1」を先取りしよう (1)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    BoostでC++0xのライブラリ「TR1」を先取りしよう (1)
  • BoostでC++0xのライブラリ「TR1」を先取りしよう (5)

    はじめに C++の新しい規格「C++0x」では、言語とライブラリの両面から便利な機能が追加されます。「TR1」(Technical Report 1)はC++0xのライブラリ部で、標準C++に新たに追加されるライブラリの多くはBoostの中から選ばれたものです。2008年春にリリースが予定されているVisual Studio 2008にも追加パッケージとして供給されるとの情報を得ています。 TR1に収録されたクラス/関数の中からいくつかをピックアップし、その概要と使い方を予習しておきましょう。これまでの一連の「TR1」解説ではBoostの実装を使ってきましたが、今回紹介する unorderedコンテナはBoostには含まれていません。そのため前述の追加パッケージ、Visual C++ 2008 Feature Pack Betaを使います。Feature Pack Betaは現時点では英語

    BoostでC++0xのライブラリ「TR1」を先取りしよう (5)
  • http://takagi.in/modules/devenv1/

  • 研究日誌: MinGWでboost

    2008年3月2日 MinGWでboost boostは次のC++の標準になると言われているC++用ライブラリです. 正規表現など色々なライブラリが揃っていて非常に便利です. インストール方法はこの辺を参照してください.基的にはインクルードパスを通してヘッダファイルをインクルードするだけです. しかしながら,一部ライブラリファイルにリンクを張る必要がある上,そのライブラリファイルは自分で作成する必要があります. というわけで作成メモ. 1.ここからboost_1_34_1.zipとboost-jam-3.1.16-1ntx86.zip,boost-jam-3.1.16をダウンロードしてきて解凍. 2.解凍したboost_1_34_1フォルダに残り2ファイルを解凍した中身をそっくりコピー. 3.コマンドプロンプトでboost_1_34_1に移動して,以下のコマンドを叩く. この際,注意事項

  • boostインストールメモ(MinGW) - やんち研究所 @ ウィキ

    事前にMinGWがセットアップされている必要があります。 使用した環境: MinGW「gcc (GCC) 3.4.2 (mingw-special)」 OS「Microsoft Windows 2000 [Version 5.00.2195]」

    boostインストールメモ(MinGW) - やんち研究所 @ ウィキ
  • Boostのインストール

    今回はMinGW環境下にBoostをインストールしてみます。 Boostの多くはテンプレートとして提供されていますが、正規表現ライブラリ(regex)等、ライブラリを必要とするものもあります。 今回は正規表現ライブラリ(regex)の使用を考慮にいれインストールしてみます。 Boost 1.33.1 のインストール Boost 1.33.1 の入手 BoostはBoostのホームページのダウンロードページ からダウンロードできます。SourceForgeよりのダウンロードになります。 File Releases から boost_1_33_1.zip と boost-jam-3.1.11-1-ntx86.zip をダウンロードします。 boost_1_33_1.zip は boost体です。boost_1_33_1.exe(自己解凍形式の圧縮ファイル)でもかまいません。 boost-ja

  • 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++で遊ぼう
  • Let's Boost - インストール方法

    インストーラやパッケージを使う方法 一番簡単な方法です。コマンド一発でインストール完了です。 ただし、下記以外の開発環境や、最新バージョンリリース直後などは、 パッケージ化が追いついていないことがあります。 その場合手動での Boost のダウンロードやビルド、設定が必要になります。 → 手動インストール Visual C++ の場合 Visual C++ 7.1~10.0 用のインストーラが boostpro で公開されています。 ビルド済みライブラリが自動インストールできます。 Cygwin gcc の場合 CygwinのインストーラでBoostを一緒にインストールできます。 「Devel」カテゴリの「boost」と「boost-dev」を選択してください。 UNIX系環境の場合 大抵のディストリビューションでパッケージ化されているようです。 yum install boost boo

  • 1