タグ

ブックマーク / gintenlabo.hatenablog.com (2)

  • std::make_shared から private コンストラクタを呼び出す - 野良C++erの雑記帳

    std::make_shared で private コンストラクタを呼ぶには,関数内クラスと継承を利用すれば良い. class hoge { hoge(); // private ctor public: static std::shared_ptr<hoge> create() { // return std::make_shared<hoge>(); // こう書きたいが,コンパイルエラー // 代わりに関数内クラスを利用する struct impl : hoge { impl() : hoge() {} }; auto p = std::make_shared<impl>(); return std::move(p); } }; 継承ではなく包含を使うことも可能だし,関数内クラスではなくクラス内クラスを使うことも出来る. class hoge { hoge(); // privat

    std::make_shared から private コンストラクタを呼び出す - 野良C++erの雑記帳
  • C++14 のラムダ式 完全解説 前編 - 野良C++erの雑記帳

    C++14 の Committee Draft が公開された. C++14 は基的には C++11 のマイナーバージョンアップであるが,バグフィックスのみを行っている訳ではなく, C++11 の時点で微妙に使いにくかった機能,特にラムダ式については,大きな機能追加が行われている. そこで, blog では,このエントリから数回に分けて, C++14 のラムダ式について説明してみることにする. 拙い文章になるかとは思うが,読者の理解の助けになれば幸いである. なお,これらの記事を書くにあたって,読者に対して C++11 のラムダ式に対する知識を要求しないように心がけたが, もしかしたら,説明不十分であり,分かりにくい部分があるかもしれない. そのような場合には, の虫: lambda 完全解説 等, C++11 のラムダについて書かれた記事は多いので, それらの記事を読んでみることを

    C++14 のラムダ式 完全解説 前編 - 野良C++erの雑記帳
  • 1