2011-05-01から1ヶ月間の記事一覧

Vim で簡単に colorscheme をプレビューする方法

vim

Unite を使用すれば、簡単に colorscheme のプレビューを行うことが出来ます。 colorscheme を選択すれば、自動的に現在のバッファに適用された状態を見ることが出来ます。 [プラグイン] Unite unite-colorscheme [コマンド] :Unite -auto-preview colorsche…

Vim で C++ のコーディングを行うなら知っておきたい10のこと

第二弾?わたしが普段 C++ のコーディングを行っている時の機能とか、プラグインとかのまとめです。 逆にいうと、これぐらいしか知らないので、もっと便利な機能があれば教えてください。 結構ざっくりと書いたので、分からないことがあれば、コメントか Twi…

vim-ref

vim

導入しました。 ref-alc がいい感じですね。 導入方法はここら辺を参照に。 あと lynx の場合にうまく取得できなくて、原因を調べて死にそうになったので、メモ。 自分の環境(Windows)で、コマンドラインから lynx を使用すると、 Configuration file "/us…

mpl::switch_ で、タグディスパッチ

んーこれであってるのかな? 何気にタグディスパッチは初めて使ったかも知れない。 mpl::switch_ と組み合わせてみました。 #include <boost/mpl/has_xxx.hpp> #include <boost/mpl/switch.hpp> #include <boost/mpl/always.hpp> #include <boost/mpl/vector.hpp> namespace mpl = boost::mpl; template<typename Vec, int N> struct at_c_impl{ BOOST_MPL_HAS_XXX_TRAIT_DEF(</typename></boost/mpl/vector.hpp></boost/mpl/always.hpp></boost/mpl/switch.hpp></boost/mpl/has_xxx.hpp>…

Boost.Proto をぺろぺろしてみる

ベクトル型の Expression Template を実装してみた。 すごく適当です。 こんな感じですか分かりません>< #include <iostream> #include <boost/proto/proto.hpp> namespace proto = boost::proto; struct vec{ int value[3]; }; vec make_vec(int x, int y, int z){ vec v = {x, y, z}; retu</boost/proto/proto.hpp></iostream>…

clang_complete に非同期処理が追加されたっぽい

なんかスレッド回りの処理が追加されたっぽいです。 実装自体は、libclang.py で行っている、libclang を使ってないと反映されないかも。 実際にどこら辺が非同期になっているのかわかりませんが、コード補完自体はそれっぽくなっている感じ? 全体的に重く…

clang_complete にデフォルトで、&path をインクルードディレクトリに追加する機能が追加

されました。 デフォルトで、&path の中身が -I オプションに追加されるので、g:clang_auto_user_options に直接インクルードディレクトリを記述する必要がなくなりました。 インクルードディレクトリを追加する場合は、path に追加してください。 使用する…

c_array つくった。

すでに誰得感が漂っていますが……。 [ソース] #include <boost/mpl/vector.hpp> #include <boost/mpl/vector_c.hpp> #include <boost/mpl/range_c.hpp> #include <boost/range/algorithm/for_each.hpp> #include <boost/range/algorithm/equal.hpp> #include <boost/lambda/lambda.hpp> #include <boost/assert.hpp> #include </boost/assert.hpp></boost/lambda/lambda.hpp></boost/range/algorithm/equal.hpp></boost/range/algorithm/for_each.hpp></boost/mpl/range_c.hpp></boost/mpl/vector_c.hpp></boost/mpl/vector.hpp>

mpl::for_each にループカウンタを付ける

mpl::zip_view と mpl::range_c を使えば、割と簡単に実装出来ました。 [ソース] #include <boost/mpl/vector.hpp> #include <boost/mpl/vector_c.hpp> #include <boost/mpl/range_c.hpp> #include <boost/mpl/for_each.hpp> #include <boost/mpl/zip_view.hpp> #include <boost/mpl/at.hpp> #include <boost/mpl/size.hpp> #include <iostream> n…</iostream></boost/mpl/size.hpp></boost/mpl/at.hpp></boost/mpl/zip_view.hpp></boost/mpl/for_each.hpp></boost/mpl/range_c.hpp></boost/mpl/vector_c.hpp></boost/mpl/vector.hpp>

SingleCompile 2.8.2beta が非同期実行を実装

vim

vim.org:http://www.vim.org/scripts/script.php?script_id=3115 bitbucket:https://bitbucket.org/xuhdev/singlecompile/src SingleCompile で、非同期実行を行うためには Python 2.6 以上を導入する必要があります。 let g:SingleCompile_asyncrunmode =…

Boost.勉強会 #5 名古屋

Boost.勉強会といいつつ、Boost の発表が殆どない詐欺まがいな勉強会らしいです(えー。 開始直前になって、UST 配信がされない気づく C++er が続出して、ソウルジェムが穢れていました。 そんな状態の中、迅速なご対応ありがとうございました。 やっぱり、…

template class に対応した、is_same の実装

前回:http://d.hatena.ne.jp/osyo-manga/20110429/1304095021 とりあえず、やりたい事は出来た感じです。 以下、Variadic Templates 禁止。 ☆使い方 #include <vector> #include <string> #include <map> #include <boost/mpl/assert.hpp> #include <boost/mpl/vector.hpp> #include <boost/tuple/tuple.hpp> #include <boost/variant/variant.hpp> templat…</boost/variant/variant.hpp></boost/tuple/tuple.hpp></boost/mpl/vector.hpp></boost/mpl/assert.hpp></map></string></vector>

Boost.Variant 型かのチェック

is_variant 的な。 #include <boost/variant/variant.hpp> #include <boost/mpl/bool.hpp> template<typename T> struct is_variant : boost::mpl::false_{}; template<BOOST_VARIANT_ENUM_PARAMS(typename T)> struct is_variant<boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)> > : boost::mpl::true_{}; #include </boost::variant<boost_variant_enum_params(t)></boost_variant_enum_params(typename></typename></boost/mpl/bool.hpp></boost/variant/variant.hpp>

C++ で Boost.MPL を始めるなら知っておきたい10のこと

元ネタ:HerokuでWebアプリ開発を始めるなら知っておきたい10のこと いいぜ、誰も書かないっていうなら、まず、俺が(ry。 と、そんな感じで、元ネタとの関係性は全くありませんが、『広めるためにはまず自分から……』って事で。 多分、誰も後に続かないだろ…

関西ゲームプログラミング勉強会 #oustudy

例によって、UST配信で参加。 便利な世の中ですね。 とりあえず、分かっているだけの資料だけまとめ。 感想とか適当なのでスルーしてくだしあ。 ATND :http://atnd.org/events/14697 USTREAM:http://www.ustream.tv/user/oustudy/videos ONE-UP :http://w…

Boost.Lambda で使用されている演算子のオーバーロードをユーザ側で定義する

Boost.Lambda の仕組みなんかをまとめようとすると、わたしの頭がオーバーロードしてしまうので、覚書程度に。 ぶっちゃけ、間違ってるかも知れないので適当に。 さて、次のような『演算子をアダプタとして使用する』コードでは Boost.Lambda を使用する事は…

template 引数を MPL の Sequence として扱う

template class の引数を MPL Sequence としてアダプトしてみた。 [ソース] template<typename T> struct template_args; #include <boost/mpl/equal.hpp> #include <boost/mpl/assert.hpp> #include <vector> #include <utility> namespace mpl = boost::mpl; template<typename T, typename U> struct hoge{}; BOOST_MPL_ASSERT(( mpl::equal…</typename></utility></vector></boost/mpl/assert.hpp></boost/mpl/equal.hpp></typename>

vim で括弧の補完

vim

補完といっても閉じ括弧を自動挿入するのではなく、『""』等を入力した場合に自動的に左(括弧内)に移動するだけのスクリプト。 " カッコの補完 inoremap "" ""<Left> inoremap () ()<Left> inoremap {} {}<Left> inoremap '' ''<Left> inoremap <> <><Left> 『""』等を入力した時のみに左</left></left></left></left></left>…

QuickFix の該当箇所をハイライトする hier.vim plugin

Vim Scripts : http://www.vim.org/scripts/script.php?script_id=3564 github : https://github.com/jceb/vim-hier hier.vim は、QuickFix の該当箇所のハイライトを行ってくれるプラグインです。 SingleCompile だと、コンパイルエラーを QuickFix で出力…