2010-03-03

C++0x本:optをどうするか

C++の文法には、省略可能なものが多くある。たとえば、関数の宣言だ。

D1 ( parameter-declaration-clause ) attribute-specifieropt cv-qualifier-seqopt ref-qualifieropt exception-specificationopt

optとは、optionalの略であり、省略可能なことを意味する。これをどうするか。つまり、

D1 ( 仮引数宣言句 ) アトリビュート指定子 CV修飾子 リファレンス修飾子 例外指定

このような文法記法にたいして、どうやって、省略可能な部分を、省略可能であることを伝えるのか。

当初、(省略可)という記法を考えた。しかし、これは、文法としての括弧と紛らわしい。それに、日本語には、イタリック体や太字は、ふさわしくない。では、C++のBasic Source Charactersと誤認されない、他の括弧をつかうのはどうか。たとえば、「」、『』、【】の類だ。

あるいは、規格のように、字を下げる表現を使うという方法もある(正式名称が分からないが)

D1 ( 仮引数宣言句 ) アトリビュート指定子省略可 CV修飾子省略可 リファレンス修飾子省略可 例外指定省略可

optはoptでもいいのではないかという意見があった。

D1 ( 仮引数宣言句 ) アトリビュート指定子opt CV修飾子opt リファレンス修飾子opt 例外指定opt

4 comments:

  1. opt は optional の略で 省略可ではないんでは?

    ReplyDelete
  2. 意味を考えたら「付けることも可能」と「省略可能」は論理的に同値になるでしょ。

    ReplyDelete
  3. すみません、よく読みませんでした
    言いたいことは、指定の必要が無ければ 確かに
    省略は出来るのでしょうが、 optional の 意味
    を考えると、追加記述が可能という意味の方が強い
    と思ったのです。
    仕様を厳密に表す事を考えれば opt = 省略可は
    少し同意出来ないだけです。
    opt = 省略可 と 意味的になった経緯をご紹介いただければ
    後学になります。

    ReplyDelete
  4. optを省略可能としているのは、単に私にとって、一番最初に思い浮かんだ、一番自然な日本語だったからです。
    実際、optionalに対して、省略可能という訳語は、現実に使われています。
    これをたとえば、辞書的に、随意、任意、オプショナルと訳したとして、それで「省略可能」以上に分かりやすいなら、是非とも使いたいのですが、私の言語感覚では、より分かりやすくなったとは思えません。

    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.