タグ

programmingとC++に関するmEGGrimのブックマーク (3)

  • C言語・C++言語用テスティングフレームワーク - Cutter

    最新リリース 2019-09-13にリリースされた1.2.7が最新です。 [ダウンロード] [変更点] Cutterとは Cutterは書きやすさ・デバッグのしやすさを重視したC言語・C++言語用のテスティングフレームワークです。メンテナンスしやすく、利用効果の高い単体テスト(ユニットテスト)の開発を支援します。 また、テストを苦痛ではなく、楽しいものにすることも重視しています。スクリーンショットはテスト結果の通知機能を利用している様子です。文字としてテストのパス・失敗を伝えるだけではなく、視覚的にも通知することで、テスト結果をわかりやすくします。わかりやすいので、頻繁にテストを実行したくなります。この機能はnotify-sendコマンド(Linuxや*BSDなどの場合)またはgrowlnotifyコマンド(macOSの場合)を利用します。 動作環境 CutterはDebian GNU/L

  • C++ - boost::function はどのように可変長引数に対応しているのか

    「超汎用関数ポインタ」のコメントより boost::functionは難しくてギブアップ・・・ 可変長のオーバーロードをどうやって解決しているのか が知りたかったんだけど、 (以下略) C++ の真骨頂はプリプロセッサとテンプレートを駆使したメタプログラミングにある。メタプログラミングこそが、C++ を他言語の追随を許さない超言語に押し上げていると共に、比類なき難度を持った言語にしている。 boost::function も、そこそこにメタしている実装のひとつだ。 とりあえず、プリプロセスされていない状態では理解が難しいので、プリプロセスだけ実行する。そうすれば格段にソースコードは読み易くなる。Visual C++ なら「/E」「/PE」「/EP」コンパイラオプションを使うと、プリプロセスした結果が得られる。 以下は、boost::function をプリプロセスした結果の抜粋だ(実装は省

  • C++マニアック,ポインタ,pointer の使い方(クラスメンバへのポインタ)

    ポインタの使い方 ここでは C 言語と C++ 以外の言語ではあまり見かけないポインタについて解説します。 C 言語にはなく、C++ にはある、マニアックなポインタといえば、クラスメンバへのポインタです。クラスメンバへのポインタを知らない人も多いのではないでしょうか。これについては、このページの後半で解説します。前半は、通常のポインタについて解説します。 ポインタは難しいといわれることがありますが、そんなことはありません。C 言語と C++ がアセンブリ言語のように軽快であるのは、ポインタのおかげといっても良いでしょう。ここで、明快に理解してください。 ポインタは、必要なのか、使わない方がよいのか、という議論 組み込み型変数とポインタ 配列の先頭アドレスとポインタの関係 関数へのポインタ ポインタと整数の加減算(ディスプレースメント) ポインタ同士の引き算 クラスメンバへのポインタ <-

  • 1