タグ

C++11に関するNyohoのブックマーク (14)

  • メルセンヌツイスタの性能差 - Qiita

    初めに 背景 元々、C++でのメルセンヌツイスタ実装としてはboostのものがありましたが、乱数機能が貧弱であった標準ライブラリでは、C++11 規格で、このboostの実装を参考にしメルセンヌツイスタが導入されたようです。 ※参考:の虫:C++0xの新しい乱数ライブラリ、random という話から、両者の実装は同じだろうと考えていたのですが、どうも違うようだ…ということで、調べてみました。 結論 ということなのですが、先に結論です。 性能に関しては、あくまで手元の環境で、の話です。 boost::random::mt19937とg++標準のstd::mt19937の実装は少し違う boostの方が性能チューニングされていて速い boostは過去に実装の変更がされていて、この過去の実装と標準は共にメルセンヌツイスタのリファレンス実装に近い。 とは言えboostの過去の実装よりも、標準の実

    メルセンヌツイスタの性能差 - Qiita
    Nyoho
    Nyoho 2017/07/31
    おおC++の新しい標準のMTとboostのMTで性能差がこれだけあるのか
  • constexpr - C++入門

    constexpr とは、C++11で導入された指定子で、変数の定義、関数や関数テンプレートの宣言、リテラル型の静的データメンバの宣言に適用するものです。constexpr宣言された変数は、コンパイル時に定数になります。constexpr宣言された関数やコンストラクタは、コンパイル時と実行時に呼び出せます。リテラル型のオブジェクトは、コンパイル時に定数になります。 読み方 constexpr こんすと いーえっくすぴーあーる

  • C++11スマートポインタ入門 - Qiita

    [2022-06-22] さすがに情報が古くなってきたため、最新の規格に合わせて記事の内容を再編集した記事を新たに書きました。よろしければ、こちらの新記事「C++20スマートポインタ入門」をご参照ください。 C++11では、unique_ptr<T> shared_ptr<T> weak_ptr<T>の3種のスマートポインタが新たに追加された。これらのスマートポインタは、いずれもメモリの動的確保の利用の際に生じる多くの危険性を低減する目的で使用されるが、それぞれ独自の考え方と機能を持っている。3種のスマートポインタを適切に使い分けることで、安全性と開発速度の向上が見込めるだけでなく、プログラマの意図に合わせて「ポインタ」を記述し分けることができる、非常に強力なツールとなる。 解説では、スマートポインタについて初めて学ぶ人を対象に、C++11で追加された3種のスマートポインタの機能と使い

    C++11スマートポインタ入門 - Qiita
  • C++11 スマートポインタの話 - ここは匣

    C++にはガーベジコレクタが言語的には存在しないので、動的に確保したオブジェクトのメモリの管理はプログラマが責任を持って管理しなければ、メモリリーク・リソースリークなどの問題を生じてしまいます。 今時のプログラマはこうした問題を引き起こすリスクを減らす為に、記述ミスの起こりやすい生のポインタを使い自力でnewとdeleteを記述する事を避けて、安全なスマートポインタ、即ちオブジェクトの寿命により自動的にメモリ解放を行う便利なポインタを利用するべきです。 しかし、スマートポインタと言っても種類が幾つかあり、落とし穴も存在するのでどういった状況でどれを利用するのが良いのかを考察してみます。 Dynamic memory managementを見てみても C++11から随分増えていますね http://en.cppreference.com/w/cpp/memory std::auto_ptr

    C++11 スマートポインタの話 - ここは匣
  • C++11 forループの速度比較と、コンパイラのループ展開 - じじいのプログラミング

    C++11 forループの速度比較と、コンパイラのループ展開についてテストをしたときの結果です。構造体のメンバを、5で割った余りごとに分けて、頻度を数えるようなソースコードで実験しました(ソースコードは最後にあります)。プロセッサは、Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHzですが、実行結果は、コンパイラ・CPU・メモリ・キャッシュで大きく異ってくると思うので、ざっくりとだけ参考にしてもらえればと思います。 1. ループの方法ごとの速度の比較 Visual Studio 2012は、Release、その他は初期設定のままでコンパイルしました。 g++ 4.8.2は、--std=c++0x -O2 -W -Wall -Wno-sign-compareでコンパイルしました。 方法 Visual Studio 2012(秒) g++ 4.8.2(秒) (1

    C++11 forループの速度比較と、コンパイラのループ展開 - じじいのプログラミング
  • ドワンゴに入社した

    そう。タイトル通りだ。筆者、江添亮はドワンゴに雇用された。一体、どのような経緯でドワンゴに入社するに至ったのか。また、どんな仕事をしているのか。それを説明するには、時系列を追って書いたほうがいいだろう。 2013年8月21日 ふとみると、以下のようなサブジェクトのメールが届いていた。 【ご相談】ドワンゴ主催の C++11, 14 に関する勉強会にスピーカーとしてご参加頂けないでしょうか C++11? C++14? なんと、日C++14などという単語を知っている企業があったのか。しかし・・・ドワンゴ? SPAMだろうか。いや、こんなにピンポイントなSPAMがあるわけがない。 それにしても解せないメールだ。ドワンゴといえば、もちろん、あの有名なニコニコ動画の企業だ。ニコニコ動画と言えばWebサイトだ。ニコニコ動画やその関連サービスの開発にC++を使っているのだろうか。いやまて、たしか子会社

  • C++11: Syntax and Feature

    C++11の文法と機能(C++11: Syntax and Feature) Copyright (C) 2013 江添亮. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GN

    Nyoho
    Nyoho 2013/11/04
  • ゲーム開発者のための C++11/C++14

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami

    ゲーム開発者のための C++11/C++14
  • ClangがC++11を完全実装! 繰り返す、C++11を完全実装

    [Phoronix] LLVM's Clang Compiler Is Now C++11 Feature Complete C++11 support is now feature-complete. · e6e68b5 · llvm-mirror/clang · GitHub 3時間前のコミットにより、Clangは晴れてC++11規格を完全に実装した。その通り、完全にすべて実装した。 コミットは、Inheriting Constructorsとthread_localの機能を有効にする変更だ。 もちろん、まだ実装にバグは残っているだろうし、規格上のバグもあるので、開発に終わりはない。ただし、今日は記念すべき日である。 static_puts said... そうすると、ますますC++11の重要性が高まってきますね! 「寄付のお願い」の方にも書かせていただいたのですが、書籍の執筆への寄

  • C++11 (他) 入門

    C++11 (他) 入門 1. C++11 (他) 入門 ~ Java, C, +αを学んだ貴方へ(というのは真っ赤な嘘) Yuta Hirokawa, @krustf/総長1 2012/2/15 2. 内容, 注意 Effective C++ の重要そうな部分を独断で抜き出し C++11 の規格で直結しそうな機能を幾つか紹介 テンプレートに関するテクニックを少々解説 最新規格 C++11(旧称C++0x) に則る  ウェブページや書籍では未だC++0x表記による情報が多い 検索時は気を付けること 2 導入 2012/2/15 3. 注意 C++11 完全対応コンパイラは未だ無い  2012年2月14日現在 当スライドでは以下の環境を使用する 一部以下の環境では使えないコードがある(かも) Compiler gcc 4.5 Build Option -std=gnu++0

    C++11 (他) 入門
  • Clang - C++ Programming Language Status

    The Clang community is continually striving to improve C++ standards compliance between releases by submitting and tracking C++ Defect Reports and implementing resolutions as they become available. Experimental work is also under way to implement C++ Technical Specifications that will help drive the future of the C++ programming language. The LLVM bug tracker uses the "c++" label, as well as mode-

  • gccとclangのC++0xサポートの比較

    C++0xの規格はほぼ固まり、もはや変更されることはない。恐らく、このまま規格制定されるものと思われる。さて、今C++の主要なコンパイラーを上げるとすると、gccとclangをおいて他にはない。MSVCはオモチャだ。右の両コンパイラーは、C++0xの新機能を実装し始めている。もちろん、まだ不完全な実装も多いが、とりあえず遊べる程度には実装できている機能も多いので、比較してみることにする。 gccのC++0xサポート状況は、以下のページに簡易な一覧がある。 C++0x Support in GCC - GNU Project - Free Software Foundation (FSF) clangのC++サポート状況は、以下のページに簡易な一覧がある。 Clang - C++ and C++'0x Status 面白いことに、どちらか片方のコンパイラーでしか実装されていない機能が、結構あ

  • GCC 4.8がリリースされた - Faith and Brave - C++で遊ぼう

    GCC 4.8 Release Series Changes, New Features, and Fixes C++周りの変更は以下。 言語 thread_localキーワードのサポートを追加。 属性構文のサポートを追加。GCCに元々あった独自属性も、C++11属性の構文で提供されるようになりました。 alignas属性のサポートを追加。 継承コンストラクタのサポートを追加。 C++1yの実験的サポートのために、「-std=c++1y」コンパイルオプションを追加。このオプションをオンにすることで、N3386で提案された「戻り値型を推論する関数宣言構文」が利用可能になります。 ライブラリ(libstdc++) forward_listを、標準のアロケータ要件を満たすよう修正(allocator_traits) this_thread::sleep_for()、this_thread::sl

    GCC 4.8がリリースされた - Faith and Brave - C++で遊ぼう
  • 最新のC++を学ぶ - Barbara Moo氏インタビュー

    Rustが再評価される:エコシステムの現状と落とし穴 In this article, we share findings and insights about the Rust community and ecosystem and elaborate on the peculiarities and pitfalls of starting new projects with Rust or migrating to Rust from othe...

    最新のC++を学ぶ - Barbara Moo氏インタビュー
  • 1