タグ

boostに関するHoriuchi_Hのブックマーク (12)

  • DateTimeライブラリを書きました - Faith and Brave - C++で遊ぼう

    Boost.DateTimeが使いにくかったので、日時計算を目的とした簡単なDateTimeライブラリを書きました。 SHAND_DATE_TIME_CUSTOM_NOW_TIMEをdefineすることで、現在日時を返す関数を書き換えることができるようになるので、Testableです。 フォーマット指定は、strftimeを参考に、よく使うものだけを採用しました。 shand/date_time.hpp #ifndef SHAND_DATE_TIME_INCLUDE #define SHAND_DATE_TIME_INCLUDE #include <cstddef> #include <ctime> #include <map> #include <boost/xpressive/xpressive_static.hpp> #include <boost/xpressive/regex_a

    DateTimeライブラリを書きました - Faith and Brave - C++で遊ぼう
  • ライブラリをビルドせずにBoost.Threadを使う - Faith and Brave - C++で遊ぼう

    Boost.Systemがソースファイルをインクルードしてたので、参考にして書いてみた。 boost_thread_header_only.hpp #ifndef HEADER_ONLY_BOOST_THREAD_INCLUDE #define HEADER_ONLY_BOOST_THREAD_INCLUDE #ifndef BOOST_ERROR_CODE_HEADER_ONLY #define BOOST_ERROR_CODE_HEADER_ONLY #endif #ifndef BOOST_THREAD_NO_LIB #define BOOST_THREAD_NO_LIB #endif #ifndef BOOST_DATE_TIME_NO_LIB #define BOOST_DATE_TIME_NO_LIB #endif #include <boost/config.hpp> #in

    ライブラリをビルドせずにBoost.Threadを使う - Faith and Brave - C++で遊ぼう
  • 新型scope guard - デ-mk6

    以前にも何回か書いているスコープガードネタですが(これ、これ、これ)、http://d.hatena.ne.jp/faith_and_brave/20100921/1285049653 とか http://d.hatena.ne.jp/gintenlabo/20100921/1285084859 から、なんかtwitterで話のネタになってたので、ちゃんとC++0xで使えるカッコイイスコープガード作りましたよ! #include <iostream> #include <functional> #include <utility> #define PP_CAT(a, b) PP_CAT_I(a, b) #define PP_CAT_I(a, b) a ## b template<typename F> struct scope_exit_t { scope_exit_t(F & f) :

    新型scope guard - デ-mk6
  • boost::serializationの使い方

    boost::serializationを使う はじめに コンパイル 簡単な使い方 クラスのバージョン付け 読み込みと書き込みで別の動作を行う 「非侵入型」のシリアル化関数 基底クラスをシリアル化する 配列をシリアライズする constメンバはどうするか ポインタからのシリアライズ:その1 ポインタからのシリアライズ:その2 基底クラスへのポインタから復元する 実装レベル オブジェクトの追跡 抽象クラスでのエラー NVP ロケールの設定 はじめに boost C++ Libraries(以下単にboost)という非常に便利なライブラリがあります。 次期C++標準にこのライブラリのうちのいくつかが採用されるらしいという話もあり、 C++開発者にとっては無視して通れないライブラリです。 そんなboostの中に、serializationというライブラリがあります。 一言で言ってしまえば、「クラ

  • Library for libraries - Cube Lilac

    C++は何を間違えたのか: 人生を書き換える者すらいた。より. 2009/12 のBoost.勉強会で一番記憶に残ってるのが,id:faith_and_brave がプレゼン中に何度か使っていた「Library for libaries」と言う言葉でした.この言葉には,Boost などが提供するライブラリには「“エンドユーザ”(アプリケーションを作成するプログラマ)は,別に知らなくても使えなくても問題のないライブラリが数多く存在する」と言う意味も含まれています. いくつか言語を触りましたが,個人的な主観では今でも C++ が書いていて一番心地良いです.これは,私がライブラリ脳 だからと言う事もあります.C++ は他言語よりも「うまくライブラリを書く」ための機能やライブラリが充実しているように感じます.例えば,他言語だと実行時に型チェックをして型毎に必要な処理を記述するようなものが,テンプレ

    Horiuchi_H
    Horiuchi_H 2010/08/16
    しかし、C++を最初にみると言語仕様の多さに圧倒されて、どこまで覚えればいいのかと途方にくれる気もする。まあ、Effective C++嫁でもいいけどw
  • Account Suspended

    Account Suspended This Account Has Been Suspended

    Horiuchi_H
    Horiuchi_H 2010/07/27
    ソース配布なら、使用するboostのバージョンを固定する。libが必要なものは使わないor libも配布するとかで対応できるような?
  • N3059

    👻 道化師 🃏 @wraith13 次の(  )に当てはまる適切な言葉を述べよ。(10点):「(std::)tie が(  )していてよ。」 [電波注意] 2010-04-28 00:43:41

    N3059
  • Boostの遊び方(ライブラリまとめ)

    私は「Boostを使って」ではなく「Boostを作って」勉強している 仕事ではBoostを使いたくても使えないことが多いだろう (「フリーのライブラリなんて使っちゃダメ」とか言われて) そこで、Boostの必要なもののみを作って使用している 各機能をヘッダーファイル1で提供できるので移植もしやすいだろう このブログで紹介したものを以下にまとめる(※随時更新) 【Boost家】 Boost C++ Libraries Boost C++ Libraries(cppllによる翻訳) 【Boostからの移植】 ・shared_ptr 参照カウント付きスマートポインタ ・shared_array 参照カウント付きスマートポインタの配列版 ・array 固定長配列 ・lexical_cast 数値と文字列の相互変換 ・type_traits 型特性 ・scope_guard ・static_as

    Boostの遊び方(ライブラリまとめ)
  • 動的削除子 (dynamic deleter) - 意外と知られていない? boost::shared_ptr の側面 - Cry’s Diary

    boost::shared_ptr は動的削除子 (dynamic deleter) と呼ばれる技法に基づいて実装されています.この動的削除子という技法で重要なのは, boost::shared_ptr が最終的に呼び出す解放処理が boost::shared_ptr のテンプレート引数の型に関係なく,コンストラクタに実際に渡されたポインタの型で,かつ boost::shared_ptr のコンストラクタの呼び出しの段階で 決定する,ということです. 以下のようなコードが,動的削除子の効果が一番分かりやすい例になるでしょう. class X{ public: ~X() { std::cout << "X::~X" << std::endl; } }; class B{ public: ~B() // virtual でないことに注意!! { std::cout << "B::~B" <<

    動的削除子 (dynamic deleter) - 意外と知られていない? boost::shared_ptr の側面 - Cry’s Diary
    Horiuchi_H
    Horiuchi_H 2010/04/05
    boost::shared_ptr の deleterについて。
  • 紫ログ:C++のテストフレームワークを試食 - livedoor Blog(ブログ)

    TopCoderの為に少しやる気になってきたところで、Macでフリーで使える C++ のテストフレームワークをいくつか試してみたのでメモ。 CppUnit - C++ Port of JUnit CxxTest googletest - Google C++ Testing Framework Boost.Test CppUnitはテストの記述が若干面倒な気が。表示はシンプルで悪くない。 CxxTestはインストール方法が他と違って少し悩んだが、記述量が少なくて取っつきやすかった。 googletestは記述量が少なめで、赤と緑のカラー表示コンソールで、マクロの種類も豊富。ASSERT マクロと EXPECT マクロの対応も分かりやすい。但し、出たばかりで日語での情報が少ない。 Boost.Testは普段Boostに慣れ親しんでいるなら良いかも。マクロの種類は多め。 とりあえず、goog

  • Boost Test Library Unit Test Framework のサンプル - メモの日々(2009-05-26)

    運動のため、ときどき家まで歩いて帰ってみている。1時間くらいで帰れる。 暇は終了している。今はC++を使っています。 ■ [c++][dev] Boost Test Library Unit Test Framework のサンプル Boost Test Libraryに含まれているUnit Test Frameworkを使ったのでサンプルをメモ。 手元のBoostのバージョンは1.37、最新は1.39のようだ。 サンプルソース test_main.cpp、vector_test1.cpp、vector_test2.cpp の3つのファイルを作った。 テストの構成は色々あるようだが、dynamic library variant方式にした。BOOST_TEST_DYN_LINK を define すればいいみたい。 dynamic library variant方式の場合は BOOST_T

    Boost Test Library Unit Test Framework のサンプル - メモの日々(2009-05-26)
    Horiuchi_H
    Horiuchi_H 2009/11/09
    最近の boost::unit_testの使い方。BOOST_TEST_DYN_LINKを定義しなければ、staticにリンクができる。
  • BOOST_AUTO_TEST入門 - Seasons.NET

    BOOSTのユニットテストは、手軽で便利だけど、やはりsuiteを作って addしないといけないので、これが面倒。気軽さがない。 でも、そんな人の為にAUTO_TESTというものがあります。 BOOST_AUTO_TEST_CASEを追加し、次々とテストを追加していけばOKです。 非常に簡単ですね。 テストしたくないテストは、ifdefで囲ってもいいんではないでしょうか。 #include "stdafx.h" #include <iostream> #include <vector> #include <string> // このdefineを必ず定義して、下でboost/test/auto_unit_test.hppをincludeすること。 #define BOOST_AUTO_TEST_MAIN #include <boost/test/auto_unit_test.hpp> BO

    BOOST_AUTO_TEST入門 - Seasons.NET
  • 1