ブックマーク / faithandbrave.hateblo.jp (5)

  • Expression Template - Faith and Brave - C++で遊ぼう

    operator+ - * / のような演算子の一般的な実装では一時オブジェクトのコストが発生します。 Vector operator+(const Vector& l, const Vector& r) { const std::size_t n = l.size(); Vector tmp(l); for (std::size_t i = 0; i < n; ++i) tmp[i] += r[i]; return tmp; } そのため、以下のような式を書いた場合 Vector x, y, z, t; t = x + y + z; x + y + z では 2 つの一時オブジェクトが生成されてしまうのです。 以下のように書けば一時オブジェクトは生成されませんが const std::size_t n = x.size(); for (std::size_t i = 0; i < n;

    Expression Template - Faith and Brave - C++で遊ぼう
    t_f_m
    t_f_m 2018/06/22
  • Effective Modern C++の予約開始 - Faith and Brave - C++で遊ぼう

    EMC++ Exits Publishing Purgatory! - The View From Aristeia Effective Modern C++ - O'Reilly Effective Modern C++ - Amazon.co.jp Scott Meyersの著書『Effective C++』のC++11とC++14対応である『Effective Modern C++ (略称EMC++)』の予約が開始しました。発売は12月4日になっています。 副題は「42 Specific Ways to Improve Your Use of C++11 and C++14」、日語だと「C++11とC++14の使い方を改善する42の方法」といったところでしょうか。

    Effective Modern C++の予約開始 - Faith and Brave - C++で遊ぼう
    t_f_m
    t_f_m 2014/11/11
    "副題は「42 Specific Ways to Improve Your Use of C++11 and C++14」、日本語だと「C++11とC++14の使い方を改善する42の方法」といったところ"
  • 最近のBoost - Faith and Brave - C++で遊ぼう

    Boost 1.56.0のリリースまでもう少しかかりそうなので、Boostの近況を書きます。 Boostの開発リポジトリが、SubversionからGit(GitHub)に移行しました。 https://github.com/boostorg/ リポジトリからのビルド方法は、egtraさんのブログを参照:「Modularized Boost(GitHubへ移行したリポジトリ)を使用する」 「Boostの一部の機能を使いたいだけなのに、全部入れないといけないのはしんどい」というのに応えよう、という活動を始めました。 GitHubでモジュールごとにリポジトリを分けてるのも、その一環。 現在、モジュール間の依存関係を整理中。そのうち何らかの方法で、「自分が使いたいモジュール(とその依存モジュール)だけを持ってくる」というのができるようになるでしょう。(現在もbcpツールを使えばできることはできる

    最近のBoost - Faith and Brave - C++で遊ぼう
    t_f_m
    t_f_m 2014/07/01
  • Boost.ChronoでTrace - Faith and Brave - C++で遊ぼう

    library request - gmame.comp.lib.boost.devel こんなことできるトレースライブラリがほしいなー、というリクエストが出ていたのですが #include <tracer.h> void foo() { TRACE_LIFETIME; usleep(rand() % 100000); } int main() { TRACE_LIFETIME; for(int i = 0; i < 100; ++i) foo(); } All the program time: 05265686 us (micro secs) TRACE POINT: Function : int main() Calls : 0000000001 times Average T between calls : 0000000000 us Average life T : 000526

    Boost.ChronoでTrace - Faith and Brave - C++で遊ぼう
    t_f_m
    t_f_m 2012/02/22
  • GotW #88: A Candidate For the "Most Impotant const" - Faith and Brave - C++で遊ぼう

    Herb Sutter氏のブログにて、Guru of the Weekの新作が公開されています ネタ元 cppll:13250 - GotW #88: A Candidate For the "Most Important const" GotW #88: A Candidate For the "Most Important const" Guru of the Week 以下、簡単な和訳 (間違ってたら誰か指摘してください。。。) GotW #88: "最も重要なconst"の候補 JG Questions Q1 : このC++コードは正しいでしょうか? // Example 1 string f() { return "abc"; } void g() { const string& s = f(); cout << s << endl; // この一時オブジェクトはまだ使える? }

    GotW #88: A Candidate For the "Most Impotant const" - Faith and Brave - C++で遊ぼう
    t_f_m
    t_f_m 2012/01/23
    const & で受けて寿命を伸ばす
  • 1