本書は2011年に制定されたC++11の標準規格の一つ後のドラフト、N3337に準拠するC++11の参考書、C++11の文法と機能の電子書籍です。
先日,ついに C++11 の主要な機能を一通り実装した GCC-4.8.1 がリリースされた. もう一方の主要な C++ コンパイラである Clang++ でも C++11 の機能は既に全て実装されており, 来る 6/05 に最新版の Clang-3.3 がリリースされ, C++11 対応が完了する見通しだ.*1 このような状況においては, C++11 への乗り換えを検討し始めているプロジェクトも多いことだろう. さて, C++11 では, C++98/03 との互換性を保ちつつ,クラス設計に大きな影響を齎す変化が採用された. すなわち, Move Semantics である. この登場により, C++11 で「良い」とされるクラス設計は, C++98/03 時代とは若干 異なったものとなる. そこで,この記事では,筆者が C++11 において「良い」と考えているクラス設計を提案してみたい
C++11対応の『C++ポケットリファレンス』という本を書きました。 C++ポケットリファレンス - Amazon C++ポケットリファレンス - 技術評論社 本書は、標準C++のリファレンス本です。「何がしたい」から「どうやって」を調べる、逆引きリファレンスの形式をとっています。 ポケットリファレンスはシリーズもので、これまで多くの言語やフレームワークの本が出ていますが、縁あって技術評論社さんからC++版のお話をいただき、書かせてもらいました。 今回は、私を含む、C++コミュニティのメンバ6人で書きました。 本書はライブラリの使い方を主題として扱いますが、C++11に関する日本語書籍はこれが初となる実情があるため、言語の基本文法も力を入れて書いています。そのため、本書はライブラリのリファレンス書としてだけでなく、C++の入門書として使うこともできると思います。 「ポケットリファレンス」と
前回、rvalue reference 完全解説なる記事を書いた所、ある程度の反響を得た。このような個人のブログでは、数人が思う所を書けば、まあ、ある程度の反響と言って差し支えないのである。 しかるに、皆rvalue referenceの理解に苦しんでいる様子だ。果たしてあの解説が至らなかったのであろうか。しかし、あの解説は、これ以上ないくらい簡単に書いたはずである。 実際、value referenceは、名前の通りのrvalueへのreferenceに過ぎぬのだし、std::move()とstd::forward()は、キャストに過ぎぬのだ。std::move()は、rvalueへのキャストであり。std::forward()は、lvalueをlvalueへ、rvalueをrvalueへキャストするのである。それだけのことなのである。 しかし、現実に理解に苦しんでいる者がいる。これは一
目的 この記事は、C++0xのrvalue referenceを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からrvalue referenceを恐れることなく使う本物のC++0xプログラマになれるだろう。 lvalueとrvalueについて Cの時代では、lvalueとrvalueの違いは、代入演算子の左側か右側かという違いだけであった。つまり、left hand value, right hand valueの略である。従って、訳語も、左辺値、右辺値であった。C++においては、これはもはや正しくはない。従って、右辺値、左辺値というのも、誤訳である。それ故に、ここでは、これ以上、左辺値、右辺値という名称を使用しない。 誤解を恐れずにいえば、lvalueとは、明示的に実体のある、名前付きのオブジェクトであり、rvalue
The project aims to build upon the latest C++ standard (currently C++11) to provide easy to use libraries for network programming. We use the latest compiler versions and features with an eye on pushing the boundaries on leveraging what's available in C++. Currently the library contains an HTTP client and server implementation, a stand-alone URI library, a network message framework, and some concu
訳者注 下記の文章は C++0x - the next ISO C++ standard の暫定勝手和訳です。 翻訳は現在進行中であり、未完成かつ不正確である可能性があります。 っていうか未完成かつ不正確です。 正しい情報を必要とされる方は、原文を当たってくださいますようよろしくお願いします。 誤訳の指摘は大歓迎です。 2010年01月06日更新 (訳注: 和訳は2010年01月21日更新) この文書 (訳注: 原文) は Bjarne Stroustrup が記述、更新している。 建設的なコメント、訂正、参考資料、提案はもちろん大いに歓迎する。 現在、著者は参考資料の充実化と清書に取り組んでいる。 C++0x は次期 ISO C++ 標準である。 現時点の 草案 を、コメント募集のため公開している。 以前の (そして現在の) 標準は、しばしば C++98 や C++03 と呼ばれる; C
Constant Initialization source: http://akrzemi1.wordpress.com/2012/05/27/constant-initialization/ ひとつ前の、コンパイル時計算についての記事では、いかにこのconstexprという新しいキーワードを使い倒して、面白い効果を引きだすかについて述べた。 さて今回は、このキーワードの用途についてもうすこし見ていこう。もうすこしコンパイル時定数の話も書けると思うが、例えばこの提案を読んでいる読者には既知のことだと思うので。 この記事はconstant initializationについてである。端的に言うと、これは初期化順やデータレースに起因する問題を避けて、global、static、またはスレッドロゥカルなオブジェクト(定数でなくともよい)を初期化するための新しい方法である。 この記事では、’gl
どこかにまとまっていれば便利かなーと思いとりあえず、手元にあったのを簡単にまとめてみた。 [注意点] ネットで C++11 に関して調べる時の注意点ですが、古い言語仕様(C++0x)のまま書かれているコードが載っている事があります。 ブログの記事などを参考にする場合は投稿日を見て、最近の記事かどうかを確認しておくといいと思います。 [コーディングスタンダード] C++11 のコーディングスタンダード C++11 - the recently approved new ISO C++ standard 駆け足でC++11の概要 C++11 とオブジェクト指向 C++03 の仕様から変更のあったライブラリ [その他] C++0x総復習 Web 上での C++11 関連記事まとめ C++11 Advent Calendar 2011 C++Now! 2012
C++11の時間関係のライブラリは、非常に美しい設計をしている。 まず、経過時間そのものを表すdurationがある。Cライブラリでいえば、time_tの値の単位を指定するクラスだ。Cライブラリでは、time_tの値は秒であったが、C++では、単位を指定できるのだ。 durationでは、単位ライブラリであるratioを使って、秒、ミリ秒、マイクロ秒などといった時間単位を表現している。 秒 std::chorno::seconds ミリ秒 std::chrono::milliseconds ナノ秒 std::chrono::nanoseconds 時 std::chrono::hours それ以外の、独自の刻みがほしいとしても、簡単に作成できる。 4分33秒 using four_minutes_thirty_three_seconds = std::chrono::duration< l
Post-Kona Mailing and More Libraries The view from C++ Standard meeting Feb 2012 中の人(cpp-netlib作者、GoogleのDeanさん)がブログに書いたのでここにも書いちゃいますが、C++11の次はC++17となりそうです(仮称はC++1y)。これは小規模なアップデートの予定。さらに2022年あたりに大きなアップデートを予定してます。 標準化は5年周期で行うのが通常らしいのでその関係でこの期間みたいですね。 ライブラリの追加は言語の標準化とは別にリリースされることになるかもしれません。 追記: zakさんがHerb Sutterのブログを翻訳してくれました。 出張報告書:2012/2 C++ Standard Meeting
C++11にはユーザー定義リテラルというものがある。私はこの機能が嫌いだ。しかし、どうやらgcc 4.7がある程度の実装を終えたらしい。日本一C++に詳しい男を自称する私としては、試さなくてはならない。そこで、この記事を書く。この記事を読めば、今日から君もユーザー定義リテラルをバリバリに使えるようになる。 まず、C++11では、非常に不思議な理由により、ユーザー定義リテラルは、演算子のオーバーロードという形で実装する。はて、リテラルにつくサフィックスは演算子なのだろうか。それはともかく、ユーザー定義リテラルの識別子には、一言注意が必要である。ユーザー定義リテラルの識別子は、必ずアンダースコアからはじめなければならない。 私が注意深く、「識別子」と書いているのには訳がある。ユーザー定義リテラルの識別子は、「名前」ではないからだ。この詳細を理解する必要はない。重要なことは、必ず「識別子」をアン
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
C++ is one of the most popular programming languages. 次世代のC++規格「C++11」が国際標準として発行された。多くのC++デベロッパは、この新しいC++規格で提供される新機能に関心があると思うが、仕様書を読むのは骨が折れるとためらっている方も少なくないだろう。 そんなデベロッパの皆さんに朗報だ。C++11の登場で通常のC++コーディングとライブラリデザインなどに強く影響を与えるとみられる変更がBjarne Stroustrup氏の記事「Elements of Modern C++ Style」にまとめられている。C++98と比べて特に見た目の変更が大きく、かつ、今後広く使われ新しいコーディングスタイルになりそうなものが紹介されており、C++11新機能を知るための導入ドキュメントとして役に立つ。 紹介されているC++11の新機能を簡単
“C++11 feels like a new language.” – Bjarne Stroustrup The C++11 standard offers many useful new features. This page focuses specifically and only on those features that make C++11 really feel like a new language compared to C++98, because: They change the styles and idioms you’ll use when writing C++ code, often including the way you’ll design C++ libraries. For example, you’ll see more smart poi
ISO/IEC 14882:2011 defines the programming language and specifies requirements for implementation. Also known as C++11, this is the first major revision of the standard since 1998. Its new features extend C++’s traditional strengths of flexibility and efficiency – for example, lambda functions, move semantics, and variadic templates further enable developers to use powerful expressiveness and stro
13. §2.12 Keywords予約語が増えました。予約語一覧(橙色が新しい予約語)alignasalignof asm auto bool break case catch char char16_tchar32_t class const const_cast constexpr continue decltype default delete do double dynamic_cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new noexceptnullptr operator private protected public register reinterpret_cast return short signed s
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く