2013-02-01から1ヶ月間の記事一覧
これの 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>…
たった10行のコードでひたすらアイドル水着画像をあつめる - UT Startup Gym たった 4 行のコードでひたすらアイドル水着画像をあつめる(Python だよ) - maeharinの日記 たった3行のコードでひたすらアイドル水着画像をあつめる(Rubyだよ) - Memo いまさら…
気がついたら clang の SVN に Generalized attributes が実装されたみたい。 C++98 and C++11 Support in Clang Generalized attributes Alignment support あと Alignment support も何か更新されたのかな。 Inheriting constructors はよ。
わたしが使用している 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 = { \ "…
この記事は Vim Advent Calendar 2012 86日目の記事になります。 Vimmer の Advent Calendar は、 まだ続いています。 [quickrun-outputter-replace_region] 元ネタ Mac を使っているなら必ず使うべき2つの機能 "Automator" と "サービス" - kurainの壺 quic…
quickrun-hook-time を使用することで quickrun.vim が実行した処理の実行時間を最後に出力します。 ただし、この時間には quickrun.vim 自体のオーバーヘッドも含まれているので注意して下さい。 [使い方] :QuickRun -hook/time/enable 1 " -hook/time/enab…
元ネタ httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる! - tokuhirom's blog. httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる! - Big Sky httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる! - ゆ…
あと絞り込み時にエラーになっていたバグも修正。 [unite-source を分割] 以前は unite-qfixhowm の先頭に新規のメモを作成する候補を用意していたんですが、それを切り離して、unite-qfixhowm/new として定義しました。 unite-qfixhowm では既存のメモのみ…
昨日の続き。 昨日とは違い、その数値が収まる 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>…
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.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>
こういう時こそ 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 は数値以外にも文字列で初期化する事が出来ます。 [ソース] #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 に対応しているみたいです。 演算子は未対応みたいですが。 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 Advent Calendar 2012 76日目の記事になります。 さて、今日はヴァレンタイン! もしかしたら突然 という風に大統領が襲ってくるかも知れない!! と、いう事で突然のヴァレンタインに備えましょう。 [プラグイン] vim-sudden_valentine - gi…
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>…
[注意] 少し挙動を変更しました。 詳しくはこちらを。 前々から手元では使っていたんですが qfixhowm を unite.vim から操作する unite-qfixhowm を vimrc から切り離して github に上げました。 多分そのまま使えると思います。 [プラグイン] unite-qfixhow…
この記事は Vim Advent Calendar 2012 73日目の記事になります。 今回は最近実装された neobundle.vim の遅延読み込み処理をわたしが把握している範囲で簡単にまとめてみたいと思います。 neobundle.vim でプラグインの遅延読み込み行うことで Vim の起動の…
昨日の vimrc読書会でちょっと話題になったので覚書程度に。 信ぴょう性は薄いです。 さて、Vim script の関数名なんですが基本的には次のようなルールで使用することが出来ます。 " 関数名には基本的に英数字と '_' が使用出来る " グローバル関数 " どこか…
リハビリがてら軽く書いてみました。 [ソース] #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 のコマンドではこんな感じに受け取った式をそのまま評価する事が出来ます。 command! -nargs=1 Echo echo <q-args>." = ".string(<args>) Echo 1 + 1 " => 1 + 1 = 2 上記のようなコマンドでは関数のローカル変数や関数の引数などを渡して評価する事も出来ます。 funct</args></q-args>…
元ネタ:そんなにvimvimしちゃダメよ(コシコシコシ) - じゃ、ま、いっか shabadou.vim に追加してみました。 1360245642*[vim]QuickRun -hook/koshikoshi/enable 1
ちょっと前に vim-jp に tips というコンテンツが追加されたので宣伝。 Vim に関するTipsなどを紹介 - vim-jp vim-jp.org に tips というコンテンツを追加した - Memo 何か追加したい記事等があれば vim-jp へ直接 pull request すればいいみたいです。 逆引…
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…
わたしは参加できなかったんですが jyample さんと Ohkuma さんに代わりに進めて頂きました。 ありがとうございました。 わたしはまだちょっと動けないので後からまたログ等を確認しておきます。 (多分、水〜木曜日から落ち着く予定。 第10回 C++オンライン…
この記事は Vim Advent Calendar 2012 65日目の記事になります。 いやー今年も Vim と過ごすクリスマスが楽しみですね! まだまだ参加者は募集中なのでまだ未参加の人はどさくさに紛れて記事を書いてみるのもいいともいます。 また、既に参加して2週目をやり…
Vim script では複数行に渡る処理を記述する場合、先頭に \ を書く必要があります。 " こんな感じで次の行に続けて処理を書く場合は先頭に \ を付ける必要がある NeoBundleLazy 'Shougo/vimfiler', { \ 'depends' : ["Shougo/unite.vim"], \ 'autoload' : { …
:NeoBundleLazy では次のように設定することで設定したコマンドが呼び出された時に自動的に :NeoBundleSource を行なってくれます。 " :Unite が呼び出された時に自動的に " :NeoBundleSource unite.vim " が呼び出される NeoBundleLazy "Shougo/unite.vim",…