タグ

boostに関するnak2kのブックマーク (14)

  • 今更ながらに 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の雑記帳
    nak2k
    nak2k 2009/12/16
  • Boost.Python の機能をざっと紹介してみる - moriyoshiの日記

    Boost の一部ながらも「実用的」すぎるため、とかくテンプレートメタプログラミングを愛好する諸兄から黙殺されてきた不幸のライブラリ、Boost.Python。Boost.勉強会でこいつの魅力を伝えようと思ったのだけど、時間の都合で無理だったので、簡単に紹介してみたい。 Boost.Python の基礎 Boost.PythonC++ のクラスや関数をラップする Python モジュールを恐ろしく簡単に書けるようにする、強力なライブラリである。 特に、Pyrex や Cython と比べて何がうれしいのかというと、 Python側にいちいちラッパ関数を書かなくてよい (テンプレートにより自動的に定義される) コンバータを登録することで、PythonC++の型の透過的な変換が容易にできる C++ のクラスを分かりやすい形で Python のクラスとして見せることが可能 といった点が挙

    Boost.Python の機能をざっと紹介してみる - moriyoshiの日記
  • boost::spirit を使ってみる - IT戦記

    はじめに boost::spirit の使い方の勉強。ちょっとずつ追記していく形式で書く 基的なこと hpp ファイルと ipp ファイルの中で実装されているので、何もリンクしなくていい。 とりあえず boost/spirit.hpp を読み込めば使えるみたい。 まず、一番シンプルな空文字列のパース #include <iostream> #include <boost/spirit.hpp> int main(int argc, char** argv) { using namespace boost::spirit; // 空文字列 std::cout << parse("", end_p).full << std::endl; // 1 (成功という意味)と表示 // "a" std::cout << parse("a", end_p).full << std::endl; //

    boost::spirit を使ってみる - IT戦記
  • Kazuho@Cybozu Labs: C++ で自動型変換

    « なんとなくリフレクション in C++ | メイン | Pathtraq の API を公開しました » 2008年06月27日 C++ で自動型変換 C++ の拡張ライブラリである boost には、lexical_cast というライブラリがあって、iostream への入出力ができる型ならなんでも文字列化 (その逆も) できるので、とても便利です。でも、lexical_cast は、int → long のような変換の場合にも iostream を使った変換をしてしまうので、汎用のリフレクションコードを書こうとすると、そのままでは使いにくいです (オーバーヘッドが大きすぎる)。というわけで、変換前後の型に応じて、static_cast と lexical_cast を自動的に切り替えるようなキャスト関数を作ってみました。こんな感じで使います。 // calls lexical_c

  • Boost.Python のような手軽さで C++ で PHP の拡張モジュールを書ける「Mozo.PHP (仮称)」 - moriyoshiの日記

    えー、久しぶりにですます調です。日の第2回PHP拡張勉強会でグダグダながらもちょこっと発表させていただいた、あのライブラリについての紹介です。 ダウンロードは以下からできます。 http://www.voltex.jp/downloads/mozo-php-20080324.tar.bz2 最新版はこちら >> http://voltex.jp/downloads/mozo-php-20080405.tar.bz2 2009-08-10 追記: 現在は Boost.PHP という名前で以下の場所で開発中です。 http://github.com/moriyoshi/boost.php なぜMozo.PHPを作ったのか Boost.Python という、Boost Project の一部である変態ライブラリがあるのですが、これは Python の拡張をおおよそ C++ とは思えないような書

    Boost.Python のような手軽さで C++ で PHP の拡張モジュールを書ける「Mozo.PHP (仮称)」 - moriyoshiの日記
  • Boost.Python - 1.85.0

    Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Synopsis Welcome to Boost.Python, a C++ library which enables seamless interoperability between C++ and the Python programming language. The library includes support for: References and Pointers Globally Registered Type Coercions Automatic Cross-Module

  • C++ の std::vector に v += 3, 1, 4 で push_back - てっく煮ブログ

    c++boost::assign使ってみた - Faith and Brave - C++で遊ぼう にて boost::assign の使い方が紹介されていた。 #include #include #include #include using namespace std; using namespace boost::assign; int main() { vectorint> v; v += 3, 1, 4; // !!! for(unsigned int i = 0; i return 0; } おおおおお、なんかすごい…!普通なら v.push_back(3); v.push_back(1); v.push_back(4); と書かなきゃならないところを v += 3, 1, 4; と書ける。自分の C++ の常識からするとびっくりするような書き方なのだけど、C++ では

    nak2k
    nak2k 2007/12/11
  • Boost Document Translation Project Home Page

    [ Japanese | English ] In this project, we are translating the document of Boost C++ Libraries into Japanese. If you are interested in this project, please join us!! For details, see also how to join. Boost C++ Libraries http://www.boost.org/ Project Home Page http://boost.cppll.jp/ Mailing List http://lists.sourceforge.jp/mailman/listinfo/boostjp-developer Workspace (Sourceforge.jp) http://source

  • 関数をpipeにする - p_stade;

    関数呼び出しのシンタックスは醜い Range Library Proposalではoperator|を使った回避策が提案されている これはRangeに限った話ではないので、result_ofを使って書こう (実装) []#include[] []<boost/utility/result_of.hpp>[] []#include[] []<pstade/pipable.hpp>[] []int[] []increment[][]([][]int[] []i[][])[] []{[] []return[] []i[][] + [][]1[][];[] []}[] []int[] []decrement[][]([][]int[] []i[][])[] []{[] []return[] []i[][] - [][]1[][];[] []}[] []int[] []multiply[][]([]

    関数をpipeにする - p_stade;
    nak2k
    nak2k 2006/12/06
    関数呼び出しシンタックスの醜さをoperator | で対処。なるほど・・・。
  • 2006-06-08

    Iterator/Descriptor/PropertyMap による抽象化は非常に完成度が高く, Boost.Graph に限らず,汎用プログラミングの1つの高度な到達点だと思っていて,これによってとりあえずプログラムが走るようにデータ構造をでっち上げておいてから,後でデータ構造をちょこちょこ変えるということが「ユーザ側のコードの変化を全く伴わずに」可能になるという強烈な利点があり(ただし,この恩恵を得るためにはユーザ側のコードがきちんと Iterator/Descriptor/PropertyMap の Concept のみに基づいて書かれていないといけない),さらに極端なケースとして,データ構造をメモリ上に全く展開することなく,全てを Iterator/Descriptor のインタフェース内部で on-the-fly でデータ構造を現出させているかのような仕様変更にすら「ユーザ側の

    2006-06-08
    nak2k
    nak2k 2006/11/15
  • boost::GUIライブラリの紹介。他のGUIライブラリの一覧とかあって素敵 - tuedaの日記

    nak2k
    nak2k 2006/08/27
  • Let's Boost

    Boost C++ Libraries の紹介サイトです。 :: by Google はじめに ご挨拶 Boost のインストール方法 参考リンク集 ニュース ◆ Version 1.42.0 と 1.41.0 対応 (2010/03/14) 新規ライブラリに関する Let's Boost のページ…: property_tree (汎用木構造型コンフィグ管理) / uuid (ユニークID生成器) ◆ RSS つけました (2009/08/28) ◆ Version 1.40.0 と 1.39.0 対応 (2009/08/28) 新規ライブラリに関する Let's Boost のページ…: Signals2 (Signal/Slotライブラリ改良版) ◆ Version 1.38.0 と 1.37.0 対応 (2009/02/22) 新規ライブラリに関する Let's Boost のペー

    nak2k
    nak2k 2005/12/21
    Boost C++ライブラリ紹介サイト。正規表現やらC++でクロージャやら。
  • Function kamada_kawai_spring_layout - 1.84.0

    nak2k
    nak2k 2005/09/27
    自動レイアウト
  • Boost C++ Libraries

    Boost C++ Libraries ...one of the most highly regarded and expertly designed C++ library projects in the world. — Herb Sutter and Andrei Alexandrescu, C++ Coding Standards Welcome to Boost.org! Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a br

    Boost C++ Libraries
  • 1