[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 08:49 / Filesize : 163 KB / Number-of Response : 776
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++ってなんであんなに肥大化しちゃったの?



1 名前:デフォルトの名無しさん [2008/08/28(木) 14:48:15 ]
仕様が大きすぎるくせに、
実用的なライブラリが未整備。

なんかいらいらしない?
こんなこともできないくせに、
なんでこんな仕様ばっかり作るんだよって。
C++ってなんであんなに肥大化しちゃったの?
名前: 仕様書無しさん
E-mail:
内容:
仕様が大きすぎるくせに、
実用的なライブラリが未整備。

なんかいらいらしない?
こんなこともできないくせに、
なんでこんな仕様ばっかり作るんだよって。

C++はなんでもできます。でもなんにもできてないので
つくってね。的な。

175 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 22:59:16 ]
それと現実的な実行スピードとサイズもCが一番優れてるよな

176 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 23:04:31 ]
>>175
結局のところCを完全に越えた言語がないってことだろ
だから、C++,JAVA,C#,Objective-CなどのようなC言語の派生でうろうろしている
DはCの派生言語の整理かつ集大成にしようとしているようだが、
移行するほどの利点がない

177 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 23:58:24 ]
>>173
結局UNIXとWindowsじゃ要求されるものが違いすぎて
そもそも要求の次元からして殆どの分野で同じものじゃ済まされないんだよな
JAVAあほす

178 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 00:00:24 ]
Cの移植性ってWIN32APIとかはどげんすると?

179 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 02:55:49 ]
Objective-CなんてC++と同等に並べんなよ。原住民の言語じゃねーか。
C#もエスペラント語みたいなもんだろ。綺麗だけど流行っちゃいねえ。

180 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 04:53:47 ]
お前の中では8年前で情報が止まってるんだなw

181 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 06:52:46 ]
お前は8年間妄想してたんだな。Objective-Cでパンは食べれたかい?

182 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 07:22:33 ]
いやあのC#の話なんですが

183 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 15:10:11 ]
Objective-Cは神



184 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 21:07:27 ]
一方、ベルギーの音楽ソフトメーカーは日本人を雇った
ttp://www.flstudio.com/documents/flchan.html


185 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 14:08:51 ]
Objective-Cは神

つまり糞の役にも立たない

186 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 18:57:40 ]
例えば C++ のどの機能を削れるの?

187 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 19:30:02 ]
マクロを削ろう。
ストローのおじさんもマクロを削りたいみたいだし。

188 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 21:41:24 ]
全部の機能を削ればいいと思うよ
そうすれば、移植性が最高、実行速度もトップレベル、バイナリサイズも小さい、しかも習得が容易な言語になる

189 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:01:52 ]
Cコンパイラの移植性とネイティブの実行効率が欲しいだけなら
Cソースにコンパイルすればいいんですよ
昔のC++、eiffelやsatherのようにね

190 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:13:02 ]
昔のC++からCへのトランスレータには例外とかRTTIないでしょ
そのへんちゃんとしてるのある?

191 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:40:00 ]
>>190
>>188

192 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:51:53 ]
>>188
ばーか

193 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:58:18 ]
>>190
eiffelもsatherも例外ぐらい当たり前のようにあるはずだよ



194 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 23:05:07 ]
さらに C 言語から switch 文、for 文のように必要ない機能を削れば移植性が高くて
学習しやすい言語になるよ。

195 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 23:10:01 ]
>>190
例外もRTTIも自前で実装できない人の発言。
例外なんてジャンプテーブルをスタック状に積み重ねるだけだし、RTTIなんてvtableのアドレスをそのまま使えばいいだけ。

196 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 23:12:58 ]
>>194
C言語からswitchとforを削って移植性が高くなるのは、
その仕様の処理系がC言語の処理系より多くの環境にある場合だけだね

197 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 23:30:53 ]
>>196
C言語のサブセットだからすでにC言語の処理系と同じ数の処理系があると考えていい。

198 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 23:32:18 ]
同じ数の処理系なら移植性は同じっていってるんじゃん

199 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 23:46:40 ]
サブセットの方が処理系が多いし、単純な仕様のほうが移植性が高いんじゃないの?

200 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 23:51:04 ]
>>194
つまんね

201 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 23:54:05 ]
現実にそんな処理系があるなら移植性は高いけど
でもC言語からswitchとforを削った処理系がある?無いよね?
だからそのサブセットは普通のCと比較して実際の移植性は同じだってこと
いま世の中に存在しない夢のコンパイラは比較対象にならない

202 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 00:01:14 ]
>195
cfrontと禿はそれが現実的なコストで出来ないって判断したよ
つか、自前で実装って、毎回ターゲットの環境用に書くんだから移植性は最低だよね

203 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 00:02:27 ]
>>194
ifやwhileなどで置き換えができるからいらないっていう主張なら、関数定義と?と末尾再帰だけでOKになってしまうぞ




204 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 00:09:22 ]
>>194
使いにくくなっちゃうけどね

205 名前:195 mailto:sage [2008/09/24(水) 04:17:19 ]
>>202
もっとわかりやすく。D&Eかなんかのページ数でもいい。
または、移植性最悪だからといってポーティングを諦めた処理系があるなら教えてくれ。

206 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 04:51:33 ]
正直、例外は好きじゃない。

207 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 08:42:09 ]
Maybeを使うんですか

208 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 09:01:13 ]
>205
ここまでの流れをまとめると
>188 C言語最高
>189 ならC++からCへのトランスレータを使えばいいんじゃね?
>190 でも例外とかRTTIとかモダンな仕様を満たすトランスレータは無いよね?
>195 例外とRTTIくらい自前で実装しろ、雑魚
>202 禿もトランスレータでは現実的に無理って判断したよ?


209 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 10:15:23 ]
>>195
移植性の話をしてる時に自前で実装すればいいって発言はありえない

210 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 11:41:49 ]
>>205
スタック操作がからんだら移植性が失われるのは当たり前。阿呆か。

211 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 20:23:42 ]
C++は、C言語がそれほど変わらず存在し続ける為の生け贄。UNIXが存在する限りこの連鎖は断ち切れん。

未来永劫C++はC言語の為に拡張され続ける運命にある、..........................たぶん、

212 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 22:36:57 ]
C++信者って195みたいなのばっかりなの?

213 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 22:44:13 ]
C++信者なんていませんよ。
ファンタジーじゃあるまいし。



214 名前:デフォルトの名無しさん [2008/09/24(水) 23:08:17 ]
195はファンタジーかよ

215 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:10:55 ]
C++がファンタジーになる時代はいつですか?

216 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:24:31 ]
C++標準化委員会が「新しい機能はなるべく付け加えるな」と
言い続けてこれだからなあ

PGの欲望っていうのはとどまる所を知らない

217 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 01:13:17 ]
C++なんてコンピュータを制御するための設定ファイルですよ。

218 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 02:32:04 ]
C++ってそんなにダメか?

スピードとそれなりの汎用性を必要とする信号処理フィルタなんて書こうと思ったら
「C++ と 部分的にアセンブラ化の組み合わせ」が、今の最適解じゃない?

実験程度ならmatlabやjavaでもいいけど、スピード命ならC/C++に適わない
まあC++でなくても、Cで済むんだけど、規模が大きいときや、
フィルタを組み合わせたいとき、C++の方が記述が楽になる

219 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 04:10:09 ]
++とか一般人に分からない演算子使うのやめて
C 2.0に名前変えるべき

220 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 06:21:41 ]
むしろすべてC++でいいと思う。最近似たような言語が増えて効率悪すぎ。

221 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 08:06:11 ]
配列とポインタは明確に区別するべきであった。
何故一つ余計に&付けるのをケチったんだ。

222 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 09:03:26 ]
>>218
C++がどうしようもなくダメってわけじゃなくて
CとC++を明確に区別して比較したらC言語の方がより良いってことでしょ

223 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 10:03:46 ]
>>221
配列とポインタを同列に扱えるのがC/C++の強み。
嫌なら使うな。



224 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 10:25:46 ]
>>222
>C言語の方がより良い
誰にとって、どういう点で「良い」つってんだお前は。

225 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 10:44:56 ]
188からの流れ読んだら?
移植性とか実行時の効率とか学習コストの点で「良い」んだろ
まあ個人的には速度に関しては有意な差は無いと判断するけどな

226 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 11:12:26 ]
初期コストが低くてもその後ずっと開発コストが高かったら意味ないだろ。
開発コストが低くてもエンドユーザで実行コストが高かったら意味ないだろ。
C++ が最適

227 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 11:19:17 ]
1〜2行目と3行目に関連が無い
これがファンタジーってやつかw

228 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 11:50:19 ]
>>225
>188からの流れ
そっからかよw
強引な言い訳だな。

229 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 11:57:55 ]
ごめんな
言い訳じゃないんだけど>>208にまとめがあったからつい…

230 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 12:25:28 ]
ばかばっか

231 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 12:43:12 ]
>>227
いちいち説明を書かないと関連性が分からない
めんどくさいやつだな

232 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 18:18:26 ]
いや、関連性は無いぞ。
C++が優れていると主張したいならもっと客観的・論理的な視点を持ってくれ。
226の場合はまず、開発コストという、あいまい且つ広範囲な言葉を使うのをやめて、
もっと定量化可能な別のものさしを定義する必要がある。
次にそれを測定し比較、さらに開発コストとそれ以外のメリットデメリットを比較検討、
その結果C++が最適だと主張するなら構わない。
それを行わず「C++最適」の一点張りでは信者は盲目だと思われても仕方が無いな。

233 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 18:19:38 ]
長い。
3文字でまとめてくれ。



234 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 18:23:19 ]
無関連

235 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 18:23:22 ]




236 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 18:44:40 ]




…どうでもいいですが、C++ を More C として使う発想のない人がいますね。

237 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 18:52:53 ]
そんな使い方つまらないから

238 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 18:57:16 ]
BetterじゃなくてMoreなのかよwwww
さすがC++信者、その発想はなかったわwwww

239 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 20:18:14 ]
俺は自分でプログラム書くときは C++
しかし、外部の業者に仕様書出して作ってもらうときは原則C
C++でかかれたひどいプログラムは見るに耐えない

240 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 22:14:12 ]
型チェックに厳しいところだけでも C++ の方が良いと思うが、もしかして C99 で同レベルになってたりする?

241 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 22:47:28 ]
CINTで開発したら、コンパイル頻度へってええぞー。

242 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 00:51:49 ]
少なくともUNIX界では一部のtkが使ってる程度のニッチ言語

243 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 01:00:47 ]
UNIXだとやはりCなのかね



244 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 02:32:28 ]
GNUとかも大体Cだと思う。
プロジェクト管理ツールのsubversionはCでした。

FireFox3は大体C++でした。

245 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 07:57:31 ]
>>242 Be…

246 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 09:54:54 ]
>>240
C99はその辺の仕様は変わってない。
どっちかってーと、便利な方向に拡張されてる印象。
(複合リテラルとか可変引数マクロとか)

247 名前:デフォルトの名無しさん [2008/09/26(金) 10:34:37 ]
いま全部読みなおしたけど意外と良スレ
ただもうちょっとまともなC++擁護派の意見が欲しい

248 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 11:05:10 ]
Mozillaのドキュメント読むとアレはもはやC++とは呼びたくない代物だ
まあ確かにC++の可搬性は低いと認めざるを得ないな

C99は独自拡張の現状追認(inlineとか)と可搬性向上(int32_tとか)
それとブロック途中で変数宣言が出来るようになった(C++から逆輸入)
あとC99とC++とは互換性がない
(まあ常識的な範囲では大丈夫だし、すぐに仕様を取り込むだろうけど)

249 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 12:16:44 ]
結構Cも変化してきてたんだな。

250 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 13:05:10 ]
C でプログラム書いている人って忍耐強いね。
C++ を覚えてから C でプログラムを書くなんて考えられなくなった。
Ruby を覚えて凄く便利だと思ったけど C++ とは役割が違うので C++
は捨てられません。

251 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 13:23:03 ]
C++とBeOSといえばfragile base class problemだな
ttp://www.st.rim.or.jp/~osada/translation/developers/BNL_articles/Issue79-insights-j.html
など

252 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 15:19:17 ]
OS の API を COM 風のインタフェースにすればよかったのに。

253 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 22:39:54 ]
C++はほかのプロセスにクラスオブジェクトを送ろうとするだけで困難に直面するからなぁ。



254 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 22:52:27 ]
それはアラインメントの問題じゃなくて??
だとするとCで構造体送っても同じだと思うけど。

255 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 23:01:28 ]
vtable付き構造体を別プロセスに送るのは、そもそも無茶ではなかろうか

256 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 23:14:43 ]
一般的な OS だと vtable 付きに関わらず別プロセスに送れないんじゃない?

257 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 02:42:11 ]
>>253はマヌケな指摘!

もちろん、COMやマルチスレッドを使うときC++が多少不便なのは分かるけど
それは言語の文法的な問題というよりは、言語がサポートするレンジの問題

258 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 08:42:31 ]
ガキの時に遊び場だった小山がたくさんあるとこで
台風が過ぎた後、小山が崩れて穴が開いてたんだよ。
石が崩れててその中に懐中電灯もって仲間と入ってった。
そして通路みたいなとこ奥の方へいったら
人形みたいのが並べてあって今度は横のほうに部屋というか
空間があった。
壁に懐中電灯で照らすとなんか落書きというか
絵が描いてあったぜ。
北斗七星はガキの俺でもわかったが
あとは空を舞う女の絵
テーブルみたいなのがその部屋にあって
天井のほうにも絵があったから
その石テーブルに3人で乗っかったら
そのテーブルの台が割れちまった。
痛いと思ったらなんか石と鉄の棒みたいなので
足挟まってた。石をどけると
何か大きな箱の中に入ったみたいで中には
キラキラ光る数珠の玉みたいのとか、鉄の棒、汚れた布切れ
と小さい円盤みたいなものが何枚かあったよ。
俺は面白えと思ってみんなに内諸にしようと約束
して外にでることにした。
俺たちが外に出ようとして元の出口の方にいったら
ゴゴゴゴーとか地鳴りが聞こえて水が突然津波みたいに
俺たちを流した。
その後俺たちは田んぼまで流れてその場所が
どこかわからなくなっちまった。
後で大きくなった時にそこの場所が改めて確認した。
崩れたまま今は草ボーボーになって残ってる。


259 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 20:18:20 ]
MPI使った分散計算とかに使うととたんに困る。
ポリモフィックなことしてたりすると、型情報をつけておくって、
受けた方は型情報に従ってseitch caseなどで羅列した生成ルーチンを選択して・・・てなことになる。
新しい派生型を加える度にcaseを追加しないといけない。
自動的に派生クラスのコンストラクタを実行とかできないからね。

これはなにもプロセス間通信じゃなくても、クラスオブジェクトのデータをいったんファイルにセーブして再度読み込むとかでも同じ問題が起こる。


260 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:45:15 ]
だからCで同じことやろうとしても同じ問題が起こるっつーの。
オブジェクトをそのままファイルに保存とかアホかと。
あと型情報でswitchとかやるのは単なる設計ミスか、あるいはテンプレートで回避できる。
自分の不勉強を棚に上げて、口数少なく記述できないことを言語のせいにすんな。

261 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 22:17:27 ]
switch caseを無くせるのがC++の面白いところなんだけどね

262 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 22:32:19 ]
どんな言語でもそりゃswitchの羅列になる。
よその言語だとそうならないようにシリアライズって機構があるだろ。
C++だってBoostとかが作ってはいる。望みどおりのものかどうかは別として。

263 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 23:14:40 ]
仮想関数使ってできるだけswitchとかif elseをなくすのが
C++の方向じゃないのか
禿もそう言ってたろ



264 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 00:04:27 ]
でも最終的には、マシン語でifになるからEじゃんEじゃんEEjump

265 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 00:19:54 ]
x86で大抵のコンパイラは call [eax+table] みたいなコードになるぞ

266 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 13:01:01 ]
仮想関数によるswitch排除は美しいと思うけど
現実的には、あとからの機能追加とかで
ちょっとした分岐が入る場合にgdgdになりがち

267 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 20:23:11 ]
仮想関数をしっかり使うには、結構設計に悩むが、うまくはまるとかなりいいぞ

268 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 21:27:47 ]
オブジェクト指向やデザインパターンのおかげで変更に強く大きなアプリケーションも
作りやすくなったんだよ。GoF のデザインパターンはほとんど仮想関数使ってるよ。

269 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 21:34:01 ]
仮想関数である必要はないよ
テンプレートメソッドやステートやストラテジーパターンなんてジェネリックスでもできる
他は忘れちゃった

270 名前:デフォルトの名無しさん [2008/09/29(月) 21:39:05 ]
都銀レベルの本当に巨大なシステムは皆COBOLだけどな


271 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 22:12:43 ]
でも、COBOL開発には夢がない。楽しくもない。

272 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 22:13:51 ]
そう言えば禿はC++の設計時に「楽しくプログラミングできる事を目指す」
ような事を言っていたな

273 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 22:15:06 ]
その割りに出来上がったのがこれかよ



274 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 22:35:51 ]
プログラマーから拡張につぐ拡張の要求が押し寄せて
C++標準化委員会が断り続けたが押し切られたものもあって
カオスになっている

275 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 22:44:49 ]
それもまた一興






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<163KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef