2014-12-05

2014-11-post-Urbanaのレビュー: N4260-N4269

どうも欠番が多い。

N4261: Proposed resolution for Core Issue 330: Qualification conversions and pointers to arrays of pointers

多次元ポインターでconstを付け加える型変換について規定する文面がないため、以下のコードが違法になってしまう問題を修正する提案


  int main()
  {
     double *array2D[2][3];
  
     double       *       (*array2DPtr1)[3] = array2D;     // 合法
     double       * const (*array2DPtr2)[3] = array2DPtr1; // 合法
     double const * const (*array2DPtr3)[3] = array2DPtr2; // 違法
  }

規格の文面上にこの例についてカバーする箇所がないため、このようなことになってしまっている。

N4262: Wording for Forwarding References

テンプレート仮引数Tで実引数T &&や、auto &&は、どんな型でも受け取ることができる。この性質に対して、Fowarding Referenceという名前を付ける提案の文面案。

N4263: Toward a concept-enabled standard library

Concept Lite TSがほぼ完成したので、さっそく標準ライブラリをConceptに対応させたい。その対応させる際の方針を示した論文。

多少の非互換性は許容する方針らしい。たとえば、暗黙の型変換とか。

N4265: Transactional Memory Support for C++: Wording (revision 3)

トランザクショナルメモリーの文面案

この前のC++WG JPの会議では、現在提案中のトランザクショナルメモリーは、ハードウェアネイティブのトランザクショナルメモリーに落とし込める設計ではないので、何を考えて設計したのかよくわからない。全然実用的ではないという意見であった。

N4266: Attributes for namespaces and enumerators

名前空間とenumeratorにattributeを指定できる文法を追加する提案。これまでは文法が規定されていなかったので、deprecatedを指定できなかった。

namespace [[deprecated("lib_v1 is deprecated. Use lib_v2 instead.")]] lib_v1 { }

enum struct Option { safe, fast, super_fast, dangerously_fast [[deprecated("It has issues. Don't use it")]] } ;

N4267: Adding u8 character literals

charのオブジェクトひとつで表現できる文字に限ったUTF-8文字リテラルを追加する提案の文面案。

用途としては、ASCII文字をリテラルで表現できる。


char c = u8"c" ;

N4268: Allow constant evaluation for all non-type template arguments

非型テンプレート仮引数に配列からポインターへの型変換や関数からポインターへの型変換などを許容する提案の文面案

今回は欠番が多い。N4269のタイトルは、「まともなコンパイラーはatomicを最適化しない」というもので、興味深いのだが、欠番となっている。

ドワンゴ広告

この記事はドワンゴ勤務中に書かれた。

ドワンゴは本物のC++プログラマーを募集しています。

採用情報|株式会社ドワンゴ

CC BY-ND 4.0: Creative Commons — Attribution-NoDerivatives 4.0 International — CC BY-ND 4.0

3 comments:

  1. いやー、そろそろ話についていけなくなりそうですよ。MSがガッツリVC改変して自分にも恩恵をもたらしてほしいものです。
    1年に一回の改編ではテクノロジーについていくのは難しくなってきてますね。とほほーい。

    ReplyDelete
  2. > char c = u8"c" ;
     これ正しくはシングルクォートじゃないかと。

    > character-literal:
    > encoding-prefixopt ' c-char-sequence '

    ReplyDelete

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.