タグ

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

  • C++1y 通常の関数の戻り値型を推論 - Faith and Brave - C++で遊ぼう

    N3638 Return type deduction for normal functions ラムダ式では、return文から戻り値の型を自動的に推論してくれますが、通常の関数は推論してくれません。この提案は、ラムダ式と同じく、通常の関数でも戻り値型を推論できるようにしよう、というものです。 通常の関数で戻り値を推論してほしい場合は、関数宣言の戻り値型を「auto」にします。 auto f(); // 関数f()の宣言。戻り値の型は「不明」。 auto f() { return 1; } // 関数f()の戻り値型はint int x = f(); // x == 1 参照型を返したい場合は、戻り値の型をauto&にします。 int x = 3; auto& f() { return x; } int& r = f(); ここまでの機能は、GCC 4.8で-std=c++1yオプション

    C++1y 通常の関数の戻り値型を推論 - Faith and Brave - C++で遊ぼう
  • Faith and Brave - C++で遊ぼう

    levtech.jp 前編では2024年現在おすすめしたいC++書籍を紹介しました。 後編では、仕事でソフトウェア開発しながらも、余暇の時間にC++語リファレンスサイトや書籍の執筆、勉強会の開催などをしている立場からおすすめしたい、技術書以外のを紹介する記事を書かせていただきました。 levtech.jp キャリアと技術のWebメディアであるレバテックLABで、C++技術書を紹介する記事を書かせていただきました。 2024年現在でC++を学ぶための材料として参考になれば幸いです。 github.com 2024年もCEDECでcpprefjp所属の方の発表があるので、それに合わせてcpprefjp Tシャツを作ります! 発表者だけでなく、cpprefjpのコントリビューターとスポンサーの方も、実費をいただければ発注します。 この機会に、cpprefjp Webサイトの編集に挑戦くだ

    Faith and Brave - C++で遊ぼう
  • C++14 TS 並列アルゴリズムライブラリ - Faith and Brave - C++で遊ぼう

    N3724 A Parallel Algorithms Library C++14後のParallelism TSでは、並列アルゴリズムの導入が検討されています。 いま考えられているのは、アルゴリズムの実装を実行ポリシー(タグ)で分岐しようというもの。 std::vector<int> vec = ... // これまで通りの、シーケンシャルソート std::sort(vec.begin(), vec.end()); // 明示的なシーケンシャルソート std::sort(std::seq, vec.begin(), vec.end()); // 並列実行の許可 std::sort(std::par, vec.begin(), vec.end()); これは、CUDAのThrustライブラリが行っている設計を踏襲したものです。 このような作りにしておけば、今後の拡張がしやすいそうです(ベク

    C++14 TS 並列アルゴリズムライブラリ - Faith and Brave - C++で遊ぼう
  • C++14の言語拡張まとめ - Faith and Brave - C++で遊ぼう

    C++14は、C++11に対するマイナーアップデートです。仕様のバグ修正や、C++11の比較的小さめな機能不足を補うバージョンになっています。 細かすぎる変更はさすがに書きませんが、ある程度大きめの変更を以下にまとめます。 この内容は、正式に策定されるまでに変更される可能性があります。 コア言語 2進数リテラル 変数テンプレート 通常の関数の戻り値型を推論 ジェネリックラムダ 一般化されたラムダキャプチャ constexpr関数の制限緩和 どこからともなく現れる結果の規定(前半, 後半) [[deprecated]]属性 数値リテラルの桁区切り文字 サイズ付きのデアロケーション initializer-listによるaggregate初期化の制約緩和 ロックフリーの定義 シグナルハンドラでできることの制限緩和と明確化 ライブラリ make_unique() コンパイル時整数シーケンス tu

    C++14の言語拡張まとめ - Faith and Brave - C++で遊ぼう
  • C++14とC++1yの新しいペーパーがさらに公開された - Faith and Brave - C++で遊ぼう

    New paper: N3744, Proposing pure—Walter Brown 関数が外部の変数を変更しない「純粋関数(pure function)」であることをコンパイラに伝える、pure属性を入れよう、という提案。 関数が引数のみに依存して結果を生成するようになると、状態変化によるバグの混入が起こらなくなるので、これはぜひほしいですね。 GCCにはだいぶ前から、__pure__属性があります。それとD言語にも。 標準ライブラリで純粋関数にならない例としては、以下のようなものがあります: printf : I/Oは副作用である tan : グローバル変数であるerrnoを更新する longjmp : 関数のreturnに失敗する mersenne_twister_engine<>::operator() : メンバ変数として持っている状態を更新する New paper: N3

    C++14とC++1yの新しいペーパーがさらに公開された - Faith and Brave - C++で遊ぼう
  • optionalがC++14入り - Faith and Brave - C++で遊ぼう

    N3672 A proposal to add a utility class to represent optional objects (Revision 4) optionalがC++14に入ることが決まりました。 boost::optionalベースで、細かいところが変わってます。変更点は、上記paperかこのブログの履歴を追ってもらうとして、Revision 4ではoperator==()とoperator<()以外の比較演算子が削除されています。 これは、それ以外の演算子の動作について合意がとれなかったのと、これらの演算子が、コンテナにoptionalを入れることのみを目的にしているからだそうです。 std-proposalsでいまsatodaさんが「せめてoperator!=()はほしい」という意見を出して議論しています。 optional Rev.4 (N3672): Wh

    optionalがC++14入り - Faith and Brave - C++で遊ぼう
  • Boost.Chrono/Dateが開発中らしい - Faith and Brave - C++で遊ぼう

    2013年のBoostのGoogle Summer of Codeプロジェクトを眺めていたら、こんなのがありました。 Boost.Chrono/Date Complete the Boost.ChronoDate [1] library based on [2] to make it ready for review. [1] https://svn.boost.org/svn/boost/sandbox/chrono_date/ [2] https://svn.boost.org/svn/boost/sandbox/chrono_date/libs/date/doc/date.html This project will be mentored by Vicente J. Botet Escriba 今まで時間のみを扱っていたBoost.Chronoですが、日付を扱うプロジェクトが進めら

    Boost.Chrono/Dateが開発中らしい - Faith and Brave - C++で遊ぼう
  • 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++で遊ぼう
  • Functional Reactive Programmingのチュートリアルスライドを訳した - Faith and Brave - C++で遊ぼう

    FRP - Slides from the tutorial session in Halle Functional Reactive Programmingの勉強中。reactive bananaの資料がわかりやすかったので訳してみました。 frp_tutorial.pdf frp_tutorial.pptx

    Functional Reactive Programmingのチュートリアルスライドを訳した - Faith and Brave - C++で遊ぼう
  • 『C++のためのAPIデザイン』レビュー - Faith and Brave - C++で遊ぼう

    翻訳監修の三宅さん( @miyayou )さんから献いただきました!ありがとうございます。 書は、関数、クラス、ライブラリといった誰かに使ってもらうためのプログラムを書くプログラマのためのです。ほかの人に使ってもらうプログラムを書くために考えるべき多くのことが書かれています。たとえば、以下のようなことを考える必要があります: ユーザーに公開するインタフェースはどうあるべきか。実装詳細はどれで、ユーザーは何を知っていれば十分なのか。それはどの場面で使用できるだろうか、いま目の前にある目的を達成できればいいのか、はたまた多くの場面で再利用したいのか。 バージョンに関しても考えなければいけない。このAPIは後方互換性を保てるほど入念に考えられているだろうか。どうしても破壊しなければいけない場合、どういう設計選択をするべきか。 ドキュメントはどこまで書くべきだろうか。自動テストは何のために書

    『C++のためのAPIデザイン』レビュー - Faith and Brave - C++で遊ぼう
  • 「Scalaがもたらす言語の進化」というタイトルで発表してきた - Faith and Brave - C++で遊ぼう

    Scala勉強会第9回 in 渋谷で発表してきました。 まだScalaでがりがりコード書けないので、外の言語からみたScalaの話をしました。 Scala lang evolutionView more presentations from faithandbrave.

    「Scalaがもたらす言語の進化」というタイトルで発表してきた - Faith and Brave - C++で遊ぼう
  • C++0xが国際標準C++11へ。 - Faith and Brave - C++で遊ぼう

    cppllとboostjpに送ったメールですが、こちらにも再掲します: == ついに ねんがんの 国際標準をてにいれたぞ!: C++0x、全会一致で承認される C++0xが満場一致で国際標準として承認されました。 やりました! 日からも全員が賛成票を出していました。 さて、C++11の仕様が固まってこれから大きな変更はないでしょうから、 そろそろC++11の解説サイトやリファレンスを整備していかなくてはいけません。 cppll, boostjpのコミュニティで集合知としてのリファレンスサイトを作っていきたいと考えています。 私の方でGoogle Sitesのcpprefjpを作成し進めているのですが、人手不足でなかなか進んでいない状況です。 cpprefjp - C++語リファレンス この活動に興味を持ち、コアメンバとなってくれる方を募集しています。 C++11が広く使われて欲しいと

    C++0xが国際標準C++11へ。 - Faith and Brave - C++で遊ぼう
  • 「プログラミングの魔導書」の情報公開 - Faith and Brave - C++で遊ぼう

    http://longgate.co.jp/products.html 弊社、株式会社ロングゲートで、プログラミング雑誌を作るというプロジェクトが進行しています。 書創刊の目的は、プログラミングの入門記事が巷に溢れる今、プログラマのさらなる成長のため情報発信を行い、業界全体の技術力を向上させることです。 雑誌といっても、記事の質を保つために不定期刊行としていることから、実際には雑誌ライクな書籍となります。 書籍名は「プログラミングの魔導書〜Programmers' Grimoire〜」です。 創刊号となる今回のテーマは、サブタイトルにも含まれている「C++」です。全ての記事がプログラミング言語C++に関するものとなっています。 Vol.1のテーマをC++としたのは奇をてらったものではありません。 C++は習得の難しい言語と言われておりますが、近年はBoost C++ Librariesに

    「プログラミングの魔導書」の情報公開 - Faith and Brave - C++で遊ぼう
  • 1