ふ 流浪の日々

日々流されてます

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  72  : 記事  0  : コメント  1348  : トラックバック  34

ニュース




書庫

日記カテゴリ

このネタをサボりだしてから1年以上経過してしまいました・・・ISO/IEC14882:2003(E)(俗に言うC++の規格書)をほじろうというこの企画・・・サボっててすいません。

 

マグさんのお世話で大変だったの・・・(ウソです。単なるサボりです。)

 

※久しぶりなので今までのまとめ

【C++】Literals(その1:整数リテラル)

【C++】Literals(その2:文字リテラル)

【C++】Literals(その3:実数リテラル)

【C++】Literals(その4:文字列リテラル)

【C++】Literals(その5:真理値リテラル)

 

 

今回のお題は、本編ではなくて、Appendix(補足)の内容でございます。

お題は、

【Annex B(informative) Inplementation quantities】

でございます。

 

「コンパイラ作る時はコレくらいの処理はできるようにしとけや」な後ろにくっついている参考資料であります。

これは【規格に沿ったコンパイラなら必須】というわけではないのでご注意を。

 

というわけで、まず前文から。

1, Because computers are finite, C + + implementations are inevitably limited in the size of the programs they
can successfully process. Every implementation shall document those limitations where known. This documentation
may cite fixed limits where they exist, say how to compute variable limits as a function of
available resources, or say that fixed limits do not exist or are unknown.

コンピュータの資源は有限なので、制限があるのは止むを得ない。なので、「限界を明記」するか、「限界を計算」できるようにするか、「制限は無いよ」とするか、「制限なんて解らない」とするのか・・・とにかく処理系の制限について語るのを推奨していますね。というか、解らないコンパイラでの開発は怖い気が・・・

2 The limits may constrain quantities that include those described below or others. The bracketed number
following each quantity is recommended as the minimum for that quantity. However, these quantities are
only guidelines and do not determine compliance.

以下(このあと記述します)の項目に関しては、この数以上に制限してもよいということです。(後述のもの)括弧内が最小値の推奨値です。※ここでうたってますが、あくまでも【ガイドライン】ですので・・・

 

では、内容を(量があるので代表的なものだけ・・・)

Nesting levels of compound statements, iteration control structures, and selection control structures
[256].

複合文(compound statements, {}で囲まれた処理)、繰り返し文(iteration control structures, forループとかwhileループとか)、選択文(selection control structures, ifとかswitch)のネスト数 -----> [256]

# にーちゃん、いつここの処理通るの・・・

 

Nesting levels of conditional inclusion [256].

条件付き取込み(conditional inclusion, #if HOGE ~ #endifのような条件)のネスト数 -----> [256]

# 本当に#defineされてる条件はどれなのか・・・(最近のVisual StudioのIDEなら有効な#defineの色が変わってすぐ解りますが・・・)

 

Identifiers with block scope declared in one block [1024].

1つのブロック内で、そのスコープ範囲内の識別子 -----> [1024]

# 僕は頭が悪いのでスコープ内に10個も変数があればお腹いっぱいです・・・

 

Characters in one logical source line [65536].

1行内の文字数 -----> [65535]

# char sql[] = "select * from hoge where ・・・・以下ひたすら長いSQL  ";

# 【"hoge"  \ 改行  "hoge" ・・・】で文字リテラル連結して頂ければお互いハッピー・・・

※2008/07/03 774RRさんからご指摘を頂きました。「論理行」であるので、文字リテラルを改行で連結しても論理的に1行・・・でした。自分のおミソの悪さをゴメンナサイです・・・(´ω`;人)

※改行前にバックスラッシュも忘れてたので修正しております・・・(´ω`;人)

※2007/07/03 zakさんからご指摘を頂きました。文字リテラルの改行して連結→バックスラッシュ不要(あっても大丈夫ですが・・・)です。

 

Number of characters in an internal identifier or macro name [1024].

内部識別子、マクロの文字数 -----> [1024]

# #define HOGE_WANKUMA_FOO_BAR_UWA_NANIO_O_SURU_FUJIKO_・・・・・・・・・

 

Arguments in one function call [256].

関数の引数 -----> [256]

# 構造体とかクラスとかにして纏めて渡していただけないでしょうか・・・

 

うーん、フルに使うとお友達無くしそうですが、「ここまではOK」という線引きができてると何となく精神衛生上よろしいかも。

お暇な時にお使いのコンパイラのマニュアルを見ると、「こんなに使わないんだからそこまで実装しないよ・・・」とか「先生!言われたことは義務じゃなくても守ります!」なコンパイラか解りますね。

 

ではでは、次回はそんなに間が空かないうちに書きたいです。。。

 

投稿日時 : 2008年7月2日 17:30

コメント

# re: 【C++】C++が語る「お腹いっぱい」 2008/07/02 21:35 774RR
logical source line って
・トライグラフ処理後
・バックスラッシュ+改行を連結後
・コメント除去前
の1行のこと(2.1-2) なので 65536 は意外に小さい値っす。
1論理行が1万文字超ってのは過去に見たことあるっす。

# re: 【C++】C++が語る「お腹いっぱい」 2008/07/03 6:17
>774RRさん

こういうご指摘を頂くと、自分のツメの甘さを感じますorz・・・ご指摘ありがとうございます!

>1論理行が1万文字超ってのは過去に見たことあるっす。

とはいえ、お目にかかりたいかといえばちょっと・・・ですねw


# 余談ですが、トライグラフをわざわざ使ってる??<~??>みたいに使っているのをみたことってないですね・・・日本だと関係するのは\くらいだからいいんですけど。。。

# re: 【C++】C++が語る「お腹いっぱい」 2008/07/03 7:31
今頃気がつきましたが、以下の一文、バックスラッシュが抜けてますよ・・・>自分

# 【"hoge" 改行 "hoge" ・・・】で文字リテラル連結して頂ければお互いハッピー・・・

# re: 【C++】C++が語る「お腹いっぱい」 2008/07/03 9:51 zak
>以下の一文、バックスラッシュが抜けてますよ・・・
\無しでも問題ないのでは?

//\がなければカードで。

# re: 【C++】C++が語る「お腹いっぱい」 2008/07/03 10:35 774RR
> \無しでも問題ないのでは?
御意。
文字列リテラル結合は改行=論理行を超えていくので。
文字列リテラルの連結後の文字数 (65536) を超えそうな勢いだとまたアレですが。

# re: 【C++】C++が語る「お腹いっぱい」 2008/07/03 20:28
>zakさん
>774RRさん

ご指摘ありがとうございます!

自分のそそっかしさというか、「本当に解ってるの?」と自分を責めたりでございますorz

こりゃ次回は「論理行」についてネタにしますか・・・

# そこでまた自分のツメの甘さにつっこまれるに100プリンス



# re: 【C++】C++が語る「お腹いっぱい」 2008/07/04 1:07 うすいっち
>FUJIKO

ルパン.cpp??
いや、それならば、FUJIKO_CHAN ですね。

って事は次元.cppか五ェ門.cppですね。。


# re: 【C++】C++が語る「お腹いっぱい」 2008/07/04 9:21
>うすいっちさん

すいません・・・ネタはこいつなんです・・・
http://ja.wikipedia.org/wiki/%E3%81%8F%E3%81%81w%E3%81%9Bdrftgy%E3%81%B5%E3%81%98%E3%81%93lp

# ちなみに僕にとって「ふじこ」はジャンカルロ・フィジケラです。


Comrade kill yourself.

# AQkWEjFPbbCiMPiuuTI 2011/12/22 21:43 http://www.discreetpharmacist.com/
5YCJnk Right from this article begin to read this blog. Plus a subscriber:D

# TxMqvhSSeZGWr 2011/12/23 0:13 http://247options.com/
Extremely easy by words but in reality?, a lot of things don`t correspond. Not everything is so rosy..!

# JyhYBYBMshOxW 2011/12/23 18:27 http://247options.com/
Pleased to read intelligent thoughts in Russian. I`ve been living in England for already 5 years!...

Post Feedback

タイトル
名前
Url:
コメント