C++

C++1z テンプレートテンプレートパラメータにtypenameキーワードの使用を許可

C++

C++14まで、テンプレート関係で使用するキーワードとしてclassとtypenameのどちらを使用するかをユーザーが選択できました。しかし、一部の状況ではどちらかしか使えません。 テンプレートテンプレートパラメータはC++14までclassキーワードしか使えませんで…

C++1z static_assertのメッセージ省略を許可

C++

C++11から導入されたコンパイル時アサートのstatic_assertですが、「式が真であると表明したいだけなのに、メッセージを指定しなければならないのがめんどくさい」という問題がありました。 この問題のために、ユーザーが以下のようにメッセージを省略するマ…

cpprefjp C++14の言語機能解説が完了しました

C++

C++14 - cpprefjp C++日本語リファレンス C++14の言語機能解説が一通りできました。C++11の方は残り11個なので、3月中くらいにできるかもしれません。 問題報告とpull requestは、cpprefjp/siteリポジトリまでお願いします。あとちょっと・・・。 広告の代わ…

cpprefjp - C++11で導入されたC99互換機能の解説を書きました

C++

C++11 - cpprefjp C++日本語リファレンス C99互換機能としてC++11に導入された機能の解説を、一通り書きました。 C++14の解説は残り3つ。C++11は残りいっぱいあります。

cpprefjp 言語編の状況

C++

2015年中に言語編が始まってから書いたものを列挙する。 このあと2015年中にまだいくつか書くかもしれない。 C++11 C++11ページ このバージョンの概要を記載した C++11で追加・更新された各言語機能のリストを作成した C++11で追加・更新されたライブラリ機…

Boost 1.60.0がリリースされました

C++

Version 1.60.0 - Boost C++ Libraries Boost 1.60.0リリースノート - boostjp Boost 1.60.0がリリースされました。 いつものように、リリースノートを翻訳し、情報補完したものを、boostjpサイトで公開しています。 新ライブラリ 可変引数マクロを使用した…

Boost.勉強会 #19 東京でした

C++

Boost.勉強会 #19 東京 - boostjp 発表資料は、boostjpサイトの上記ページにまとめてあります。 大きなトラブルもなく終わってよかったです。お手伝いしてくれたスタッフのFlastさん、fadisさん、西山さん、ありがとうございました。 Boost.勉強会は2009年12…

関数を別な変数に移して呼び出す

たまにこういうのが必要になる。 関数のオブジェクトをいったん別の変数に移し、元のオブジェクトを空にしてから、移した先の関数を呼び出す。 これが必要になるのは、コールバック関数を呼び出し、そのコールバック関数のなかでさらにコールバック関数が登…

Boost.Convert デフォルトコンバータ

C++

Boost.Convertでは、boost::cvt名前空間のby_defaultという型がデフォルトのコンバータクラスとなる。 デフォルトのコンバータは、先行宣言されているだけで定義はされていないので、デフォルトがどれなのかは、ユーザーが定義する。 #include <iostream> #include <boost/convert.hpp> #i</boost/convert.hpp></iostream>…

Boost.勉強会 #19 東京を開催します

C++

Boost.勉強会 #19 東京 - connpass C++忘年会 2015 - connpass 2015年12月05日(土)に、IIJさんのセミナールームをお借りして、Boost.勉強会を開催します。 今回の懇親会は、忘年会もかねて行います。

cpprefjpのライブラリ編が完了しました

C++

cpprefjp - C++日本語リファレンス 以下のコミットで、正規表現ライブラリのリファレンス作成が完了しました。 basic_regex : サンプルコードを追加(fix #265) - cpprefjp/site <regex>ヘッダ - cpprefjp C++日本語リファレンス またこれにより、C++日本語リファレ</regex>…

Effective Modern C++の日本語版をいただきました!

Effective Modern C++ - C++11/14プログラムを進化させる42項目 - Amazon.co.jp Effective Modern C++ - C++11/14プログラムを進化させる42項目 - オライリー・ジャパン 岡田さん、オライリー・ジャパンさん、ありがとうございます! 明日9/18(金)に発売です…

cpprefjp - std::wstring_convertクラスのリファレンスを作成しました

C++

wstring_convert (C++11) - cpprefjp C++日本語リファレンス このあとは、<regex>ヘッダの残タスクにとりかかる予定です。</regex>

cpprefjp - cstdlibヘッダの作業完了

C++

<cstdlib>ヘッダのリファレンスとして、プロセス終了関係を書きました。 今のところ、このヘッダの、ほかの機能のリファレンスを書く予定はありません。</cstdlib>

Emscripten関係の記事

C++

私のGistに、以下の記事を追加しました。 EmscriptenとCMakeでのビルド方法 Emscriptenで、C++からJavaScriptの関数を呼び出す こちらに記載してもよかったのですが、バージョンが変わったときなどで記事の更新管理がしやすいように、Gistに置くことにしまし…

Boost 1.59.0がリリースされました

C++

Version 1.59.0 Boost 1.59.0リリースノート - boostjp Boost 1.59.0がリリースされました。リリースノートはいつものように、boostjpサイトで翻訳を行い、公開しています。 新ライブラリ Convert Boostには以前からlexical_cast()という強力な数値・文字列…

Boost.Multi-index ランク付きインデックス

C++

Boost 1.59.0から、Boost.Multi-indexに、ranked indiciesというのが入ります。 これは、キーが何番目に大きいかを対数時間で取得できる、連想配列のインデックスです。 イメージとしては、mapに対してit = m.find(key)をして得たイテレータに、distance(m.b…

Boost 1.59.0のリリースノート翻訳をはじめました

C++

Boost 1.59.0リリースノート - boostjp いつものように、boostjpサイトで、リリースノートの翻訳をやっています。

Boost.勉強会 #17 東京を開催しました

C++

Boost.勉強会 #17 東京 - boostjp 発表資料は、上記ページにまとめてあります。 東京での開催は、1年2ヶ月ぶりとなりました。最近だいぶ気持ちが落ち込んでいて、当日の朝まで非常に憂鬱な状態だったのですが、参加者のみなさんの熱気で、おかげさまで回復で…

C++14対応のC++ポケットリファレンス 第2版

改訂新版 C++ポケットリファレンス - 技術評論社 改定新板 C++ポケットリファレンス - Amazon.co.jp おかげさまでご好評いただいております書籍『C++ポケットリファレンス』ですが、この度、C++規格の最新バージョンC++14(ISO/IEC 14882:2014)に対応した改訂…

Boost.勉強会 #17 東京の募集を開始しました

C++

Boost.勉強会 #17 東京 2015/05/30(土)に、Boost.勉強会 東京を開催します!

Boost 1.58.0がリリースされました

C++

Version 1.58.0 Boost 1.58.0リリースノート - boostjp いつものように、boostjpサイトで、リリースノートの日本語訳を作成して公開しています。 新ライブラリ 今回の新ライブラリは、以下の2つです。 Endian プロセッサのエンディアンに関係なく、適切なバ…

Boost.Graph Graphvizの情報をユーザー定義型に読み込む

C++

Boost.Graphのadjacency_listクラスには、Bundleプロパティという仕組みを使って、頂点や辺の情報を、任意のユーザー定義型に保持できます。 そのような作りになっているグラフオブジェクトに、Graphvizのデータを読み込むサンプルコードを、以下の示します…

C++14標準ライブラリの小さな変更 その8

C++

その1、その2、その3、その4、その5、その6、その7に引き続き、C++14の標準ライブラリに入った小さな変更を紹介していきます。 vectorとdequeの複数要素を挿入する操作の、強すぎる保証を緩和 vector::insert() deque::insert() C++11までこれらの関数は、以…

C++14標準ライブラリの小さな変更 その7

C++

その1、その2、その3、その4、その5、その6に引き続き、C++14の標準ライブラリに入った小さな変更を紹介していきます。 condition_variableのwait系関数が例外を送出する仕様を変更 condition_variable::wait() condition_variable::wait_for() condition_va…

C++14標準ライブラリの小さな変更 その6

C++

その1、その2、その3、その4、その5に引き続き、C++14の標準ライブラリに入った小さな変更を紹介していきます。 unique_ptr::reset(nullptr_t)の仕様を追加 配列版std::unique_ptr<T[]>クラスの、nullptrを受け取るreset()メンバ関数の仕様が、これまで未規定でし</t[]>…

C++14標準ライブラリの小さな変更 その5

C++

その1、その2、その3、その4に引き続き、C++14の標準ライブラリに入った小さな変更を紹介していきます。 error_categoryにデフォルトコンストラクタを追加 std::error_categoryクラスのコンストラクタに、デフォルトコンストラクタを追加しました。 constexp…

C++14標準ライブラリの小さな変更 その4

C++

cpprefjpのSEO関係の対応をしてたり、cpprefjpの数式をMathJaxに対応してたり、Boost 1.58.0のリリースノート翻訳をやっていたりしたので、こちらが滞っていました。 その1、その2、その3に引き続き、C++14の標準ライブラリに入った小さな変更を紹介していき…

C++1zの実装状況をまとめはじめた

C++

コンパイラの実装状況 - cpprefjp C++日本語リファレンス Clang 3.6がリリースされたので、cpprefjpの「コンパイラの実装状況」ページにC++1zの状況をまとめました。 Clang 3.6のリリースノートは以下: Clang 3.6 Release Notes — Clang 3.6 documentation

C++14標準ライブラリの小さな変更 その3

C++

その1、その2に引き続き、C++14の標準ライブラリに入った小さな変更を紹介していきます。 細かいnoexceptの付け忘れ対応 C++11で<memory>ヘッダに追加されたアロケータの中間インタフェースstd::allocator_traitsクラスのmax_size()静的メンバ関数に、noexceptが追加</memory>…