2013-04-01から1ヶ月間の記事一覧
簡単に描画できるらしいのでちょっと使ってみた。 [ソース] #include <QtGui/QApplication> #include <QtWebKit/QtWebKit> int main(int argc, char* argv[]){ QApplication app(argc, argv); QWebView view; view.load(QUrl("http://www.google.com/")); view.show(); return app.exec(); } [出力] </qtwebkit/qtwebkit></qtgui/qapplication>…
先日の unite.vim の更新で表示形式が変更され、今まで unite.vim のバッファに表示されていたデータが statusline へと表示されるようになりました。 しかし、statusline を使用している為、このままでは vim-powerline と併用して使用する事はできません。…
この記事は Vim Advent Calendar 2012 149日目の記事になります。 さて、最近では C++ のライブラリも git や svn で公開・開発されている事が多くなってきたと思います。 これらのライブラリを使用する場合は git clone でリポジトリを落としてきたり git p…
某部屋が Qt 部屋になりつつあったので Qt 部屋が出来ました。 Qt Users - lingr 特にこれといった制限もないので Qt に興味のある人とかが来ればいいと思います。 むしろわたしは Qt がわからないので来て下さい!!(他力本願。
Qt の connect は便利なんですが slot で簡単な処理を行う場合にわざわざ QObject を継承したクラスのメンバ関数で処理を書かなければいけなかったり、Q_OBJECT を付ける必要があったり、クラスは独立したヘッダーファイルで定義しなければいけなかったりと…
最新版の Clang では C++1y の機能がいくつか実装されているみたいなので試してみた。 現在、実装されている機能 Binary literals Member initializers and aggregates C++11 で実装された Uniform initialization と Member-initializers は併用して使用す…
この記事は Vim Advent Calendar 2012 145日目の記事になります。 さて、先日 vimrc読書会でとある vimrc を読んでいると次のような感じに を多用しているマッピングがありました。 nnoremap <A-p> :%s//hoge/g<Left><Left><Left><Left><Left><Left><Left> これは何をやっているのかというと :%s//hoge/g を</left></left></left></left></left></left></left></a-p>…
[関連] :wviminfo 時に Vim が落ちる - vim-jp/issues 昨日見つけて vim-jp へと報告し、既に mattn さんが(ありがとうございます)vim_dev へ投げているのでそのうち修正されると思います。 [reanimate.vim を使用している場合に注意] reanimate.vim では …
ClangCheck の -fixit オプションを使用すればエラーメッセージで出力される『did you mean 〜』の辺りをいい感じに修正してくれます。 [main.cpp] void func1(int n) const{ } int main(){ typedef int integer; integre n = 0; func(n); return 0 } [コマ…
Clang の clang-tools-extra に含まれている ClangCheck を使ってみました。 ClangCheck は Clang の LibTooling を使用したシンタックスチェッカーです。 LibTooling - Clang 3.3 documentation ClangCheck - Clang 3.3 documentation [main.cpp] void func…
ClangがC++11を完全実装! 繰り返す、C++11を完全実装 - 本の虫 C++98, C++11, and C++14 Support in Clang - Clang と、いうことらしいので早速コンパイルして試してみました。 [ソース] struct foo{ constexpr foo(int x, int y, int z) : x(x) , y(y) , z…
いま気づいたんですが ideone が gcc 4.7.2 に対応していました。 http://ideone.com/JLhxGM これでヒャッハーかと思ったんですがどうやら boost には対応しなくなったっぽいです…。 かなしい。 ところで Vim script にはまだ対応しないんですかね。
この記事は Vim Advent Calendar 2012 139日目の記事になります。 さて、Vim を使っていると突然 Qt をビルドしたい!と思うことがあります。 そんな時に quickrun.vim に予め qmake を行う設定を書いておけば Vim で Qt のコードを書いてすぐにビルドし、実…
[追記] さっき気づいたんですが cpp11-migrate を行うとインクルードしているヘッダーファイル内も全て C++11 で書き換えられてしまうようです。 なのでインクルードしている標準ライブラリも書き換えられてしまうので注意して下さい。 回避方法はあるのかな…
組み込み関数で用意されていると思ったけど見当たらなかったので適当に自作。 [ソース] function! s:matchcount(expr, pat, ...) let start = get(a:, "1", 0) let result = match(a:expr, a:pat, start) return result == -1 ? 0 : s:matchcount(a:expr, a:…
winsock2 を使用した版。 [ソース] #include <winsock2.h> #include <iphlpapi.h> #include <vector> #include <iostream> #include <iterator> #include <iomanip> #include <boost/format.hpp> #pragma comment(lib,"iphlpapi.lib") typedef std::vector<unsigned char> mac_address; std::vector<mac_address> get_mac_addresses()…</mac_address></unsigned></boost/format.hpp></iomanip></iterator></iostream></vector></iphlpapi.h></winsock2.h>
Sprout で乱数の配列を生成する場合、sprout::generate と sprout::random::combine を使用します。 [ソース] #include <sprout/random.hpp> #include <sprout/array.hpp> #include <sprout/algorithm.hpp> #include <iostream> int main(){ static constexpr sprout::default_random_engine engine; static constexpr sprout::unif</iostream></sprout/algorithm.hpp></sprout/array.hpp></sprout/random.hpp>…
constexpr 時の Sprout.Random は内部の値が変更できない為、標準ライブラリ とは違い operator() を何回呼び出しても同じ値しか返ってきません。 ではどうやって次の乱数値を取得するのかというと operator() を再度呼び出します。 [ソース] #include <sprout/random.hpp> #inc</sprout/random.hpp>…
この記事は Vim Advent Calendar 2012 133日目の記事になります。 と、いう事で quickrun.vim で SAN値が下がるアニメーションをしてみました。 ついでに出力テキストに特定のワードがある場合に速度が変わるようにもしてみた。 error が出るたびに速度を早…
やってみました。 [ソース] #include <algorithm> struct ango{ explicit ango(int key) : key(key){} template<typename Range> Range operator ()(Range range) const{ typedef typename std::iterator_traits<decltype(std::begin(range))>::value_type value_type; auto result = std::move(range); std::transfor</decltype(std::begin(range))></typename></algorithm>…
Sprout.Random で乱数の種を設定する場合、乱数エンジンのコンストラクタに整数値で種を渡します。 また、SPROUT_UNIQUE_SEED マクロを使用する事でコンパイル毎に違う値の種を設定する事が出来ます。 [ソース] #include <sprout/random.hpp> #include <iostream> #include <boost/mpl/print.hpp> int main(){ s</boost/mpl/print.hpp></iostream></sprout/random.hpp>…
Qt 5 をビルドする時に必要だったので覚書。 [必要なツール] MinGW msys [ビルド] 基本的にはここに書いてある手順で問題ないです。 [注意] clang のパスが通っていると gcc ではなくて clang の方が使用されるみたいです。 gcc を使用して欲しい場合は clan…
少し使ってみました。 [ソース] #include <sprout/random.hpp> #include <iostream> int main(){ namespace random = sprout::random; static constexpr random::hellekalek1995 engine{}; // 100 ~ 999 static constexpr random::uniform_int_distribution<int> dist1(100, 999); static_asser</int></iostream></sprout/random.hpp>…
公式サイトで配布されている Qt 5.0.1 の MinGW 版で出力したバイナリを WindowsXP で実行させると次のようなランタイムエラーになる場合があります。 これは Qt 側のバグです。 このバグは 5.0.2 で修正される予定です。 MinGW ではなくて Visual Studio で…
この記事は Vim Advent Calendar 2012 127日目の記事になります。 気がつくと4ヶ月以上続いているし、どこまで続くんだろう…。 まだまだ参加者は募集していますよ! [quickfix とは] quickfix は :make や :grep などで使用されるファイル(バッファ)位置の…
C++オンライン読書会を行います。 今日読む資料は『atomic Weapons: The C++ Memory Model and Modern Hardware』になります。 かなり専門的な資料っぽいけど無事に完走出来るだろうか…。 気になる方や参加されたい方は 20時頃に lingr-cpp 部屋までお越しく…
Qt 5.0.1 + MinGW で出力したバイナリを実行した場合に というようなエラーが出ることがあります。 [対処方法] 公式で配布されている MinGW ではなくて Qt 5.0.1 に付属している MinGW のパスを通してそちらを使用するようにすると動作するようになります。 …
Qt 5.0.1 + MinGW でエラーになった話 その1。 Qt5.0.1 + MinGW を使用して make した時に g++: error: release/main.o: No such file or directory というように .o ファイルが見つからないとエラーになることがあります。 これは makefile 内で .o の出力…
さて、昨日書いた unite-message なんですが、unite-alias で定義した source でも unite-filters が使用出来るみたいです。 unite-alias を使用する場合はこんな感じ。 [ソース] let g:unite_source_alias_aliases = { \ 'message' : { \ 'source': 'output…
unite.vim で :message の出力を行う場合、 :Unite output:message するのが簡単なのですが、この出力に対して unite-filters を適用させたかったので1つの unite-source として定義してみました。 [ソース] let s:source = { \ "name" : "message", \ "desc…