You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
2014-12-29 Note: While writing this article I noticed in flaw how the listeners are stored. You can read everything about the Revised EventEmitter. When it comes to C++ callback / event handling I have for a long time relied on sigc++. But since the release and mainstream adoption of C++11, I have more and more relied on lambda function for event handling. I have mostly just used the pattern where
What is Cling Cling is an interactive C++ interpreter, built on the top of LLVM and Clang libraries. Its advantages over the standard interpreters are that it has command line prompt and uses just-in-time (JIT) compiler for compilation. Many of the developers (e.g. Mono in their project called CSharpRepl) of such kind of software applications name them interactive compilers. One of Cling’s main go
C++ has changed a lot in recent years. The last two revisions, C++11 and C++14, introduce so many new features that, in the words of Bjarne Stroustrup, “It feels like a new language.” It’s true. Modern C++ lends itself to a whole new style of programming – and I couldn’t help noticing it has more of a Python flavor. Ranged-based for loops, type deduction, vector and map initializers, lambda expres
A tool for use with clang to analyze #includes in C and C++ source files "Include what you use" means this: for every symbol (type, function variable, or macro) that you use in foo.cc, either foo.cc or foo.h should #include a .h file that exports the declaration of that symbol. The include-what-you-use tool is a program that can be built with the clang libraries in order to analyze #includes of so
Appleマクロの恐怖 - Faith and Brave - C++で遊ぼう Appleのクソヘッダーがcheckとかrequireとかverifyなどといった、あまりにも一般的すぎる単語をプリプロセッサーマクロで定義している問題。MSも、あの悪名高いminやmaxマクロを定義している。 最良の解決策は、そんなクソマクロを定義したヘッダーを使わないこと。 ところで、#2115 (Avoid bad Apple macros) – Boost C++ Librariesをみると、BOOST_PREVENT_MACRO_SUBSTITUTIONというものがあり、これを使えば、この問題を解決できるらしい。何と、そんな便利なものがあるのか。早く言ってよね。しかし、なぜか、"Perhaps sadly, I have to agree."と言われている。何故そんなに落ち込んでいるのだろうか。気にな
ソフトウェアを正しく理解する唯一の方法はコードを読むことです。 ドキュメントを読めばそのソフトウェアが何を実装しているか分かりますが、どのように実装されているかまでは分かりません。 開発中に何らかのトラブルに悩まされたときや、効率的なコーディングをしたいと思ったとき、下位レイヤのソフトウェアを理解しておけば素早く対処できるシーンが多くあります。 ただ、コードを読むことは簡単なタスクではありません。 現代的なソフトウェアはそれなりの規模のコードを含んでいることがほとんどです。アーキテクチャ間の差異を吸収するためのコードなど、本質的な機能を理解する上ではあまり重要ではないコードも含まれています。 何らかの問題が発生してからコードを読もうと思っても、準備なしでは関連する箇所を探すだけでかなりの労力が必要な作業となります。 従って、普段からコードを読んでおくことが重要です。 また、コードを読むにあ
Linuxで共有ライブラリ(*.so)を作るようになったのでちょっと勉強してみた。今までは使うだけだったので、以下のようなことは知っていた。作るときはgccの-sharedオプションを使う。使うときはgccの"-lライブラリ名"でリンクするライブラリを指定する。リンク時のライブラリ探索パスは-Lオプションで指定する。実行時のライブラリ探索パスは/etc/ld.so.confに書いてあるディレクトリ。環境変数LD_LIBRARY_PATHでも指定可能。ライブラリを作るときは、.cから.oを作るときに-fPICをつけるといいらしい。新しくライブラリを入れたときはldconfigするといいらしい。逆に今まであまり知らなかったこと。ほとんどのライブラリはlibhoge.so, libhoge.so.1, libhoge.so.1.1のように3つくらいのファイルがあり、libhoge.soやlibh
The software released here implements a C++ library for object detection in images. The main algorithm is based on the detection method proposed by Felzenszwalb et al. [1]. The input of the detector is a single image, where the detection procedure is carried out. Depending on the target object class, a different object model is used. Such model is a computational description of an object class. It
地味にずっと悩んでた事をひがさんに教えてもらったので備忘録メモ。 oFでのアンチエイリアスっていうと ofEnableSmoothing(); 辺りを使えばいいんですよねとなるのだけど、 いや全然綺麗になんない。。みたいなことが常で、これまではいろいろぐぐった結果、 main.cpp の ofSetupOpenGL に ofAppGlutWindow とか ofAppGLFWWindow を渡してやって、 そいつにsample数を指定してやることでアンチエイリアス効かせてたんだけど今回は全然効かず。。なぜ。。 #include "ofAppGLFWWindow.h" #include "ofAppGlutWindow.h" int main(int argc, const char** argv) { ofAppGLFWWindow window; window.setNumSamples
glm とは何か? ここで紹介する glm は C++ の座標系ベクターの取り扱いを中心とした数学系のライブラリーです。基本的には3DCG向けの、特にOpenGLとの親和性の高いグラフィックス用途のライブラリーですが、その機能はよく整理されて実装されており、比較的低次のベクター処理に汎用に扱えるものとなっています。 今回は C++ Advent Calendar 2014 への参加記事として、 glm について簡単にその凡その機能について紹介したいと思います。 glm の公式情報と入手、ライセンスについて glm の公式ウェブサイトはこちら: http://www.g-truc.net/ - Christophe Riccio による OpenGL 情報ウェブサイト "g-truc" http://glm.g-truc.net/ - g-truc の主要コンテントとなった glm の公式ウ
この記事はC++ Advent Calendar 2012の15日目にエントリしています。 内容はC++11「ムーブセマンティクス」の入門記事となっています。 もくじ ムーブセマンティクス再考 シンタックス vs. セマンティクス コピー vs. ムーブ ムーブのもつ2つの意味 C++11のムーブセマンティクス対応 auto_ptrからunique_ptrへ auto_ptrの暗い過去 unique_ptrへの移行 std::moveの役割 ムーブセマンティクスを使おう C++11標準ライブラリとムーブ ムーブ"後"の中身は? ムーブを利用して関数を書く (本文のみ約9500字) まえがき To move or not to move: that is the question. ― Bjarne Stroustrup, 2010(改)*1 プログラミング言語C++の新しい国際標準規格*2
世の中にはわたしのようなライトC++書き向けの資料が不足しているので, 普段使い*1用途で収集したものをまとめてみました. ドキュメントを読む C++プログラミングガイド モダン C++ プログラミング - 日本語公開記事 - サイボウズエンジニアのWIKI STLのドキュメント cplusplus.com - The C++ Resources Network C++ reference - cppreference.com clangを使う Clang - Wikipedia gccよりもclangの方がC++ 規格に準拠しているとうたわれています. また, コンパイルもちょっと速い. *2 標準ライブラリを使う ∧∧∧∧∧∧∧∧∧ < STL!STL!STL!STL! > ∨∨∨∨∨∨∨∨∨ _ _ `/っ) /っ) / / ∧_∧ / / ∧_∧ \\( )\\(
4. ThreadよりもTask for (int i = 0; i < num; i++) { var t = new Thread(_ => b[i] = F(a[i]) ); } for (int i = 0; i < num; i++) { Task.Run(() => b[i] = F(a[i]) ); } ×悪い例 ○良い(まだマシ※な)例 データの数だけ スレッド作成 Threadでなく Task利用 ※ この場合、ParallelクラスやParallel.Enumerableクラスが使いやすい 5. ThreadよりもTask for (int i = 0; i < num; i++) { var t = new Thread(_ => b[i] = F(a[i]) ); } for (int i = 0; i < num; i++) { Task.Run(() => b[
この記事は C++ AdventCalendar 2013 の 10 日目の記事です. 本記事では Vim で C++ を書いている人を対象として,逆引きで Vim の機能やプラグインについて紹介していきます. すべてについて細かく書いているとキリが無いので,基本的な使い方とプラグインのリポジトリへのポインタ,主要な記事へのリンクを載せています. より詳しく知りたい場合はリポジトリ内の README やドキュメント(/doc内にあります),プラグインインストール後の :help コマンドを利用してください. また,何か問題が発生した場合など,助けが必要な場合は Lingr というチャットサービスの Vim 部屋でも対応してもらえることがあります. http://lingr.com/room/vim 目次 シンタックスハイライト C++11 のシンタックスハイライト(cpp-vim) 補完す
第二弾?わたしが普段 C++ のコーディングを行っている時の機能とか、プラグインとかのまとめです。 逆にいうと、これぐらいしか知らないので、もっと便利な機能があれば教えてください。 結構ざっくりと書いたので、分からないことがあれば、コメントか Twitter でリプもらえれば反応出来るかもしれません。 まぁ『Vim でこういう事ができるんだぜー!』的な感じで読んでもらえれば幸いです。 まえがき [使用しているプラグイン] neocomplcache SingleCompile hier Unite unite-outline clang_complete 細かい設定なんかは割愛しています。 うまく動作しなかった場合は、:help や、各プラグインのドキュメントを参照して下さい。 ☆1.複数行コメント vim-user : http://vim-users.jp/2011/03/hack20
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く