タグ

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

  • C++ / Boostの新たな非営利団体The C++ Alliance - Faith and Brave - C++で遊ぼう

    The Future of Boost (From Vinnie Falco) (2023-05-08 15:46:03) - Boost developers' mailing list Boost C++ Librariesのコンサルティング会社BoostProがなくなって以来、Boostはリーダー不在でふわふわした状態でした。 Boost.Beast作者のVinnie Falco氏が創設した新しい非営利団体The C++ Allianceでは、Boostを復権させるようBoostの基礎部分を刷新し、C++全般を支援していくことを主な目的としています。 この団体では、Boost.Asio作者のChristopher Kohlhoff氏を雇用し、フルタイムでオープンソース活動をできるようにしています。ほかにもスタッフエンジニアとして、Boostのリリースマネージャを長く続けているMars

    C++ / Boostの新たな非営利団体The C++ Alliance - Faith and Brave - C++で遊ぼう
  • GADTs使ってみた - Faith and Brave - C++で遊ぼう

    このエントリは、Haskell Advent Calendar 2011の参加記事です。 今回は、HaskellのGHC拡張であるGADTs(Generalized Algebraic Data Types : 一般化代数データ型)を調べて使ってみたという内容を書いてみました。 最初に、GADTsはGHC拡張なので、使用するには以下のようにして拡張を有効にする必要があります: {-#LANGUAGE GADTs #-} まずは構文的な違いを、Maybeを例にして見てみましょう。 通常の代数データ型では、Maybeは以下のように書きます: data Maybe a = Nothing | Just a GADTsでは以下のように書きます: data Maybe a where Nothing :: Maybe a Just :: a -> Maybe a 通常の代数データ型では、データコンス

    GADTs使ってみた - Faith and Brave - C++で遊ぼう
  • C++標準ライブラリの数学定数への道のり - Faith and Brave - C++で遊ぼう

    P0631R8 Math Constants C++20で数学定数が入ることが決まりましたね。やっと標準ライブラリの範囲で円周率を定数として使えるようになります。 ここまでの道のりですが、 constexpr (C++11) 変数テンプレート (C++14) インライン変数 (C++17) 数学定数 (C++20) とても長かったですね。 #include <iostream> #include <numbers> template <class T> T degree_to_radian(T x) { return x * std::numbers::pi_v<T> / static_cast<T>(180.0); } int main() { float y = degree_to_radian(90.0f); std::cout << y << std::endl; // 1.570

    C++標準ライブラリの数学定数への道のり - Faith and Brave - C++で遊ぼう
    u_wot_m8
    u_wot_m8 2019/08/22
  • Boost 1.70.0がリリースされました - Faith and Brave - C++で遊ぼう

    Version 1.70.0 - Boost C++ Libraries Boost 1.70.0リリースノート - boostjp リリースノートは、いつものようにboostjpサイトで翻訳 + 情報補完したものを公開しています。 新ライブラリは、expectedのバリエーションを提供するOutcomeライブラリ、多次元ヒストグラムを扱うHistogramライブラリの2つです。 非推奨に近い状態だった線形代数ライブラリuBLASが、Google Summer of Codeでのコントリビュートを受けていろいろ機能追加されています。 リリースされたばかりのVisual Studio 2019はサポート対象外です。

    Boost 1.70.0がリリースされました - Faith and Brave - C++で遊ぼう
  • 最近のC++の学び方について発表しました - Faith and Brave - C++で遊ぼう

    Modern C++ Learning - SlideShare Modern C++ Learning from Akira Takahashi 英語の資料ですが、PFNの社内セミナーで「最近のC++の学び方」をテーマにして発表しました。(このブログではとくに書いてなかったですが、2017年10月からPreferred Networks社に転職しました)

    最近のC++の学び方について発表しました - Faith and Brave - C++で遊ぼう
    u_wot_m8
    u_wot_m8 2018/02/15
  • C++17対応の『C++ポケットリファレンス』 第3版 - Faith and Brave - C++で遊ぼう

    2018年2月15日に、『C++ポケットリファレンス』の第3版が発売となります。 [改訂第3版]C++ポケットリファレンス - 技術評論社 [改訂3版]C++ポケットリファレンス - Amazon.co.jp 今回の改訂では、C++17 (ISO/IEC 14882:2017) に対応しています。 執筆関係のこと 執筆自体は2017年4月からはじめて、C++17がISOから発行されたらなるべく早く出版できるよう進めていました。 ツールとしては、執筆環境にGitHubのプライベートリポジトリ、細かい相談ごとにGitterを使用していました。 改訂の内容 C++17では大きな機能がいくつか追加されたため、章立てから見直しています。 エラーハンドリングの主要機能としてstd::optionalクラスが追加されたことから、例外の章を、エラーハンドリングの章に変更 ファイルシステムのライブラリが追加

    C++17対応の『C++ポケットリファレンス』 第3版 - Faith and Brave - C++で遊ぼう
    u_wot_m8
    u_wot_m8 2018/01/29
  • C++17標準ライブラリの細かい変更いろいろ その1 - Faith and Brave - C++で遊ぼう

    最近cpprefjpに書いたものを列挙します。 assertマクロがconstexpr関数内で使用できるようになった std::next()関数のイテレータ要件がForward IteratorからInput Iteratorに緩和された std::addressof()がconst T&&の引数を禁止にした。addressof<const T>(T())のようにするとconst T&&が指定できていた std::addressof()がconstexprに対応した std::mutexとかstd::recursive_mutexのlock()メンバ関数が、device_or_resource_busyのエラーを起こらなくした 非順序連想コンテナのreserve()メンバ関数が、C++14までn-1以上の予約していたが、C++17からn以上が予約されるようになった std::shared_

    C++17標準ライブラリの細かい変更いろいろ その1 - Faith and Brave - C++で遊ぼう
    u_wot_m8
    u_wot_m8 2017/07/03
  • C++1zの言語拡張まとめ - Faith and Brave - C++で遊ぼう

    2017年中に改訂される予定のC++14の次のバージョン、仮称C++1zの更新内容をまとめました。正式名称はISO/IEC 14882:2017、通称C++17になる予定です。 C++1zの概要 C++17は、C++11ほど大きな変更はありませんが、重要な言語機能(構造化束縛とか)や、広く適用できるライブラリ機能が多く入っています。ライブラリは、ファイルシステムが入るのが大きいですね。ようやく標準ライブラリのみで、ファイルサイズを取得したり、ファイルのコピーや移動などを扱えるようになります。 策定体制として、Study Group (SG)と呼ばれる専門家グループがたくさん作られ、そこで同時並行に議論、策定が進められていた仕様のうち、固まったものがいくつかC++1zで導入されます。 それぞれの専門家グループで考えられた仕様はTechnical Specification (TS)という単位

    C++1zの言語拡張まとめ - Faith and Brave - C++で遊ぼう
    u_wot_m8
    u_wot_m8 2017/02/02
  • Boost 1.62.0がリリースされました - Faith and Brave - C++で遊ぼう

    Version 1.62.0 - Boost C++ Libraries Boost 1.62.0リリースノート - boostjp Boost 1.62.0がリリースされました。 リリースノートはいつものように、boostjpサイトで翻訳したものを公開しています。Flastさん、協力ありがとうございました。 新ライブラリ 今回の新ライブラリは、FiberとQVMの2つです。 Boost.Fiberは、ユーザースレッドのライブラリです。コルーチンをスレッドのインタフェースで使えるようにしたようなものです。軽量スレッドとして使えます。 Boost.QVMは、クォータニオン、ベクトル、行列のライブラリです。コンセプトベースで設計されているので、自分で作った型に対して、Boost.QVMのアルゴリズムを適用できます。 主要な更新 Boost.Containerに、C++1z関係の機能が入った。連

    Boost 1.62.0がリリースされました - Faith and Brave - C++で遊ぼう
  • Boost 1.60.0がリリースされました - Faith and Brave - C++で遊ぼう

    Version 1.60.0 - Boost C++ Libraries Boost 1.60.0リリースノート - boostjp Boost 1.60.0がリリースされました。 いつものように、リリースノートを翻訳し、情報補完したものを、boostjpサイトで公開しています。 新ライブラリ 可変引数マクロを使用した、プリプロセス時データ構造のライブラリVMDが追加されました 主な更新 Boost.Containerに、Polymorphic Memory Resourcesが実装されました Boost.Filesystemに、パスの正規化をする関数が追加されました Boost.Filesystemが、noexceptとムーブに対応しました Boost.Predefに、SIMDハードウェアの検出機能が追加されました Boost.HanaとBoost.DLLは、リリースが次回以降に延期され

    Boost 1.60.0がリリースされました - Faith and Brave - C++で遊ぼう
  • cpprefjp 言語機能の解説を始めました - Faith and Brave - C++で遊ぼう

    言語機能 - cpprefjp C++語リファレンス 先日、ライブラリのリファレンス作成が一段落したcpprefjpサイトですが、今日から言語機能の解説を始めました。 いまは、各言語機能を解説していくにあたって、参考にするためのたたき台記事のレビューを始めたところです。 言語編の作り方として、たたき台の記事をレビューする #278 - cpprefjp/site 広告の代わりに cpprefjpサイトは現在、広告もなにも置いておらず、ビジネスモデルがない状態です。私個人宛てにはなりますが、応援してくださる方がいらっしゃいましたら、以下のAmazonウィッシュリストを見ていただければと思います。 Amazonウィッシュリスト ギフト券のウィッシュリスト

    cpprefjp 言語機能の解説を始めました - Faith and Brave - C++で遊ぼう
    u_wot_m8
    u_wot_m8 2015/10/21
  • Boost 1.59.0がリリースされました - Faith and Brave - C++で遊ぼう

    Version 1.59.0 Boost 1.59.0リリースノート - boostjp Boost 1.59.0がリリースされました。リリースノートはいつものように、boostjpサイトで翻訳を行い、公開しています。 新ライブラリ Convert Boostには以前からlexical_cast()という強力な数値・文字列間の変換関数がありました。このライブラリは、それをより強力にした機能が多数入っています。 たとえば、型変換の際に使用するマニピュレータを指定できるようになったので、基数(2進数、16進数とか)の指定、浮動小数点数の精度の指定などができます。ほかにも、変換に失敗したときのエラー処理も、選択の幅が広がったりしています。 Coroutine2 C++14で書かれたコルーチンライブラリです。前バージョンは非推奨となります。 主な更新内容 Multi-Index 少し前にこのブログ

    Boost 1.59.0がリリースされました - Faith and Brave - C++で遊ぼう
  • C++14対応のC++ポケットリファレンス 第2版 - Faith and Brave - C++で遊ぼう

    改訂新版 C++ポケットリファレンス - 技術評論社 改定新板 C++ポケットリファレンス - Amazon.co.jp おかげさまでご好評いただいております書籍『C++ポケットリファレンス』ですが、この度、C++規格の最新バージョンC++14(ISO/IEC 14882:2014)に対応した改訂版を出版します。 基文法、ライブラリの各章において、C++14で追加された機能の解説を加筆しました。 また、それ以外の項目についても、解説の加筆や改善を行っています。 ページ数も16ページほど増量し、544ページになっています。そろそろポケットに収納するのは厳しいかもしれません。 コンパイラのC++14への対応も非常に早いので、より多くの方にC++14の機能を使っていただければ幸いです。 『C++ポケットリファレンス』第2版は、2015年6月4日に発売予定です。電子書籍版は、技術評論社のDigi

    C++14対応のC++ポケットリファレンス 第2版 - Faith and Brave - C++で遊ぼう
    u_wot_m8
    u_wot_m8 2015/05/18
  • Effective Modern C++のドラフト版がリリースされた - Faith and Brave - C++で遊ぼう

    Effective Modern C++ - O'Reilly Effective Modern C++ - Safari Books Online 書籍『Effective C++』のC++11/14対応である『Effective Modern C++』のドラフト版がリリースされました。価格は$43です。 このバージョンは、完成版ではなく、レビュー中のものになります。正式版のリリースは、10月に予定されています。 正式リリース時には、書籍はフルカラーになる予定だそうです。 追記 2014/07/14 17:37 O'ReillyのEarly Releaseで購入した場合、更新がある度にそれを受け取れて、完成版ももらえるそうです。 参照 Draft Version of Effective Modern C++ Now Available C++神Scott Meyersの「Effecti

    Effective Modern C++のドラフト版がリリースされた - Faith and Brave - C++で遊ぼう
    u_wot_m8
    u_wot_m8 2014/07/14
  • 最近の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++で遊ぼう
  • 派生クラスの仮想関数には、virtualを付ける必要はない - Faith and Brave - C++で遊ぼう

    クラスで仮想関数を定義したら、派生クラスではその関数に、virtualを付ける必要はありません。付けなくても、自動的に仮想関数になります。 #include <iostream> struct Base { virtual void f() { std::cout << "Base" << std::endl; } }; struct Derived : Base { void f() override { std::cout << "Derived" << std::endl; } }; int main() { Derived d; Base& b = d; b.f(); } 出力: Derived C++03においては、派生クラスでも「この関数はオーバーライドを意図してるんだ」というのを示すためにvirtualを付けることに意義がありました。 C++11ではoverrideキーワ

    派生クラスの仮想関数には、virtualを付ける必要はない - Faith and Brave - C++で遊ぼう
    u_wot_m8
    u_wot_m8 2014/03/19
  • 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++で遊ぼう
    u_wot_m8
    u_wot_m8 2013/11/22
  • 1