2013-02-01から1ヶ月間の記事一覧

たった 20 行のコードでひたすらアイドル水着画像をあつめる(C++ + cpp-netlib だよ)

これの cpp-netlib 版です。 cpp-netlib: The C++ Network Library 最新版だとヘッダーオンリーで使えないっぽいのでライブラリをビルドしてリンクする必要があります。 [ソース] #include <boost/network.hpp> #include <boost/xpressive/xpressive.hpp> #include <iostream> int main(){ namespace http = boost::networ</iostream></boost/xpressive/xpressive.hpp></boost/network.hpp>…

たった 37 行のコードでひたすらアイドル水着画像をあつめる(C++ + Boost.Asio だよ)

たった10行のコードでひたすらアイドル水着画像をあつめる - UT Startup Gym たった 4 行のコードでひたすらアイドル水着画像をあつめる(Python だよ) - maeharinの日記 たった3行のコードでひたすらアイドル水着画像をあつめる(Rubyだよ) - Memo いまさら…

clang に Generalized attributes が実装されていた

気がついたら clang の SVN に Generalized attributes が実装されたみたい。 C++98 and C++11 Support in Clang Generalized attributes Alignment support あと Alignment support も何か更新されたのかな。 Inheriting constructors はよ。

unite-menu の設定

vim

わたしが使用している unite-menu の設定晒し。 unite-menu を使っていない方の参考になればと。 if !exists("g:unite_source_menu_menus") let g:unite_source_menu_menus = {} endif " unite-shortcut {{{ let g:unite_source_menu_menus.shortcut = { \ "…

quickrun-outputter-replace_region つくった

vim

この記事は Vim Advent Calendar 2012 86日目の記事になります。 Vimmer の Advent Calendar は、 まだ続いています。 [quickrun-outputter-replace_region] 元ネタ Mac を使っているなら必ず使うべき2つの機能 "Automator" と "サービス" - kurainの壺 quic…

quickrun.vim で実行時間を計測して出力する

vim

quickrun-hook-time を使用することで quickrun.vim が実行した処理の実行時間を最後に出力します。 ただし、この時間には quickrun.vim 自体のオーバーヘッドも含まれているので注意して下さい。 [使い方] :QuickRun -hook/time/enable 1 " -hook/time/enab…

httpstatus コマンドで(ry

元ネタ httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる! - tokuhirom's blog. httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる! - Big Sky httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる! - ゆ…

unite-qfixhowm をちょっと改良した

vim

あと絞り込み時にエラーになっていたバグも修正。 [unite-source を分割] 以前は unite-qfixhowm の先頭に新規のメモを作成する候補を用意していたんですが、それを切り離して、unite-qfixhowm/new として定義しました。 unite-qfixhowm では既存のメモのみ…

User-defined literals で固定長の Boost.Multiprecision を生成の続き

昨日の続き。 昨日とは違い、その数値が収まる 2のn乗のビット幅を使用するようにしてみました。 [ソース] #include <boost/multiprecision/cpp_int.hpp> template<char ...cs> struct chars{}; constexpr bool operator <=(chars<>, chars<>){ return true; } template<char ...cs> constexpr bool operator <=(chars<></char></char></boost/multiprecision/cpp_int.hpp>…

User-defined literals で固定長の Boost.Multiprecision を生成

template で受け取る User-defined literals を定義すれば sizeof...(cs) で数値の長さ(桁数)が取得出来ます。 template<char ...cs> constexpr std::size_t operator "" _cpp_int(){ return sizeof...(cs); } static_assert(1234_cpp_int == 4, ""); static_assert(12</char>…

Boost.Multiprecision と Boost.Flyweight でフィボナッチ数列

まぁ Boost.Flyweight でメモ化されているフィボナッチ数列のコードを Boost.Multiprecision で置き換えただけなんですが。 [ソース] #include <iostream> #include <boost/multiprecision/number.hpp> #include <boost/multiprecision/cpp_int.hpp> #include <boost/flyweight.hpp> #include <boost/flyweight/key_value.hpp> #include </boost/flyweight/key_value.hpp></boost/flyweight.hpp></boost/multiprecision/cpp_int.hpp></boost/multiprecision/number.hpp></iostream>

Boost.Multiprecision を User-defined literals を使って初期化

こういう時こそ User-defined literals の出番! ってことでやってみました。 [ソース] #include <boost/multiprecision/cpp_int.hpp> #include <string> boost::multiprecision::cpp_int operator "" _cpp_int(char const* str){ return boost::multiprecision::cpp_int(str); } int main(){ // 文字列</string></boost/multiprecision/cpp_int.hpp>…

Boost.Multiprecision を文字列で初期化

Boost.Multiprecision は数値以外にも文字列で初期化する事が出来ます。 [ソース] #include <boost/multiprecision/cpp_int.hpp> #include <boost/multiprecision/cpp_dec_float.hpp> #include <string> boost::multiprecision::cpp_int operator "" _cpp_int(char const* str, std::size_t){ return boost::multiprecision::cpp_int(str); } int</string></boost/multiprecision/cpp_dec_float.hpp></boost/multiprecision/cpp_int.hpp>…

Boost.Multiprecision の constexpr 対応

Boost.Multiprecision では固定長オブジェクトのコンストラクタが constexpr に対応しているみたいです。 演算子は未対応みたいですが。 Literal Types and constexpr Support - boost [ソース] #include <boost/multiprecision/cpp_int.hpp> #include <boost/multiprecision/number.hpp> int main(){ namespace bm = boost::mult</boost/multiprecision/number.hpp></boost/multiprecision/cpp_int.hpp>…

突然のヴァレンタインに備える

vim

この記事は Vim Advent Calendar 2012 76日目の記事になります。 さて、今日はヴァレンタイン! もしかしたら突然 という風に大統領が襲ってくるかも知れない!! と、いう事で突然のヴァレンタインに備えましょう。 [プラグイン] vim-sudden_valentine - gi…

Boost.Multiprecision を触ってみた

Boost 1.53.0 で多倍長整数ライブラリである Boost.Multiprecision が追加されたのでフィボナッチ数列を出力してみた。 コード自体はベタ書き。 [ソース] #include <iostream> #include <boost/multiprecision/cpp_int.hpp> int main(){ typedef boost::multiprecision::cpp_int int_type; int_type first</boost/multiprecision/cpp_int.hpp></iostream>…

unite-qfixhowm を公開

vim

[注意] 少し挙動を変更しました。 詳しくはこちらを。 前々から手元では使っていたんですが qfixhowm を unite.vim から操作する unite-qfixhowm を vimrc から切り離して github に上げました。 多分そのまま使えると思います。 [プラグイン] unite-qfixhow…

neobundle.vim の遅延処理で Vim の起動を高速化する

vim

この記事は Vim Advent Calendar 2012 73日目の記事になります。 今回は最近実装された neobundle.vim の遅延読み込み処理をわたしが把握している範囲で簡単にまとめてみたいと思います。 neobundle.vim でプラグインの遅延読み込み行うことで Vim の起動の…

Vim script の関数名について

vim

昨日の vimrc読書会でちょっと話題になったので覚書程度に。 信ぴょう性は薄いです。 さて、Vim script の関数名なんですが基本的には次のようなルールで使用することが出来ます。 " 関数名には基本的に英数字と '_' が使用出来る " グローバル関数 " どこか…

Boost.Coroutine でフィボナッチ

リハビリがてら軽く書いてみました。 [ソース] #include <iostream> #include <boost/coroutine/all.hpp> template<typename C> void fibonacci(C& c){ typedef typename C::arg_type value_type; value_type first = 0; c(first); value_type second = 1; c(second); while( 1 ){ value_type third = first </typename></boost/coroutine/all.hpp></iostream>…

Vim のユーザ定義コマンドで式を受け取って評価する場合の注意点

vim

Vim のコマンドではこんな感じに受け取った式をそのまま評価する事が出来ます。 command! -nargs=1 Echo echo <q-args>." = ".string(<args>) Echo 1 + 1 " => 1 + 1 = 2 上記のようなコマンドでは関数のローカル変数や関数の引数などを渡して評価する事も出来ます。 funct</args></q-args>…

quickrun.vim で琴浦さん

元ネタ:そんなにvimvimしちゃダメよ(コシコシコシ) - じゃ、ま、いっか shabadou.vim に追加してみました。 1360245642*[vim]QuickRun -hook/koshikoshi/enable 1

vim-jp に tips というコンテンツが追加されてた

vim

ちょっと前に vim-jp に tips というコンテンツが追加されたので宣伝。 Vim に関するTipsなどを紹介 - vim-jp vim-jp.org に tips というコンテンツを追加した - Memo 何か追加したい記事等があれば vim-jp へ直接 pull request すればいいみたいです。 逆引…

Boost 1.53.0 がリリース

Boost 1.53.0 がリリースされました。 Version 1.53.0 - boost 日本語版リリースノート - boostjp 1.53.0 では次のライブラリが新しく追加されます。 Atomic: C++11-style atomic<>, from Helge Bahmann, maintained by Tim Blechmann. Coroutine: Coroutine…

第10回 C++オンラインを行いました

C++

わたしは参加できなかったんですが jyample さんと Ohkuma さんに代わりに進めて頂きました。 ありがとうございました。 わたしはまだちょっと動けないので後からまたログ等を確認しておきます。 (多分、水〜木曜日から落ち着く予定。 第10回 C++オンライン…

そうだ Vim で画像を表示させよう

vim

この記事は Vim Advent Calendar 2012 65日目の記事になります。 いやー今年も Vim と過ごすクリスマスが楽しみですね! まだまだ参加者は募集中なのでまだ未参加の人はどさくさに紛れて記事を書いてみるのもいいともいます。 また、既に参加して2週目をやり…

Vim script で改行時に自動的に \ を挿入したい

vim

Vim script では複数行に渡る処理を記述する場合、先頭に \ を書く必要があります。 " こんな感じで次の行に続けて処理を書く場合は先頭に \ を付ける必要がある NeoBundleLazy 'Shougo/vimfiler', { \ 'depends' : ["Shougo/unite.vim"], \ 'autoload' : { …

neobundle.vim で Lazy したコマンドの引数を補完する

vim

:NeoBundleLazy では次のように設定することで設定したコマンドが呼び出された時に自動的に :NeoBundleSource を行なってくれます。 " :Unite が呼び出された時に自動的に " :NeoBundleSource unite.vim " が呼び出される NeoBundleLazy "Shougo/unite.vim",…