タグ

boostに関するyukimori_726のブックマーク (24)

  • Boost.Python の機能をざっと紹介してみる - moriyoshiの日記

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

    Boost.Python の機能をざっと紹介してみる - moriyoshiの日記
  • Boost - C++入門

    Boost は、C++のライブラリ開発者のコミュニティとオープンソースのライブラリの名前です。C++に新しい機能を提供します。また、新しい機能の実験場としても機能しています。C++11やC++14などにBoostの成果が取り込まれています。 読み方 Boost ぶーすと 概要 Boostは、C++の規格への影響やC++の標準ライブラリの実験場として機能しています。C++11やC++14など、いろいろな影響を受けて実装されています。 Boost のライセンスは、 Boost Software License です。 商用、非商用を問わず、無償で利用できます。 使い方は、C++ライブラリで紹介します。 インストール boostのインストール‏‎をご参照ください。 boostライブラリ Boost Boostのインストール boost::find boost::sort boost::accum

  • boost.asioのタイムアウト処理を綺麗に書く方法教えて! - Qiita

    はじめに boost.Asioでは、非同期処理のタイムアウト処理を当然行うことが出来るが 一般的なソケットのような、関数にタイムアウト時間を設定するような簡易な方法ではない 非同期処理とは別に、タイマーWaitを非同期で書き、非同期処理が終了すればタイマーをキャンセルし タイマーが先に来れば 非同期処理をキャンセルしタイムアウト処理を行う という 冗長な処理が必要である それを、どのようにラップすればきれいに書けるのか?という話 まずはベタに書いてみる // タイムアウトを設定 deadline_timer.expires_from_now( boost::posix_time::milliseconds(timeout_ms)); deadline_timer.async_wait( [=](const boost::system::error_code &ec) { // タイムアウト

    boost.asioのタイムアウト処理を綺麗に書く方法教えて! - Qiita
  • boost.Asioを半年使っわかったこと - Qiita

    C++ Advent Calendar 2015も21日目 もうすぐ メリー・クリスマスですね。 昨日は Iさんの C++ AMPでGPGPU!でした わたしは残念ながらDirectX11が使えるPCを持っていないので AMPは試せないのですが GPGPUは楽しいですね わたしは、boost.asioのまとめです。 はじめに なぜ boost.Asioが必要だったか お仕事の関係で、お客さんにC++で高速なステートフルサーバを作って欲しい C++で! という要望が来たので。 boostに頼る理由 C++11、14 と、標準ライブラリが増え、threadも使えるようになった が、未だネットワーク通信関連は標準ライブラリになっていないため boost.Asioを採用した boost.Asioはネットワークに特化したライブラリではなく、非同期I/Oのライブラリで タイマー、ファイルの非同期等、色

    boost.Asioを半年使っわかったこと - Qiita
  • Boost.AsioでHTTP通信 - C++と色々

    HTTP通信をするプログラムを書いてみました。WinScok2とBoost.Asioでそれぞれ書いてみました。簡単にするためにTCPで同期通信するプログラムです。WinSockの参考に「でもわかるWindowsプログラミング」を使ったのでアクセスするページがそうなっていますが、特にそれ以上の意味はありません。 WinSock //WinSockでHTTP通信を行う #include <WinSock2.h> #include <iostream> #include <string> using namespace std; int main() { WSADATA wsadata;//ソケット情報を格納する構造体 //WinSockの初期化 if (WSAStartup(MAKEWORD(2, 2), &wsadata) != 0) { cout << "winsock startup

    Boost.AsioでHTTP通信 - C++と色々
  • デジタル・フロンティア-Digital Frontier | DF TALK

    デジタル・フロンティア-Digital Frontier | DF TALK
  • netlib で HTTP Server を書いてみた - C++でゲームプログラミング

    Boost.Asio だけだとしんどそうだったので netlib でちょっと書いてみました。 [環境] netlib 0.9.5 Boost 1.53.0 Visual Studio 2010 [ソース] #include <boost/network/include/http/server.hpp> struct hello_world{ typedef boost::network::http::server<hello_world> server; void operator ()(server::request const &request, server::response &response){ namespace http = boost::network::http; typedef server::string_type string; string ip = http:

    netlib で HTTP Server を書いてみた - C++でゲームプログラミング
  • Boost.Rangeってなに - Qiita

    Boost.Rangeが流行っている気がするので解説します。それぞれの細かい機能についてはリファレンスを見てね。この記事はBoost.Rangeが分からない人、特に全く知らない向けの記事になっているため、boostが1ミリも分からなくても読める記事になっているつもりです。なお、私がこの記事を書く上で使用したBoostのバージョンは1.60.0です。リファレンスは以下です。URLをちょっといじれば好きなバージョンに飛べると思います。 http://www.boost.org/doc/libs/1_60_0/libs/range/doc/html/ なお、標準ライブラリのアルゴリズムヘッダも参照のこと。 http://en.cppreference.com/w/cpp/algorithm Boost.Rangeとは イテレータ対(iterator pair)というイディオムを応用発展させたbo

    Boost.Rangeってなに - Qiita
  • Boost.Functionの実装技術(1) - Type Erasure - Faith and Brave - C++で遊ぼう

    Boost.Functionの実装方法はいくつかのサイトで紹介されているので(こことかここ) 私もBoost.Functionの実装技術について解説しよう Boost.FunctionではType Erasure(型削除型消去)というテクニックが使用されている 実際にBoost.Functionを作りながら解説しよう Boost.Functionは関数ポインタと関数オブジェクトを保持するようになっているので 今回は以下の使い方ができるように実装する int func(); struct func_obj { int operator()(); }; // 関数ポインタ・関数オブジェクトの保持 function<int> f1 = func; function<int> f2 = func_obj(); // 関数ポインタ・関数オブジェクトの実行 int result_func = f1()

    Boost.Functionの実装技術(1) - Type Erasure - Faith and Brave - C++で遊ぼう
  • 闇魔術を触ってみた

    4. BOOST_PP • boost¥preprocessor.hppに入ってるマクロ群 • 講座でやったコンパイル時より前、プリプロセス時にやる闇魔術 • TMPとかではできないとんでもないことができる • 一昨日唐突に使いたくなった • C言語でも使えるのかなぁ(誰か試してぽよ) • C++的コードに組み込んで使用例にしてますが別にC的な使い方も出来ます 5. 例えば BOOST_PP_ADD • 足し算してくれる • 例えばBOOST_PP_ADD(3,5)で8に展開される BOOST_PP_BOOL • 渡したものが1から255に展開されるなら1、そうでないなら0 • 例えばBOOST_PP_BOOL(10)で1に展開される • 闇っぽくないな? 6. プリプロセッサでは • 型も値もクソもなく2+5とかいう式も評価されない • すなわちさっきのマクロではきちんと5とかで渡さな

    闇魔術を触ってみた
  • C99からC++14を駆け抜けるC++講座 - Qiita

    C++初心者Advent Calendar 2015 この記事はC++初心者Advent Calendar 2015 17日目の記事です <<9日目 |Clang with Microsoft CodeGenがでたので試す <<16日目 | ブログズミ: Boost.Test v3 を使ってみた || 18日目 | それC++なら#defineじゃなくてもできるよ | とさいぬの隠し部屋 >> はじめに みなさま、ナマステ。さて、この記事のタイトルを見て、「時代・・・サトウキビ・・・忍者・・・うぅ、頭が」となった人は私と趣味が似ています・・・って話はどうでもいいか。 よく、「C++はBetter Cとしてはじめればいい」みたいな話を聞くのでそれにそって一気にC++14まで駆け抜けようと思います。 ちなみにC99を知らない人はお断りです。さようなら。 でははじめますか。 しっかし書き終わって

    C99からC++14を駆け抜けるC++講座 - Qiita
  • Compiling Boost with GCC or Clang on macOS | Solarian Programmer

    Compiling Boost with GCC or Clang on macOS Posted on August 7, 2018 by Paul In this article I will show you how to build the Boost libraries under macOS with GCC 8 or Clang. Once the libraries are installed, we’ll test the build with a short demo of using Boost Filesystem. First, you will need to download the latest stable version of Boost, I will use version 1.68.0. Extract the archive and open a

  • boost::thread - negationの日記

    Boost::threadのコンストラクタは中々ピーキーだなぁと思った。 まず次のようなコードはエラーになる class A{ public: void f(int x){ std::cerr << x << std::endl; } void A(){ boost::thread th(&A::f, 1); //Boost 1.36以上だと、boost::bindは要らない } }; int main(void){ A a; } これがエラーになる理由は、クラスAのメンバ関数fがstaticでないから。なのでこういうのは通る。 class A{ public: static void f(int x){ std::cerr << x << std::endl; } void A(){ boost::thread th(&A::f, 1); } }; int main(void){ A a

    boost::thread - negationの日記
  • boost::threadでマルチスレッド処理 - yattのブログ

    boostにポータブルなマルチスレッドライブラリがあるのを知ったので使ってみた。 セマフォ、条件変数なんかも用意されているっぽいので機会があったら使ってみようと思う。 /* * 参考 * http://www.boost.org/doc/libs/1_31_0/libs/thread/doc/thread.html#class-thread * http://www.kmonos.net/alang/boost/classes/bind.html */ #include<iostream> #include<string> #include<boost/format.hpp> #include<boost/thread.hpp> #include<boost/bind.hpp> using namespace std; void greeting() { cout << "Hello, W

    boost::threadでマルチスレッド処理 - yattのブログ
  • boost::serializationでほげほげうまうま | さかな前線

    オブジェクトをまるごとファイルに書きだしたりネットワークに送ったりしたいとき内容を直列化し再構築することやその仕組みをシリアライズと呼び,boostではserializationライブラリによって実現できます. どのような形のデータ列に落としこむか?という話で,boost::serializationはテキスト,XML,バイナリの3種類がサポートされています. 分かりやすいページ 僕なんかの記事よりは,他の方の記事を見たほうがいいと思います. Boost.Serializationで遊んでみた – Faith and BraveC++で遊ぼう – さっと雰囲気を見るのにいいです letsboost::serialization – 同上. 定番ですね boost::serializationの使い方 – 詳しくみるのに最高 サンプルプログラム ということでこうやって使おうというサンプ

  • c++とboostを用いたシリアライズ - bxyxvzz’s diary

    シリアライズとは? シリアライズとは メモリ上に存在するオブジェクトを、バイト列に変換する処理. このバイト列が、1列に並んでいるため、シリアライズと呼ばれる。 反対の操作はデシリアライズと呼ばれる. いつ使われる? シリアライズは、オブジェクトをファイルなどに保存したり、ネットワーク送信したりする際によく利用される。 C++でのシリアライズ 〜クラスをシリアル化できるようにしよう〜 標準ライブラリとして、iostreamといったストリーム入出力ライブラリで、バイト列の入出力は可能だが,オブジェクトをバイト列に変換する機能はない. Boostライブラリを使うことで、これは解決可能である. 具体的にはboost::serializationというシリアライズライブラリが提供されている. これの使い方を以下で説明する. コード:クラスをシリアライズする クラスにserialize member

    c++とboostを用いたシリアライズ - bxyxvzz’s diary
  • Boost

    Boost とはC++ のためのオープンソースライブラリのことで、 いろいろと便利なライブラリを含んでいます。 例えば、乱数発生だとか、特殊関数の計算だとかができます。 ただ、使い方がちょっと分かりにくいので、 備忘録としてメモを書いておきます。 なお、Ubuntu のバージョンは 10.04LTSです。 注意: あくまで個人的な備忘録ですので、 Boostライブラリについての理解や使い方について、 これで正しいと保証するものではありません。 この記事を元に何かをした結果、 何らかの損害が発生したとしても、 当方は一切の責任を負いません。 実行は自己責任でお願いします。 参考サイト boost.org boostjp インストール まず C++ のコンパイラ g++ は標準ではインストールされていないので、

  • boost::serializationの使い方

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

  • boost.pythonで学んだあれこれ - Qiita

    boost.pythonを使ってみてあれこれ学んだことを書いてみたいと思います。 モジュールのグローバル変数を追加する やりたいこと

    boost.pythonで学んだあれこれ - Qiita
  • 【C++】Mac に Boost を インストールした

    C++ で HTTP 通信がしたくなったのですが, その目的に関しては C++ の標準ライブラリには便利なものが用意されていないらしいので, 泥臭い処理は自分で書きたくないからライブラリ使いたいので色々調べた結果, Boost.Asio (ネットワーク系を頑張ってるライブラリ) をラップした cpp-netlib というライブラリが便利そうなので, 使ってみることにしました. このライブラリは Boost をフルに使ったものらしいので, まずは Boost インストール から始めます. 目次 Boost って何? まずは Boost インストール Boost ビルド 次の日: 動かしてみる Boost って何? 私は C++ ガチ初心者なので当によく分からないのですが, なんだか 「C++ すごい人たちが 皆 こぞって使っている スーパー C++ ライブラリ」 というイメージです!(((

    【C++】Mac に Boost を インストールした