C++規格書のココを読め
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGというリンクを張ろう。テキストはこれ。
http://www.kuzbass.ru/docs/isocpp/
0002とりあえず
NGNG0003デフォルトの名無しさん
NGNG・_ で始まる名前はなぜ使っちゃいけない?
17.4.3.1.2 - Global names [lib.global.names]
http://momiji/data/doc/isocpp/lib-intro.html#lib.reserved.names
・宣言と定義の違いは?
3.1 - Declarations and definitions [basic.def]
http://momiji/data/doc/isocpp/basic.html#basic.def
・関数テンプレートではデフォルトのテンプレート引数を使えない
14.1 - Template parameters [temp.param]
-9-
http://momiji/data/doc/isocpp/template.html#temp.param
0004デフォルトの名無しさん
NGNGそこがポイントだ。
00053
NGNG・_ で始まる名前はなぜ使っちゃいけない?
17.4.3.1.2 - Global names [lib.global.names]
http://www.kuzbass.ru/docs/isocpp/lib-intro.html#lib.reserved.names
・宣言と定義の違いは?
3.1 - Declarations and definitions [basic.def]
http://www.kuzbass.ru/docs/isocpp/basic.html#basic.def
・関数テンプレートではデフォルトのテンプレート引数を使えない
14.1 - Template parameters [temp.param]
-9-
http://www.kuzbass.ru/docs/isocpp/template.html#temp.param
00063
NGNG・_ で始まる名前はなぜ使っちゃいけない?
17.4.3.1.2 - Global names [lib.global.names]
http://momiji/data/doc/isocpp/lib-intro.html#lib.reserved.names
・宣言と定義の違いは?
3.1 - Declarations and definitions [basic.def]
http://momiji/data/doc/isocpp/basic.html#basic.def
・関数テンプレートではデフォルトのテンプレート引数を使えない
14.1 - Template parameters [temp.param]
-9-
http://momiji/data/doc/isocpp/template.html#temp.param
0008偽1
NGNG0009デフォルトの名無しさん
NGNG参考書はコレで
0010デフォルトの名無しさん
NGNGそれはさすがにまずかろー。ここで買ってね。18ドル。
http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG俺落としちゃったけど削除しとこう・・・
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG本当に削除した?
0015デフォルトの名無しさん
NGNG0016lo;こんう&lro;
NGNG0017lo;スレジマ&lro;
NGNG0018­
NGNG0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNGttp://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm
0021デフォルトの名無しさん
NGNGハァ?
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGhttp://std.dkuug.dk/jtc1/sc22/wg21/
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNGと20もの多弾プロ串を経由しているので追跡は不可能です。
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGあとニュースなんだからちゃんと「IPアドレス」って書け。
なんか投票までやってるし。
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG(=゚ω゚)ノぃょぅ
0037デフォルトの名無しさん
NGNGなんで?
IPなんて圧縮しなくても最低4バイトあれば記録できるYO!
0038デフォルトの名無しさん
NGNGはいはい能書きはいいから
実際問題、仮に削除された奴が
削除されたことに対して文句を言っても無駄でしょ
大袈裟に語らんでよ
0039デフォルトの名無しさん
NGNG他のサバもバンバンやっちゃって。
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGいいと思いますよ。>運営ボランティアの皆さん。
だれそれの正体とか言う話が出ると、それに呼応するように
トリップの教えあいとかして、テストスレなどに書き込む。
馴れ合いの一種だと思いますが、ちがうでしょうか。。。
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG24歳童貞もよ(ニュー速いちのうんこ好き) ◆RKlw/UJGqg
が著作権侵害の犯罪教唆しましたよ〜!!
http://live2.2ch.net/test/read.cgi/news/1041919882/717
717 :24歳童貞もよ(ニュー速いちのうんこ好き) ◆RKlw/UJGqg :03/01/09 00:01 ID:PgSHqi/K
>>699
おまいら買ったらすぐにnyに流せよ。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG俺は生だからうかつな発言はできないなぁ(w
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG<血液型A型の一般的な特徴>(見せかけの優しさ・もっともらしさ(偽善)に騙されるな!)
●とにかく気が小さい(神経質、臆病、二言目には「世間」、了見が狭い)
●他人に異常に干渉する(しかも好戦的・ファイト満々でキモイ)
●自尊心が異常に強く、自分が馬鹿にされると怒るくせに平気で他人を馬鹿にしようとする
(ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際にはたいてい、内面的・実質的に負けている)
●「常識、常識」と口うるさいが、実はA型の常識はピントがズレまくっている(日本の常識は世界の非常識)
●権力、強者(警察、暴走族…etc)に弱く、弱者には威張り散らす(強い者に弱く、弱い者には強い)
●あら探しだけは名人級(例え10の長所があってもほめることをせず、たった1つの短所を見つけてはけなす)
●基本的に悲観主義でマイナス思考に支配されているため、性格がうっとうしい(根暗)
●一人では何もできない(群れでしか行動できないヘタレ)
●少数派の異質、異文化を排斥する(差別主義者、狭量)
●集団によるいじめのパイオニア&天才(陰湿&陰険)
●悪口、陰口が大好き(A型が3人寄れば他人の悪口、裏表が激しい)
●他人からどう見られているか、体裁をいつも気にしている(「世間体命」、「〜みたい」とよく言う)
●自分の感情をうまく表現できず、コミュニケーション能力に乏しい(同じことを何度も言う、知障)
●表面上意気投合しているようでも、腹は各自バラバラで融通が利かず、頑固(本当は個性・アク強い)
●人を信じられず、疑い深い(自分自身裏表が激しいため、他人に対してもそう思う)
●自ら好んでストイックな生活をし、ストレスを溜めておきながら、他人に猛烈に嫉妬する(不合理な馬鹿)
●執念深く、粘着でしつこい(「一生恨みます」タイプ)
●自分に甘く他人に厳しい(自分のことは棚に上げてまず他人を責める。しかも冷酷)
●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(他人をけなして相対的に自分の立場を引き上げようとする等)
それと、O♀はエコヒイキきつくて、冷酷だからな。
A♂の異質排除×O♀の冷酷=差別・いじめ とあいなる。
0054デフォルトの名無しさん
NGNGその広末がどの広末なのか特定するのは事実上不可能です。
しかし特定の有名人の広末を主題とするスレッドで
類似発言を連呼すればグレーゾーンに入りますね。
「ケース・バイ・ケース」という言い古された言葉を
貴方の鈍いオツムに吹き込んでおくしかありません。
上の最後の一行について名誉毀損で訴えますか?(笑
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG匿名は弱者保護のためですって言ってのは、やっぱり詭弁だったんだね (´・д・`)
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGhobby 今何をされてるんでつか?
0059デフォルトの名無しさん
NGNG0060山崎渉
NGNG0061デフォルトの名無しさん
NGNG0062山崎渉
NGNG0063山崎渉
NGNG0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG0066山崎渉
NGNG0067山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0068山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGage2chの標準機能で荒らされてるみたいなんだけど
0071(*゚Д゚)
NGNG0072(*゚Д゚)
NGNG0073(=゚Д゚)
NGNG0074(*゚Д゚)
NGNG0075デフォルトの名無しさん
NGNGなるほど、勉強になる。
0076(*゚Д゚)
NGNG0077デフォルトの名無しさん
NGNGって無理だわな。
英語も勉強しないと。
00783 ◆zz/Ed1ynRo
NGNG同意
ところで、携帯ゲーム機"プレイステーションポータブル(PSP)
このPSPは、新規格UMD(ユニバーサルメディアディスク)というディスクを利用しており、そのサイズは直径6cmととても小さい(CDの半分程度)。 容量は1.8GBとなっている。
画面は4.5インチのTFT液晶で、480px x 272px(16:9)。MPEG4の再生やポリゴンも表示可能。外部端子として、USB2.0とメモリースティックコネクタが用意されているという。
この際、スク・エニもGBAからPSPに乗り換えたらどうでしょう。スク・エニの場合、PSPの方が実力を出しやすいような気がするんですが。
任天堂が携帯ゲーム機で圧倒的なシェアをもってるなら、スク・エニがそれを崩してみるのもおもしろいですし。かつて、PS人気の引き金となったFF7のように。
いきなり変なこと書いてスマソ‥‥
GBAと比較してみてどうですかね?(シェアのことは抜きで)
0079山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0080山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0081山崎 渉
NGNG0082山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0083デフォルトの名無しさん
NGNGA.12 Templates
template-declaration:
[export](opt) [template] < template-parameter-list > declaration
template-parameter-list:
template-parameter
template-parameter-list, template-parameter
template-parameter:
type-parameter
parameter-declaration // プリミティブ型のことか? template <int int_t>
type-parameter:
[class] identifier(opt)
[class] identifier(opt) = type-id
[typename] identifier(opt)
[typename] identifier(opt) = type-id
[template] < template-parameter-list > class identifier(opt)
[template] < template-parameter-list > class identifier(opt) = id-expression
// id-expressionというのはここでいうtype-id(はっきりしている型)
// が求まる式という意味なのだろうか?
0084デフォルトの名無しさん
NGNGtemplate-name < template-argument-list(opt) >
template-name:
identifier
template-argument-list:
template-argument
template-argument-list, template-argument
template-argument:
assignment-expresion //これはなんだ?代入式って?
type-id
id-expression
explicit-instantiation:
[template] declaration
// 汎関数、汎クラスの複数回インスタンス化防止。コンパイラへの優しさ。
explicit-specialization: // 完全特殊化
[template] < > declaration
// specializationとは型パラメタに応じて一つ以上定義部を設けること。
0085デフォルトの名無しさん
NGNGhttp://www.csci.csusb.edu/dick/c++std/cd2/gram.html
0086デフォルトの名無しさん
NGNGhttp://www.kuzbass.ru/docs/isocpp/
0087デフォルトの名無しさん
NGNG-1- A template defines a family of classes or functions.
template-declaration:
export[opt] template < template-parameter-list > declaration
template-parameter-list:
template-parameter
template-parameter-list , template-parameter
The declaration in a template-declaration shall
* declare or define a function or a class, or
* define a member function, a member class or a static data member of a class template
or of a class nested within a class template, or
* define a member template of a class or class template.
A template-declaration is a declaration. A template-declaration is also a definition if
its declaration defines a function, a class, or a static data member.
テンプレート宣言の宣言は
* クラス又は関数の宣言、定義する
* 1)メンバ関数、2)メンバクラス、又は3)クラステンプレートのスタティックメンバ、
4)クラステンプレートにネスト宣言されたクラスのスタティックメンバ を定義する。
* クラス又はテンプレートクラスのメンバテンプレート(クラス、関数)を定義する。
この辺りはちょっと具体例がないので分り難い。
Static Data Memberがこのぐらいの抽象度の説明で出てくるのは印象ぶかい。
0088デフォルトの名無しさん
NGNGdeclaration. In a function template declaration, the declarator-id shall be a
template-name (i.e., not a template-id). [Note: in a class template declaration, if the
declarator-id is a template-id, the declaration declares a class template partial
specialization (temp.class.spec). ]
(tenplate-declarationとは関数テンプレート、クラステンプレートを人まとめにしたもの)
テンプレート宣言は{namespace scope,class scope}にだけapearする。
つまり関数内ではダメですよ、ということらしい。union内ではどうなのだろうか?
関数テンプレート宣言においては、declarator-idはtemplate-nameとなる。
declarator-id
template-id
template-name
これらの文法内での意味は保留。
クラステンプレート宣言内において、declarator-idとtemplate-idなら、
その宣言はクラステンプレートの部分的特殊化となる。
部分的特殊化はLOKIなどで活用されてるので分りやすい。
問題は、文法用語のこと。とりあえず、declarator-idとtemplate-idが同じなら
テンプレートの部分的特殊化と見なしてよいということ。
まあクラステンプレートの名前のことだと思うけど。
0089デフォルトの名無しさん
NGNGinit-declarator-list in the declaration shall contain at most one declarator. When such
a declaration is used to declare a class template, no declarator is permitted.
8章をみるとdeclaratorについてはこう書いてある
A declarator declarares a single object, function, or type within a declaration.
Init-declarator-list appearing in a declaration is a comma-separated sequence
of declarators.
つまり宣言文のなかで、宣言される一つ以上の対象のことらしい。
template-declarationという集合の中の、
完全特殊化と、explicit instantiationについて書いてある。
ここは分り難い。most one declaratorとは何のことなのか?
なんのことなのか分らん。英語力が足りない。
0090デフォルトの名無しさん
NGNG> template-argument:
> assignment-expresion //これはなんだ?代入式って?
定数値を取るテンプレート( template<int N> class array とか )に対する引数。
中に array< 1==2 ? 3 : 4+5*6 > と式を書いても構文上は構わんので。
# ここは本当は conditional-expression であるべきだとは思うんだけど。
0091デフォルトの名無しさん
NGNG> most one declaratorとは何のことなのか?
「at most one declarator」。
最大でも一つの宣言子。
0092デフォルトの名無しさん
NGNG赤ペン先生ありがとうございます。
英語力、C++対する理解ともにかなり怪しいので助かります。
0093デフォルトの名無しさん
NGNGspecialization (temp.expl.spec), or a class template partial specialization shall not
have C linkage. If the linkage of one of these is something other than C or C++, the
behavior is implementation-defined. Template definitions shall obey the one definition
rule (basic.def.odr). [Note: default arguments for function templates and for member
functions of class templates are considered definitions for the purpose of template
instantiation (temp.decls) and must also obey the one definition rule. ]
テンプレート名はリンケージを持つかもしれない。
テンプレート(そのもの??)、テンプレートの完全特殊化、
又はクラステンプレートの部分的特殊化はCリンケージを持つことはない。
もし、CかC++以外のなんらかのリンケージがひとつあるなら、
その動作はimplement-defined(実装依存?)である。
テンプレートの定義はひとつの定義ルールに従う。
関数テンプレートとクラステンプレートのメンバー関数のデフォルト引数は
テンプレートのインスタンスを目的とした定義と考えられ、また
ある一つの定義ルールに従わなければなりません。
definition ruleというのが3.2に書いてあるが、難しいのでパス。
0094デフォルトの名無しさん
NGNGfunction, object, enumeration, enumerator, namespace, or type in the same scope (
basic.scope), except as specified in (temp.class.spec). Except that a function template
can be overloaded either by (non-template) functions with the same name or by other
function templates with the same name (temp.over), a template name declared in namespace
scope or in class scope shall be unique in that scope.
クラステンプレートは他のテンプレート、クラス、関数、オブジェクト、enum{型,宣言子}、
namespace、同一スコープにある型と同じ名前を持つことはない。
いくつかの例外はtemp.class.specを見ろと。
テンプレート関数がテンプレート関数、非テンプレート関数の両方に対して
オーバーロードできることを除けば、テンプレートはクラススコープ、ネームスペース
においてユニークな名前で宣言される。
このクラステンプレートにおける例外が曲者っぽい。
0095デフォルトの名無しさん
NGNG// class
{名前空間,クラス{,テンプレート},関数{,テンプレート}}内のクラス{,テンプレート}
// function
{クラス{,テンプレート}のメンバとしての,名前空間内の}{,インライン}関数{,テンプレート}
というかんじでしょうか。存在するスコープと属性を元にリストアップ。
一覧が見たい人は、for str in 上の文字列;do echo $str;done
とでもしてみてください。
クラスに関しては10通り。関数に関しては12通り。まだまだあるかもしれません。
仕様書において、関数やクラスの特徴をそのたびごとにずらずらと並べられているのは
分り難いと思いました。一度全ての組み合わせを用いられるケースとは別に挙げて
しまう方が分りやすいかと。
0096デフォルトの名無しさん
NGNGnon-inline member function template, a non-inline member function of a class template or
a static data member of a class template may be preceded by the export keyword. If such
a template is defined in the same translation unit in which it is declared as exported,
the definition is considered to be exported. The first declaration of the template
containing the export keyword must not follow the definition.
1)名前空間スコープでの非インライン関数テンプレートの宣言、定義、
2)非インラインのメンバー関数テンプレート
(ただのメンバーというのは非テンプレートのクラスのメンバという意味らしい)
3)非インラインのクラステンプレートのメンバー関数
4)クラステンプレートのスタティックデータメンバ
これらはexportキーワードにより優先されるかもしれない。
何に対して優先されるのか?
もし、exportとして宣言されるそのようなテンプライズされたクラスや関数が
同じ変換ユニット内で定義されるなら、その定義はexportされる。
exportキーワードを含むテンプレートの最初の宣言(最初でない宣言とは?)は
定義に従ってはいけない。
exportについて説明しているのだけど、separation compilationは当分は
使えないだろうからパス。Inclusion compilation最強。
0097デフォルトの名無しさん
NGNGfunction members, static data members, member classes, member class templates and
non-inline function member templates which are defined in that translation unit
exported.
exportされるクラステンプレートを宣言することは、
1)非インラインメンバ関数
2)非インラインメンバ関数テンプレート
3)スタティックメンバデータ
4)メンバクラス
5)メンバクラステンプレート
変換ユニットで定義されるこれらの全てがexportされることと同等である。
つまり、あるクラステンプレートがexportされたら、そのクラスの1-5の要素は
全てexportされると。
一般にexportの難しさは
foo.h テンプレート宣言
foo1.c テンプレート定義(export指定)
foo2.c テンプレートのインスタンス化
という関係があるとき。foo1.cにおいてexportされた定義がfoo2.cにおいて
参照できるかできないか。Cでは通常inline関数はヘッダファイルに書くものだが、
C++では他の*.cppつまりオブジェクトファイルに入れておけるということなのかな??
0098デフォルトの名無しさん
NGNGexported only once in a program. An implementation is not required to diagnose a
violation of this rule. A non-exported template that is neither explicitly specialized
nor explicitly instantiated must be defined in every translation unit in which it is
implicitly instantiated (temp.inst) or explicitly instantiated (temp.explicit); no
diagnostic is required. An exported template need only be declared (and not necessarily
defined) in a translation unit in which it is instantiated. A template function declared
both exported and inline is just inline and not exported.
無名名前空間で定義されたテンプレートはexportされない。
テンプレートはプログラム中でたった一度だけexportされる。
実装においては、これらのルールを破ることでメッセージ表示をする必要はない。
特殊化でもexplicitly instantiatedでもない非exportテンプレートは、
暗黙的、明示的インスタンス化される全ての変換単位において
宣言されていなくてはならない。
exportされるテンプレートは、インスタンス化される変換単位において
宣言だけされることを必要とする。
exportかつインラインとして宣言される関数テンプレートは、
インラインではあるあg、exportはされない。
0099デフォルトの名無しさん
NGNGdefinition of an exported template be compiled before any translation unit containing an
instantiation of that template. ]
実装によっては、exportされたテンプレートが定義された変換単位が、
インスタンス化される変換単位より、先にコンパイルされていなくては
ならないかもしれない。
とここまでわけもわからず読んでみて、exportはコンパイラの実装と、
言語的な仕様の板ばさみ状態で分り難い。通常、多くのテンプレートライブラリが
Includsion compilationでの仕様を前提としているので、この14はさらっと
概要だけ分ればいいのかな。
0100デフォルトの名無しさん
NGNG何度でもこの14 -*-を読まないとダメか。
0101デフォルトの名無しさん
NGNG突然、何だったんだ?
0102デフォルトの名無しさん
NGNG英語の勉強とテンプレートの仕様と駄スレの再利用が目的でした。
14章の頭しか読んでませんが、それでも年内に最後まで読みたいです。
どうか見逃してやってくださいm(__)m
0103デフォルトの名無しさん
NGNGなんとなく面白かったので再開する気ありませんか?
0104名無しさん@Vim%Chalice
NGNG0105デフォルトの名無しさん
NGNG教えて下さい。
0106デフォルトの名無しさん
NGNG確かに ISO の方だとちょい高すぎだが、ANSI(>>10)の方だと $18 で買える。
つか、今購入してDL中だ(w
0107!240
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1077985164/240
|18.4.1.3
|1 These functions are reserved, a C++ program may not define functions
| that displace the versions in the Standard C++ library (17.4.3).
となっているため、以下の関数を置き換えることはできない。
void* operator new(std::size_t size, void* ptr) throw();
void* operator new[](std::size_t size, void* ptr) throw();
void operator delete(void* ptr, void*) throw();
void operator delete[](void* ptr, void*) throw();
0108!240
NGNG|18.4.1.1 2,6,11 / 18.4.1.2 2,6,10
|Replaceable: a C++ program can define a function with
| this function signature that displaces the default
| version defined by the C++ Standard library.
となっているので、以下の関数は置き換えが可能である。
void* operator new(std::size_t size) throw(std::bad_alloc);
void* operator new(std::size_t size, const std::nothrow_t&) throw();
void operator delete(void* ptr) throw();
void operator delete(void* ptr, const std::nothrow_t&) throw();
void* operator new[](std::size_t size) throw(std::bad_alloc);
void* operator new[](std::size_t size, const std::nothrow_t&) throw();
void operator delete[](void* ptr) throw();
void operator delete[](void* ptr, const std::nothrow_t&) throw();
■ このスレッドは過去ログ倉庫に格納されています