タグ

c++0xに関するadvblogのブックマーク (18)

  • trickpalace.net

    This domain may be for sale!

  • C++0xのUTF-8対応に問題あり

    今まであまり気にしていなかったのだが、C++0xのUTF-8対応には、非常に深刻な問題があるように思われる。 C++0xでは、u8 encoding prefixを使うことによって、UTF-8でエンコードされた文字列リテラルが使える。 u8"あいうえお" ; しかし、このリテラルの型は、char const [16]なのだ。(UTF-8では、ひらがなは一文字3バイトを要する。null終端を付け加えて、サイズは16となる。) しかし、charという型は、歴史的に、あらゆるマルチバイト文字コードを格納するのに使われている。charを入力に受け取った時点で、それがどんなエンコードを使っているかは分からないのだ。 つまり、以下の様な関数を書いた場合、 // UTF-8の文字列を入力に取る関数 void f( char const * ptr ) { // ptrがUTF-8文字列を参照している保証

  • 雑貨's tumblr - C++創造者Bjarne Stroustrupへのインタヴュー

    C++創造者Bjarne Stroustrupへのインタヴュー source: An Interview with C++ Creator Bjarne Stroustrup - CodeGuru C++0x標準化作業がまもなく最終投票段階になるいま、C++の創造者たるBjarne Stroustrup博士とサシでC++0xの新しい機能と将来について語る機会を得た。 DK: Danny Kalev BS: Bjarne Stroustrup Table of Contents 1 Page1  2 Page2  3 Page3  1 Page1 DK C++0xの標準化作業はどのあたりまできていますか?いつぐらいに国際標準となる見込みでしょうか? BS 最終投票は2011/3/26を予定しておる。見たところ不安要素はないな。その後、正式な国際投票や、ISOのお役所仕事で遅れるにせよ、

  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

  • http://d.hatena.ne.jp/faith_and_brave/20100220/1266673222 C++0x 読んだが ダメっぽいな。 ..

    http://d.hatena.ne.jp/faith_and_brave/20100220/1266673222 C++0x 読んだが ダメっぽいな。 まず第一にエンタープライズでの開発が考慮されていない。エンタープライズの開発だと100人200人 マスタークラスから ジュニアーまで様々なレベルの開発者が携わる。 その中で重要になってくるのは可読性。 はっきり言って、歴史的な可読性を犠牲にして効率が上がるならともかく、気持ちの問題程度の効率では意味がない。 第2に スレッドとファイバーの違いぐらいわかれ、わざわざスレッド起こしたらコンテキストスイッチにどれだけコストうんだよ。 関数コールするとレジスタとかが、スタックにPUSHされるんだよってわからん奴が、IF書くなと同じで、スレッドってコンテキストスイッチの塊なんだよってのがわかんないのに下手にスレッド書かせるな。 3にラムダ式・・・

    http://d.hatena.ne.jp/faith_and_brave/20100220/1266673222 C++0x 読んだが ダメっぽいな。 ..
  • スライド 1

    わんくま同盟 名古屋勉強会 #5 たまにはまじめにC++0x たまにはまじめにC++0x 長月 葵 わんくま同盟 名古屋勉強会 #5 自己紹介 • 名前 – 長月葵 (あおいたん、特濃師匠) • 身長体重 – 身長182cm、体重64kg • 3サイズ – B 91cm、W 70cm、H 88cm • 職業 – 組み込み系プログラマ • 趣味 – お絵かき、囲碁、変な言語 • 概要 – 変な言語紹介がわんくまでのお仕事 – その流れでC++0xを紹介することに わんくま同盟 名古屋勉強会 #5 今日の予定 • 今日は趣味の厳選したネタを – コンセプト • コンセプト • コンセプトマップ • 公理 – 正規表現 – 疑似乱数フレームワーク • 時間がある限り – こんな機能が追加されます – こんなライブラリが追加されます – こんな構文規則が変更されます わんくま同盟 名古屋勉強会 #

  • C++0x 落穂(?)拾い

    目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1078 記事 - 2 コメント - 26196 トラックバック - 363 ニュース 著作とお薦めの品々は 著作とお薦めの品々は 東方熱帯林へ。 わんくま 東京勉強会#2 C++/CLI カクテル・レシピ 東京勉強会#3 template vs. generics 大阪勉強会#6 C++むかしばなし 東京勉強会#7 C++むかしばなし 東京勉強会#8 STL/CLRによるGeneric Programming TechEd 2007 @YOKOHAMA C++C++/CLI・C# 適材適所 東京勉強会#14 Making of BOF 東京勉強会#15 状態遷移 名古屋勉強会#2 WinUnit - お気楽お手軽UnitTest CodeZine Cで実現する「ぷちオブジェクト指向」 CUnitによるテスト駆

  • C++WGアドホック会議終了 - Faith and Brave - C で遊ぼう

    今日はみなさん集まっていただき、ありがとうございました。 日議論した内容を元に、委員会内で日の正式なコメントを作成させていただきます。 詳細なレポート(議事録)は後日書きます。 ちなみに、2009年秋にC++0xのFCD(Final Committee Draft)が公開されるので、そのときはまたアドホック会議を開催します。 今回は金曜日開催でしたが、次回は土曜日に開催する予定です。 楽しかったです!また会いましょう!

    C++WGアドホック会議終了 - Faith and Brave - C で遊ぼう
  • C++ 0xの参考資料 - プログラマーの学習記録

    まだ、正式発行はされていないC++ 0xだけど、すでにドラフトは出ていて、内容的にはほぼ固まっている様子。 C++ 0xの参考資料としては、以下を参考にしています。 ・http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2652.html 大元のレポートですね。これが読めればいいのですが、あいにく英語は苦手です。 ・http://ja.wikipedia.org/wiki/C%2B%2B0x Wikipediaは便利ですね。C++ 0xについては、Wikipediaを参考にしようと思います。日語がいいよね。 ・http://d.hatena.ne.jp/faith_and_brave/ C++プログラマー、アキラ氏のblogです。ブログ読んでるんですが、正直理解できません。理解できるようにがんばります。

    C++ 0xの参考資料 - プログラマーの学習記録
  • C++0x ラムダ式 - Faith and Brave - C++で遊ぼう

    【2015年12月24日記載 : C++11 ラムダ式の正式なまとめは、こちらのページ「C++11 ラムダ式 - cpprefjp C++語リファレンス」を参照してください】 今まではラムダ式のリビジョンが上がるたびに差分だけ書いてたので C++0xに採択されたラムダ式の解説をあらためて書きます。 【C++03までの問題点】 C++03では、関数をその場で作成する、ということができなかったため 関数を受け取るSTLアルゴリズムを使用する場合、以下のように、アルゴリズムに渡す用の関数を作成しなければなりませんでした。 struct is_even { typedef bool result_type; bool operator()(int x) const { return x % 2 == 0; } }; vector<int> v; find_if(v.begin(), v.end

    C++0x ラムダ式 - Faith and Brave - C++で遊ぼう
  • C++0x メンバ関数のlvalue/rvalue修飾 - Faith and Brave - C++で遊ぼう

    C++03 では、右辺値に対して左辺値用のメンバ関数を呼べてしまいます。 class X { public: X& operator=(const X&) { ... } }; int main() { X x; X() = x; // エラーになるべきだが、コンパイルが通ってしまう } この問題を解決するため、 C++0x ではメンバ関数を & 、 && で修飾することができるようになり、そのオブジェクトが左辺値の場合だけ呼べる関数、右辺値の場合だけ呼べる関数を判別できるようになります。 class X { public: X& operator=(const X&) & // 左辺値修飾 { ... } }; int main() { X x; X() = x; // エラー! } また、オブジェクトが左辺値なのか右辺値なのかでメンバ関数をオーバーロードできるので、 左辺値だったらco

    C++0x メンバ関数のlvalue/rvalue修飾 - Faith and Brave - C++で遊ぼう
  • C++0x C99対応 - Faith and Brave - C++で遊ぼう

    C++0xでのC99対応は以下 long long int型 __func__ 定義済みマクロ __STDC_HOSTED__ __STDC_VERSION__ __STDC_ISO_10646__ _Pragma演算子 可変引数マクロと空引数マクロ ユニバーサルキャラクタ名 文字列リテラルとワイド文字列リテラルの結合 識別子にユニバーサルキャラクタ名と、処理系依存文字の使用を許可(先頭数字はダメ) N1653 Synchronizing the C++ preprocessor with C99 C++0x言語拡張まとめ

    C++0x C99対応 - Faith and Brave - C++で遊ぼう
  • C++0xのマルチスレッド機能

    はじめに C++の新しい標準規格である「C++0x」の大きな新機能の1つが、マルチスレッド処理のサポートです。 従来のC++では、マルチスレッド機能は標準規格の拡張としてコンパイラごとに提供されていたため、細かな部分がコンパイラやプラットフォームによって異なっていました。しかしC++0xでは、すべてのコンパイラが同じメモリモデルに準拠し、同一のマルチスレッド機能を利用できることになります(ただし、従来同様の拡張をコンパイラが独自に提供することも可能です)。 開発者の立場からすると、マルチスレッドのコードを別のコンパイラやプラットフォームへ移植するときの手間を大きく省くことができます。複数のプラットフォーム向けの開発を行う場合でも、種々雑多なAPIや構文をいくつも頭に入れておく必要がありません。 新しいスレッドライブラリの中心を担うのは、実行スレッドを制御するstd::threadクラスです

    C++0xのマルチスレッド機能
  • 属性の使い道 - meryngii.neta

    C++0xの属性の使い道で思いついたものを適当に並べる。 pod nonpod PODの定義が複雑なので、ユーザが思っている方でなかったらエラーを出すとか。 クラスを作るときも指定するときも。 static_assert(is_pod::value);でもいいか。 restrict C++ではnoalias・restrictはrejectされたけれども、C99には入っている。 コンパイラが属性で対応するのはありかも。 でも互換性は無い。 before(expr) after(expr) 関数が呼び出される前と後に満たされるべき条件を指定する。 確か昔のC++の仕様にあったはず。

    属性の使い道 - meryngii.neta
  • C++ 0x cbeginとcend - Faith and Brave - C++で遊ぼう

    C++0x では各コンテナに const_iterator を返す cbegin() と cend() というメンバ関数が追加されます。 イテレータが const である必要がある場合はこちらを使用することになります。 namespace std { template <class T, class Allocator = allocator<T>> class vector { public: ... // iterators: iterator begin(); const_iterator begin() const; iterator end(); const_iterator end() const; reverse_iterator rbegin(); const_reverse_iterator rbegin() const; reverse_iterator rend();

    C++ 0x cbeginとcend - Faith and Brave - C++で遊ぼう
  • C++ 0x Scoped Allocator Model - Faith and Brave - C++で遊ぼう

    C++0x では、Scoped Allocator Model というネストしたコンテナ(stringのvectorとかlistのmapとか)の メモリ割り当てとして、コンテナとコンテナの各要素のアロケータを指定できるようになります。 以下は、vectorの例: Scoped Allocator Model のために、 std::scoped_allocator_adaptor というクラスが提供されます。 namespace std { template <Allocator OuterA, Allocator InnerA = unspecified allocator type> class scoped_allocator_adaptor; } 使用例: 指定した領域から alloc するような Scoped allocator を作成する class SimpleArena {

  • [PDF]Working Draft, Standard for Programming Language C++

  • C++0xの言語拡張まとめ(※随時更新) - Faith and Brave - C++で遊ぼう

    C++0xの概要はこちら ・Angle bracket テンプレートの連続した山カッコの問題の解決 ・初期化子リスト ユーザー定義のクラスで配列のような初期化構文を実装可能になる ・Uniform initialization コンストラクタの構文と初期化子リストの構文が一様になる ・デリゲーティング・コンストラクタ コンストラクタから他のコンストラクタを呼び出せる ・auto 型推論 ・記憶クラス指定子としての auto の削除 autoキーワードの意味が変更になるため、下位互換がなくなる ・decltype sizeofの型版 ・Template Aliases テンプレートを使用して型の別名を付けることができる。いわゆるtemplate typedef ・拡張sizeof 構造体/クラスのメンバをインスタンス化せずにsizeofすることが可能になる ・nullptr ヌルポインタを表

    C++0xの言語拡張まとめ(※随時更新) - Faith and Brave - C++で遊ぼう
  • 1