タグ

TipsとC++に関するrydotのブックマーク (9)

  • C++11スマートポインタで避けるべき過ち Top10 | POSTD

    (注:2017/10/25、いただいたフィードバックを元に翻訳を修正いたしました。修正内容については、 こちら を参照ください。) 私は新しいC++11のスマートポインタをとても気に入っています。自分でメモリを管理するのが嫌だと感じる多くの仲間たちにとって、これはいろいろな面で天の助けでした。私の場合、このおかげで新人にC++を教えるのがずっと楽になりました。 しかし、C++11のスマートポインタを幅広く使っていた2年ちょっとの間で、使い方を誤ると、プログラムの効率が落ちたりクラッシュして壊れたりするという事態に何度も遭遇しました。参照用に、以下に例を載せました。 まずはこれらの”過ち”を、簡単なAircraftクラスを例に取って見てみましょう。 class Aircraft { private: string m_model; public: int m_flyCount; weak_p

    C++11スマートポインタで避けるべき過ち Top10 | POSTD
  • C/C++開発環境 - Qiita

    Windows/Linuxで両方で動作する成果物を想定。 有償のツールは理解が得られる方が稀なので除外。 仕様書 外部仕様 Word/Excelが手軽だけど差分が追いにくい。 Markdown+PandocかSphinxでPDF提出がいいかな? Pandoc - About pandoc Sphinx-Users.jp :: ドキュメンテーションツール スフィンクス Sphinx-users.jp 内部仕様 きちんと書いてあればDoxygenで十分だと思う。 Cしか対応していないみたいだけどdocuriumの方がgitとの親和性が高くて(tag付された結果をまとめて解析してくれるみたい)出力結果も今風にできてる。 Doxygen github/docurium インセプションデッキ 作っておくと上司/部下/協力メンバで方針を合わせやすい。 ネスケラボ » インセプションデッキ ソースコード

    C/C++開発環境 - Qiita
  • 新しい並列for構文のご提案

    2014年6月に開催されたSSII2014(http://www.ssii.jp/)のチュートリアル講演用資料です. 使用したコード等はこちら. https://github.com/norishigefukushima/SSII2014 アブストラクト 「CPUのクロック数が年月とともに増加する時代は終わり、プログラムの高速化をCPUの性能向上に任せることのできるフリーランチの時代は終わりを迎えています。しかしムーアの法則はいまだに続いており、CPUはマルチコア化、SIMD化という形で高性能化が続いています。チュートリアルでは、計算コストの高い画像処理を高速化するために、CPUの能力をあますことなく引き出す、マルチコアプログラミング、SIMDプログラミングを解説します。」

    新しい並列for構文のご提案
  • たのしいHaskellのツールチェインとC++ - 純粋関数空間

    というタイトルで、先日、社内の公開セミナーで話しました。 発表資料はこちら。 Haskellのテストフレームワークとベンチマークフレームワークがよくできているので、 これをC++でも使えるんじゃないかという内容です。 概要 背景として、QuickCheck をもっと多くの人に知って/使って貰いたいというのがあります。 QuickCheckは、普段から使っている人間からすると、よくいろいろなバグを拾ってくれるとても便利なものなのですが、 残念ながら普段開発に利用しているC++には相当のもので完成度の高いものが見当たりません。 だからといって、そこから作るためにC++のテンプレートをいじくりまわすには、私はもう老いてしまいました (与えられた関数にランダムな入力を与えるだけなら簡単なのですが、ジェネレータを自由にいじれる機能がやはり欲しいところで)。 そう思った時に、FFIを使えてQuickC

  • const教信者への道 - 名古屋313の日記

    C++ | 00:14最近C++界隈の新興宗教として「const教」と呼ばれる団体が暗躍してきています。そこで今回は新参Cプラーがこの宗教にのめりこんでいく様子を順を追って解説したいと思います。まずは「const教」とは無縁の無垢なCプラーのソースコードを見てみましょう。 #include #define DEFAULT_VALUE 0 class Hoge { public: Hoge(); ~Hoge(); void setValue(int value); int value(); private: int value_; }; bool isDefaultValue(Hoge &hoge); int main() { Hoge hoge; int input_value; std::cin >> input_value; int set_value; if (input_valu

    rydot
    rydot 2012/02/08
  • const教信者が頭の可愛そうな人たちと言われないために - 名古屋313の日記

    C++ | 12:21ローカル変数に対するconst - melpon日記 - C++すら(ryにて、厳しいご指摘をいただいたので、ここでconstを付ける意義をしっかりとまとめておきたいと思います。ただ妄信的にconstを付ける頭の可愛そうな人と思われないためには、constを付ける意義を的確に説明できとかないとというわけです。実際周りにもconst教???って人が多いので。ここではconst教の真髄であると思われる、ローカル変数、値渡しの引数、戻り値に対してconstを付けることについて触れることにします。#define代わりのconst、const参照渡し、constメンバ関数等は、const教でなくても誰もがやってくれていることだと信じているので触れません。constの意義まず、constを付ける意義としては、以下のものが挙げられるでしょう変数にある値を束縛したことの表明禁止したい

    rydot
    rydot 2012/02/08
  • C++では宗教上の理由により全ての変数がconstである必要がある - 名古屋313の日記

    rydot
    rydot 2012/02/08
  • えくすとりーむ・const教団

    Jhon Smith @push_back constが羨ましいので、OperaのJavaScriptでも再現してみた。仕組みはプロパティのsetterでエラーをthrowするようにする。あくまでもプロパティしか対応できないけど、デバッグぐらいには使えるかな。 若年寄(もう若くない) @kikairoya RT @push_back: constが羨ましいので、OperaのJavaScriptでも再現してみた。仕組みはプロパティのsetterでエラーをthrowするようにする。あくまでもプロパティしか対応できないけど、デバッグぐらいには使えるかな。 Jhon Smith @push_back ちなみに、getter・setterを割り当てるのに__defineGetter__、__defineSetter__を使えば既存のオブジェクトをまるごとconstっぽくできた。Arrayとか。

    えくすとりーむ・const教団
    rydot
    rydot 2012/02/08
  • http://ml.tietew.jp/cppll/cppll/article/7572

    rydot
    rydot 2012/02/08
  • 1