constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
![Constexpr 中3女子テクニック](https://cdn-ak-scissors.b.st-hatena.com/image/square/1c078eac3e0952a92b350cee486c1a812fa6c830/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fconstexpr-130623005714-phpapp01-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
Version 1.58.0 Boost 1.58.0リリースノート - boostjp いつものように、boostjpサイトで、リリースノートの日本語訳を作成して公開しています。 新ライブラリ 今回の新ライブラリは、以下の2つです。 Endian プロセッサのエンディアンに関係なく、適切なバイトオーダーに変換する型と関数。 Sort 一般的な状況でO(n*log(n))よりも高速な、ハイブリッドな基数ソートであるスプレッドソート(spreadsort)を含む。 主な更新内容 更新はたくさんありますが、目立ったところをいくつか列挙します。 Boost.Fusionのstd::tupleアダプトが正式サポートになった Flastさんががんばってpull requestを送りまくってくれました。お疲れさまでした。 Boost.Variantのapply_visitor()関数に、ジェネリックラ
この記事は、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 が使いやすかった と、いう勝手なイメージがあったからです。最後のが一番大きな理由でした。 でも、他のフレームワークのこと
これはC++ Advent Calendar 2012の5日目の記事です。 はじめに 気づくと最新のエントリが去年のAdvent calenderとなっていて一年ぶりの記事になってますね. やはりtwitterを始めるとblog書かなくなるというのは本当ですね.(そして迫る修士論文 今回は,去年と同じようにBoost::Graphに関する日本語情報の少ない機能について補完してきたいと思います. 本当であれば実装を追いたかったのですが,少し時間がないため使い方程度の記事としたいと思います. 本エントリでは, グラフに任意のプロパティを追加 追加したプロパティをdynamic_propertiesを使ってdot(graphviz)形式で入出力 といった話をしようと思います. グラフに任意のプロパティを追加 Boost::Graphでは,グラフの頂点やエッジに付加情報をつけるために,Boost:
デーモン系のプログラムになるとログは必須です。 C++でお仕事プログラムを書く時は、標準的にログプログラムが無いのでいつも悩みます。 最近(???)、boostにboost.Logというライブラリが入りました。 個人的には、C++ == C++ with Boost libなのでライブラリを使ってみた実験記録です。 実験で使用したboostバージョンは1.55となります。 しかし、改めて思ったが、boost難しい(ノД`)シクシク (今までのライブラリは、先人の方々の情報を参照参照させて頂けていたので、 何とかなっていましたが今回はヽ(;´Д`)ノ ) 今回作りたいもの ・コンソールにログを吐く。 ・指定されたログレベルでフィルタする。 ・ログ出力時のファイル名、行数、関数名を合わせて出力する。 ・実行時刻等のログに必要な情報を表示する。 基本的な考え方 boost.Logでは以下な考え方
この記事は C++ Advent Calendar 2014 の17日目の記事です.前日は @yutopp さんの Boost.Spirit.X3のご紹介 - C++ Advent Calendar 2014(16日目) でした. 最近 Boost.Spirit と LLVM で言語をちまちまと書いているので,Boost.Spirit と LLVM で言語つくるチュートリアルみたいなのを書こうと思ったのですが,チュートリアル用の言語の設計をあれこれ考えているうちに時間が経ってしまいました…ぼちぼち考えているので,別の機会に書きます. というわけで,今回は年の暮れということもあり,今年 GitHub の C++ Trending repositories で見た,気になるライブラリやフレームワーク7つについて紹介しようと思います. 紹介するライブラリやフレームワーク cppformat :
Boost の一部ながらも「実用的」すぎるため、とかくテンプレートメタプログラミングを愛好する諸兄から黙殺されてきた不幸のライブラリ、Boost.Python。Boost.勉強会でこいつの魅力を伝えようと思ったのだけど、時間の都合で無理だったので、簡単に紹介してみたい。 Boost.Python の基礎 Boost.Python は C++ のクラスや関数をラップする Python モジュールを恐ろしく簡単に書けるようにする、強力なライブラリである。 特に、Pyrex や Cython と比べて何がうれしいのかというと、 Python側にいちいちラッパ関数を書かなくてよい (テンプレートにより自動的に定義される) コンバータを登録することで、Python⇆C++の型の透過的な変換が容易にできる C++ のクラスを分かりやすい形で Python のクラスとして見せることが可能 といった点が挙
PyUblasはBoost.PythonとNumpyの間のデータ受け渡しをサポートする素敵ライブラリーだ. かなり便利. インストール方法は, 公式ドキュメントを参照. ただ, インストール過程で何箇所か戸惑う所があった. まず, コンパイルエラーが出たことと(const変数から非const関数が呼び出されていた), ライブラリの配置先がよくわからなかったこと. 前者の問題は, コードを書き換えて, 後者の問題はlocateで見つけた該当ファイルをパスが通った所にコピーして解決した. あんまりLinux使ってない人だと解決できないかも. 使ってみると結構便利, python側はpyublasをimportするだけでだいたい使えるし, C++側も #include <Python.h> #include <numpy/arrayobject.h> #include <boost/python
Boost.PythonとPyUblasに関して, 今まで適当に書いていた日記をまとめたもの. 詳細は過去の日記へのリンクをあちこちに貼ってある. 前書き Pythonは言わずと知れた非常に遅い言語だ. Pythonで大きなループを含む処理を書くことは即ち死を意味する. 例えば手元のthinkpad Core2Duo2.5GHzでは, Pythonで2つの500×500の行列同士の行列積を計算するのに29秒かかる. これは, C++では僅か0.6秒で終了することを考えると非常に遅い. (ただし, 乱数による行列の生成処理を含み, コンパイルオプションは-O2である) しかし世間は広く, この遅いPythonで数値解析をしたい奇特な人間がいるらしい. そこで恐らく今もっとも使われているライブラリがscipy(numpy)である. このscipyには様々な数値解析用の関数などが含まれている.
皆さんこんにちわ お元気ですか? さて、本日もBoostしようか。 本日はlistとdictについて さて、実はboost::pythonはvectorとかmapではなく、pythonの型に直して返すことができます。 こいつらです。 >>> a = [1,2,3,4] #list >>> b = {"foo","bar"} #dictionary さて、早速やってみましょう。 辞書型 C++ #include <vector> #include <map> #include <boost/python.hpp> using namespace std; template<class T1,class T2> boost::python::dict get_dict(map<T1,T2> &map_){ boost::python::dict py_dict; typename map<T1
scipyで書いたプログラムでも一部が遅くてそこをC++で実装したいというシナリオはよくある. それには色々な手段があるというのは以前の日記でも紹介した通り. 今回はBoost.Pythonでscipy/numpyのarray(ndarray)を取り扱う方法を説明する. 基本的な使い方はboost-python ではじめる大規模機械学習とかBoost.Python の機能をざっと紹介してみるも参考になる. 簡単な使い方 さて本題へ. boost.Pythonにおいてnumpy.ndarrayに対応するクラスは, boost::python::numericである. これは Boost.Python には、Python と C++ の型の相互変換を行うためのコンバータという機構が備わっており、すべての値の受け渡しにはこのコンバータが介在している。 とあるように, numpy.ndarray
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く