C++0x 4 ..
[2ch|▼Menu]
271:デフォルトの名無しさん
08/08/04 00:01:36
最近はもう、言語も大きな会社がバックについて
結構な規模の開発体制でやってないとまともなものできないんじゃないか。
Java も .NET も企業主体だし。

272:デフォルトの名無しさん
08/08/04 00:39:18
>>270
cfrontの頃は使いにくかったな。GCC(G++)が革命的だった。

273:デフォルトの名無しさん
08/08/04 10:18:21
Javaも最近はcontrol abstractionとかやり始めて、
以前の保守的なJavaと違って面白くなってきた。

けどconcept, move semanticsなど、
言語機能の本質的なところで実験を続けてるのはC++だと思う。

JCPはEnterpriseな人の便利機能指向が面白味を削いでいる。
実用向けの言語としてはそうでなくては困るのだろうけど。

274:デフォルトの名無しさん
08/08/04 23:31:50
>>273
いよいよ言語マニアだけのためのおもちゃ感が出てきたなぁという気がする。

275:デフォルトの名無しさん
08/08/05 00:47:16
conceptもmove semanticsもライブラリ製作者だけが知ってればいい機能だから、
言語マニアと普通のC++ユーザとはちゃんと住み分けできるよ。

276:デフォルトの名無しさん
08/08/05 00:52:02
ライブラリ制作者がすべからく言語マニアで普通のC++ユーザではない、と言うのは暴論だ。

277:デフォルトの名無しさん
08/08/05 01:04:39
むしろ境界の曖昧性、というかシームレスであることが C++ だと思う

278:277
08/08/05 01:05:30
ちょっと端折った
× むしろ境界の曖昧性、というかシームレスであることが C++ だと思う
○ むしろ境界の曖昧性、というかシームレスであることが C++ の利点だと思う

279:デフォルトの名無しさん
08/08/05 01:41:07
コンセプトはC++プログラマは全員が知る必要のある機能です。
テンプレートと同じです。駆使するのは一部の人だけでいい。

280:デフォルトの名無しさん
08/08/05 09:52:01
>>276
まあべつにコンセプトしらずにテンプレートライブラリを作る人がいてもいいのでは... ってそれは良くない気もするな。

281:デフォルトの名無しさん
08/08/05 10:07:31
それよりも「すべからく」の誤用が気になる。

282:デフォルトの名無しさん
08/08/05 13:21:30
当然の意味でも取れるから必ずしも誤用とはいえないな。
書いた当人がどういう意図で使ったかによる。

283:デフォルトの名無しさん
08/08/05 13:34:26
「須らく」は「〜〜するべき」と受けるんじゃないのか?
どうしても>276で使うなら
--
ライブラリ制作者は須らく普通のC++ユーザではない言語マニアであるべき、と言うのは暴論だ。
--
となると思う。

284:デフォルトの名無しさん
08/08/05 21:30:06
it's an absurd statement that librarians are always language-mania
and not usual C++ users.

てきなニュアンスに読める。原文に「べき」とかがないので。。

285:デフォルトの名無しさん
08/08/05 21:50:20
原文に「須らく」もないね。

286:デフォルトの名無しさん
08/08/05 23:00:32
このスレには、プログラミング言語のみならず、
自然言語ヲタも多いのか?

287:デフォルトの名無しさん
08/08/05 23:19:46
教養があるだけの話

288:デフォルトの名無しさん
08/08/05 23:37:35
自分で言うか。

289:デフォルトの名無しさん
08/08/05 23:53:40
須らくの使い方は中高で習うだろ

290:デフォルトの名無しさん
08/08/06 00:13:39
しかし自然言語には標準の規格もないし方言が強すぎるし、
時間と共に文法や意味が変化していく。

よほどの猛者しか自然言語の批判はできないが。

291:デフォルトの名無しさん
08/08/06 12:42:20
だからエスペラント語をだな、

292:デフォルトの名無しさん
08/08/06 13:41:33
Esperantoも開発されてから現在まででかなり語彙が変わってるわけだが

293:デフォルトの名無しさん
08/08/06 13:47:06
>>291
形式言語理論が確立される前に設計されているので、他の自然言語と大差ない。

294:デフォルトの名無しさん
08/08/06 16:23:20
そこでイド語をだな、

295:デフォルトの名無しさん
08/08/06 16:31:32
挙げるならロジバンだろ
イドはエスペラントと大差ない

296:デフォルトの名無しさん
08/08/09 09:18:36
コンパイル時の最適化用として
副作用なしで同一引数なら同一の値を返すみたいなヒントとか
同一内容の引数なら同一内容の値を返すみたいなヒントが欲しかった。

297:デフォルトの名無しさん
08/08/09 12:01:38
つ #pragma
つ memorize

298:デフォルトの名無しさん
08/08/09 14:05:55
C++みたいな理屈っぽい言語はもういい。

グループによる開発に向いた言語じゃない。C++のややこしい
仕様をよく理解していない人間がグループの中に混じっていれ
ば、そいつがバグを仕込むテロリストになってしまう。

もちろん、どんな言語でもバグは入り込むが、C++は特に仕様
が複雑で、誤解にもとづくバグが簡単に入り込み易い。

禿がC++0xをいつの時期、どういう仕様で発表するのか
しらんが、こんな呪文みたいな言語、もういい。

C#に乗り移ろうかな。

299:デフォルトの名無しさん
08/08/09 14:13:28
悪意の無いテロリストはどんな言語でも爆弾仕込むけどな。

300:デフォルトの名無しさん
08/08/09 14:19:22
C++が言われる程複雑じゃないと感じる俺は毒されてるんだろうか

301:デフォルトの名無しさん
08/08/09 14:22:00
C++を取り巻く環境が複雑なのだろう。

302:デフォルトの名無しさん
08/08/09 14:24:49
馬鹿を基準に物事を決めたら進歩は止まるよ

303:デフォルトの名無しさん
08/08/09 14:29:18
↑こういう鼻持ちならない馬鹿がうじゃうじゃいるのがC++の世界



304:デフォルトの名無しさん
08/08/09 14:31:36
>>298
バージョンアップするたびにライブラリレベルで後方互換性が問題となるような、
理屈がない言語も困ったもんだが…


305:デフォルトの名無しさん
08/08/09 14:54:06
>>303
君には縁のない世界だって事よ。

306:デフォルトの名無しさん
08/08/09 15:45:35
>>299
メチャワロタ
うまいこと言うねw

307:デフォルトの名無しさん
08/08/09 15:48:33
>>300
理解という意味では、今のC++の各機能をすべて同じ温度で見つめたら、複雑と思えるんだろうな
昔からやってれば、ここはよく使う主流機能、これはうさんくさい互換性向け機能、とかわかるし

使いこなすという意味では、地雷が増えた気がする。オブジェクトコピーがらみとか。
ただJavaとかのゴミ拾いがらみ機能とか、文字コード変換とか、も地雷いっぱいあった気がする。
一本筋を通してきれいに言語設計・処理系実装してほしいね。それがElegance


308:デフォルトの名無しさん
08/08/09 16:04:17
>>307
ふむ、ならば Scheme でも使いたまへ。

309:デフォルトの名無しさん
08/08/09 16:24:06
いやいやここはunlambdaで

310:デフォルトの名無しさん
08/08/09 16:32:03
>>309
やっぱ、初心に帰ってアセンブラだろう?


311:デフォルトの名無しさん
08/08/09 16:52:55
美少女中学生の汗ブラ!(*´Д`)

312:デフォルトの名無しさん
08/08/09 16:57:20
>>311
美少女中学生シリーズの中では出色の出来だなw


313:デフォルトの名無しさん
08/08/09 18:29:29
>>296
D言語にはもうすぐ純粋関数くるよ

314:デフォルトの名無しさん
08/08/10 15:27:50
>>296
実際どのくらいパフォーマンスを向上できるのだろう
副作用なしで出来ることはたかがしれているし
メリットが小さすぎるんじゃないの?

315:デフォルトの名無しさん
08/08/10 15:32:26
>副作用なしで出来ることはたかがしれているし
マジすか

316:デフォルトの名無しさん
08/08/10 15:34:44
ものによるだろ
すっごいでかい配列の長さをいちいち求めてたけど実は固定長でしたみたいなのだったら
かなり速くなるかもしれない

まあそんなケースは少ないだろうが

317:デフォルトの名無しさん
08/08/10 15:42:32
>>316
それは>>296とは関係ないけどね

318:デフォルトの名無しさん
08/08/10 16:37:17
そりゃconst size(void); だからね。

sparse arrayのアクセスなんかが相当すると思うけれど、
Cでnoaliasが排除されて以来、
そういう最適化用ツールは言語に組み込まない方向でしょう。
constは意味も規定しているから、重要だけど。

319:デフォルトの名無しさん
08/08/10 16:46:10
>Cでnoaliasが排除されて以来
え?C99のrestrictは?

320:デフォルトの名無しさん
08/08/10 16:50:10
restrict 忘れておった orz

321:デフォルトの名無しさん
08/08/11 10:47:23
restrictって本当にコンパイラにヒントやるだけで
実はエイリアスあったとしてもコンパイラも実行時も何も言ってくれないんだろ

322:デフォルトの名無しさん
08/08/11 10:58:13
当たり前だろw
やりたきゃコードで書けよ。

323:デフォルトの名無しさん
08/08/11 19:43:41
自動的にassertを追加できそうなものだが。

324:デフォルトの名無しさん
08/08/11 22:23:27
URLリンク(gcc.gnu.org)

知らない間にInitializer listsが来てる件について
libstdc++がついてくるのに当分かかるだろうけど、4.4 alpha入れてみよう

325:デフォルトの名無しさん
08/08/11 23:51:55
>>323
assertかよw

326:デフォルトの名無しさん
08/08/12 02:44:32
char a[10], *p;
p=a;
memcpy(p,a,10);

こんな露骨なのにも警告すら出せないrestrictって何なの

327:デフォルトの名無しさん
08/08/12 02:53:42
警告を出すような(素晴らしい)コンパイラを作るのは(コンパイラ屋の)自由じゃね?

328:デフォルトの名無しさん
08/08/12 03:17:27
restrictがC++に入ると、やっぱりスマポもrestrictに出来なきゃならんって事で
クラスのrestrictインスタンスやrestrictメンバ関数が作れるようになるんですね

こんなもんをコンパイラはちゃんと最適化で有意義に使いこなせるのかね

329:デフォルトの名無しさん
08/08/12 03:35:34
>>326
仕様を勘違いしてます。

330:デフォルトの名無しさん
08/08/13 07:09:32
まじめに疑問なんだけど、整数に2の補数を使ってない処理系ってあるの?

atomic周りを読んだら、atomicに限りsignedな整数型とアドレス型は2の補数となりオーバーフローによる不定動作はないと書いてあるけど、
もし仮に、すべての整数型を、2の補数としてしまっても、現実として問題は起こらないと思うんだけど、
なぜC/C++の規格は2の補数だと規定してしまうのを避けているんだろう。

331:デフォルトの名無しさん
08/08/13 08:48:34
>>330 ハード含めて処理系って言うんならそれでもいいんだが...

かつて、実際に2の補数表現を使用しないCPUが存在していたし、
「今後とも2の補数表現以外の整数表現をもつCPUが開発される
事はない」って、保証はどこにもない

からじゃないのか?


332:デフォルトの名無しさん
08/08/13 11:51:31
特殊用途では符号ビット+絶対値の方が都合がいいことがある

333:デフォルトの名無しさん
08/08/13 13:10:58
最近の言語は2の補数表現を仮定した整数型の仕様で、
そうじゃないCPUはエミュレートしろって立場だね。Java, ECMAscriptなど。
けどCの時代はまだそういう時代じゃなかった。
2の補数表現を仮定しない最後の言語のひとつかもしれない。


334:デフォルトの名無しさん
08/08/13 14:27:24
>>330
DSPなどでは存在してたと思う。とりあえず C++ はそういうアーキテクチャも対象にしてる
ってことだろうね。

もし、2の補数に規定するなら語長(intは必ず32bitとか)も規定するのが良いだろう。
最近の言語ではそのほうが普通かな。

335:デフォルトの名無しさん
08/08/13 14:34:17
美少女中学生のおっぱいは2つだから2の補数!
美少女中学生のおっぱいは2つだから2の補数!

336:デフォルトの名無しさん
08/08/13 14:40:37
>>335 がいいこと言った!!


337:デフォルトの名無しさん
08/08/14 10:39:04
ちょっと聞きたいけど、右辺値参照(Rvalue reference)
が導入されると、(a+b)*(c+d)*eみたいな行列演算も効率化されるの。
それとも、やはり無理?

338:デフォルトの名無しさん
08/08/14 10:44:05
無理じゃないお

339:デフォルトの名無しさん
08/08/14 11:28:32
文脈によるんじゃないんですかね?

加算か乗算かによって違いますし,
右辺値をどの演算の operand に使うのかによっても違いますし,
式テンプレートによる実装と比べてどうなのかについても比較が複雑ですし.

ただ,右辺値参照を用いない実装に比べて
効率的な場面が生じるのは確かだとは思います.

340:デフォルトの名無しさん
08/08/14 11:42:20
長いけど>>338と同じこと



341:デフォルトの名無しさん
08/08/14 12:33:31
せっかく説明してくれてるんだからそう言わんでも

342:デフォルトの名無しさん
08/08/14 14:37:36
単なる計算や初期化の場合は、
右辺値参照を使わない方が
戻り値最適化のおかげで swap が無い分効率的になる。

その結果を代入したいような場合も、
代入の代わりに swap すれば
右辺値参照を使わなくても効率よく実行が可能。
((a+b)*(c+d)*e).swap(f);

結局のところ、それほど右辺値参照の必要性があるとは思えない。

343:デフォルトの名無しさん
08/08/14 14:45:49
まともに機能する実装が登場するまであと10年ってところですかね

344:デフォルトの名無しさん
08/08/14 16:40:05
>>342
どうやってrvalueに対して安全にswapするんだよ?
だからこそ必要なんじゃないか。

345:デフォルトの名無しさん
08/08/14 16:40:44
10年後ね…。この先は厳しいね。
C++が台頭してした当時は、高速バイナリ吐けるオブジェクト指向言語なんて他になかった。
すでに基礎的な部分はC++が築いてしまったし、
個人ですらちょちょいと次世代オブジェクト言語とか作っちゃう時代なので、
今の時代のCのように、Legacy的に古い機能だけ使われる道しか残ってなさそうな気がしてきた。
<=> 実験するなら別の言語


346:デフォルトの名無しさん
08/08/14 16:44:04
今他にあんの?>高速バイナリ吐けるオブジェクト指向言語

347:デフォルトの名無しさん
08/08/14 16:44:30
えーと…… D…?

348:デフォルトの名無しさん
08/08/14 16:46:40
Dwwwwwwwwww

349:デフォルトの名無しさん
08/08/14 16:54:29
>>342
モチベーションの1つに、そのswapのような変な書き方ではなく
直観的に=演算子でやれるようにするっていうのは無かったっけ?

350:デフォルトの名無しさん
08/08/14 16:55:37
Ocamlとか?

351:デフォルトの名無しさん
08/08/14 16:56:46
Solaris、Windows、Linux + FreeBSD、Mac、Haiku OS

x86ならバイナリも吐けなくないJava
実行速度でC++に引けを取らないJava
対応OSも互換性を重視すれば圧倒的にC++ << Java


352:デフォルトの名無しさん
08/08/14 17:01:04
最近のjavaは好きな言語だけど、C++とは全然違うよ。
C++の代りの言語はない。近いものすらない。

353:デフォルトの名無しさん
08/08/14 17:01:45
Javs厨の寝言来ちゃった

354:デフォルトの名無しさん
08/08/14 17:02:53
GCを使わされる時点でDもJavaも論外

355:デフォルトの名無しさん
08/08/14 19:08:11
DってDelphiのことじゃないよね

356:デフォルトの名無しさん
08/08/14 19:14:06
そうだよ

357:デフォルトの名無しさん
08/08/14 20:08:48
俺がこれから作る( ・∀・)イイ!!言語ならあるいは・・・!!

358:デフォルトの名無しさん
08/08/14 20:46:24
URLリンク(dn.codegear.com)
C++Builder 2009はC++0xサポートするってさ

俺は買ったことないけど

359:デフォルトの名無しさん
08/08/14 20:51:00
そいつはすげぇ!

でも2009年じゃまだ仕様が決まって無いんでは…

360:デフォルトの名無しさん
08/08/14 21:11:56
いや、その年に仕様を決めようということでC++0xと呼ばれているのではないだろうか。

361:デフォルトの名無しさん
08/08/14 21:16:44
>359
先行して実装するってことらしい。まーどうせ規格が決まったところでフル実装は先になるんだろうし、しばらくは一部実装でしょ。
とりあえず動画中で取り上げられていたのは、スコープ付き enum (および enum のベース型指定)と static_assert。
move semantics については名前が挙がってたし、プロジェクト中にもそれっぽいファイルが見えるけど実際の紹介はなかった。

でもここ最近の Borland/CodeGear の標準準拠度を考えるとあんまり期待できないような気がするなぁ。

362:デフォルトの名無しさん
08/08/14 21:38:19
VCだって6は酷かったけど今はまあ使えるじゃないか。
BCBだってやってくれるかもしれない、なんて期待は甘い?

363:デフォルトの名無しさん
08/08/14 21:42:36
ヘッジがM$に移籍したのが痛いよな

364:デフォルトの名無しさん
08/08/14 21:43:46
>>360
0xF年までおk

365:デフォルトの名無しさん
08/08/14 21:59:01
Comeauがどこまで実装するか楽しみ

366:デフォルトの名無しさん
08/08/14 22:15:19
0x200f年までok

367:デフォルトの名無しさん
08/08/14 22:17:58
0xff0f年までおk

368:デフォルトの名無しさん
08/08/15 03:22:55
>>363
Hejは規格コーダ屋じゃないからあんまり関係ないでしょ。
得意なのが言語設計とRAD設計だから。

369:デフォルトの名無しさん
08/08/15 12:00:18
>>344
f.swap((a+b)*(c+d)*e); は無理だが
((a+b)*(c+d)*e).swap(f); は問題ない。

370:デフォルトの名無しさん
08/08/15 12:33:32
ああ、なるほど

371:デフォルトの名無しさん
08/08/16 19:17:19
gcc 4.4.0_alpha20080725にてテスト
ソース
#include <map>
#include <string>
#include <iostream>
#include <boost/foreach.hpp>
int main()
{
  typedef std::map<std::string,int> Map;
  Map anim{ {"bear",4}, {"cassowary",2}, {"tiger",7} };
  BOOST_FOREACH (Map::value_type v, anim) {
    std::cout << v.first << ':' << v.second << std::endl;
  }

  return 0;
}

結果
bear:4
cassowary:2
tiger:7

とりあえずN2672の例の1つが動くことを確認。そろそろautoが欲しいなー。

372:デフォルトの名無しさん
08/08/17 06:44:55
ダメだ。どうしても分からんから教えてくれ。
N2710のコンセプトのドラフト、
14.9.1.4
>A concept-definition that starts with auto defines an implicit concept, otherwise it defines an explicit concept.

implicitとexplicitで何が違うんだ?
あちらこちらによく分からない記述が散らばっているだけでさっぱり分からん。

373:372
08/08/17 07:49:49
自己解決
N2081に書いてあった。

374:デフォルトの名無しさん
08/08/24 03:54:18
>>342
それじゃ部分式の演算子関数呼び出しでコピーが発生するじゃない。


375:デフォルトの名無しさん
08/08/26 13:45:43
nullptr があっても printf() とか可変長引数にヌルポインタ渡す時のキャストが
要らなくなったりしないよね?

376:デフォルトの名無しさん
08/08/26 15:15:42
void*を渡すならいらない。

377:デフォルトの名無しさん
08/08/26 18:51:22
tyep safe な printf まーだー?

378:デフォルトの名無しさん
08/08/26 22:34:35
ばらでぃっくなアレを使うんじゃ

379:デフォルトの名無しさん
08/08/26 23:55:53
つboost::format

380:デフォルトの名無しさん
08/08/29 01:03:01
こんなの見つけたけど次回ってもう今日だな。
URLリンク(d.hatena.ne.jp)

381:デフォルトの名無しさん
08/08/29 09:18:07
2008-08 mailing (pre-San-Francisco)

382:デフォルトの名無しさん
08/08/29 09:34:19
細かい議論が多くて面白いですね

383:デフォルトの名無しさん
08/08/31 19:34:02
decltypeに関数を与えると関数を表す型じゃなくて関数の戻り値を表す型になるのか。
なんだか非直感的でやだな。

384:デフォルトの名無しさん
08/08/31 21:35:59
関数の型と言えばsignature

385:デフォルトの名無しさん
08/09/04 12:16:19
.>>383
decltypeのやっていることはsizeofとほとんど同じだからな。
むしろ、sizeofの型を返す版が欲しいっていう話だし。

386:デフォルトの名無しさん
08/09/04 13:35:48
typedef F decltype(f);
arity<F>::value; // 引数の数
result_of<F>::type ; // 戻り値の型
arg_types<F>::type ; //引数の型リスト

のようにできれば俺は満足ですよ

387:デフォルトの名無しさん
08/09/04 13:52:44
何か違和感があると思ったら一行目だ。
decltypeが型としての関数を返すものだったとしてもだ、順番が間違っているぞ。

388:デフォルトの名無しさん
08/09/04 14:09:52
typedef FROM TO;の順番なのに…
C++を使ってないのバレバレですね失礼しました

389:デフォルトの名無しさん
08/09/04 14:56:36
つusing TO = FROM;

390:デフォルトの名無しさん
08/09/04 15:54:11
383を見て、decltype(printf)がintになっちゃうのかと思った。


391:デフォルトの名無しさん
08/09/04 18:55:33
違うの?
decltype(printf)がint(*)(const char*,...)じゃなくてintになるから
非直感的で気持ち悪いって言ってるのかと思った
decltype(printf("..."))だったら当然intに決まってるし

383どういう意味?

392:デフォルトの名無しさん
08/09/04 19:09:39
関数呼び出しせずに関数名を渡したら関数の型になるんじゃないの?

393:デフォルトの名無しさん
08/09/04 19:17:41
当たり前。スルーで。

394:デフォルトの名無しさん
08/09/04 20:15:12
じゃ結局decltype(printf)は普通にint(*)(const char*,...)型なのね

395:デフォルトの名無しさん
08/09/04 20:22:28
いや、ポインタじゃないだろ?

396:デフォルトの名無しさん
08/09/04 20:22:58
当たり前。スルーで。

397:デフォルトの名無しさん
08/09/04 20:44:52
>>395
アホ?
C/C++の式にポインタじゃない関数型なんて存在しねえよ

398:デフォルトの名無しさん
08/09/04 20:51:58
存在しなかったら関数呼べないだろwwwwwwwwwwwwwwwwww

399:デフォルトの名無しさん
08/09/04 20:56:59
関数呼び出し演算子のオペランドの規定読んでから出直してこい

400:デフォルトの名無しさん
08/09/04 21:21:28
ConceptGCC 4.3.0 alpha7 でテスト
#include <cstdio>
#include <typeinfo>
int main() {
std::puts(typeid(int(const char*,...)).name());
std::puts(typeid(int(*)(const char*,...)).name());
std::puts(typeid(std::printf).name());
std::puts(typeid(decltype(std::printf)).name());
}
結果
FiPKczE
PFiPKczE
FiPKczE
FiPKczE

401:デフォルトの名無しさん
08/09/04 21:28:00
>>397
坊やにはまだ早いよ。
C++03を学びなおしてきな。

402:デフォルトの名無しさん
08/09/04 21:34:35
えー?
関数型って&演算子のオペランド(結果は関数ポインタ)の場合しか存在しないんじゃないの?
関数ポインタには*演算子効かないから関数型って単独で取り出せないんじゃないの?
(**************printf)("...")とか書けるのは何なの?
()のオペランドって関数ポインタじゃないの?

わかんなくなってきた

403:デフォルトの名無しさん
08/09/04 21:36:41
>>402
スレチ

404:デフォルトの名無しさん
08/09/04 21:40:42
みんなが関数名と呼んでいるものは実は関数ポインタリテラルで、
関数ポインタというものは*や&付けても自分自身に戻る変な型で、
みんなが引数列と呼んでいる(...)は関数ポインタ(と多重定義したクラス)だけに作用する特別な演算子で
「関数」なるものはコンパイラの世界には存在しないんだよって

そう教わって信じてきたのにまさかC++に関数型が存在するなんて…
カルチャーショック

405:デフォルトの名無しさん
08/09/04 21:44:45
>>404
ポインタにはすべて「そのポインタが指す先の型」というものが概念的に存在する。
そういう型の変数が作れるかとか、そういう型のリテラルが書けるか、は別の問題。

406:デフォルトの名無しさん
08/09/04 21:45:41
まーC++の関数って、関数ポインタに特別な文法なしで代入できるし、
型としての関数なんて、テンプレートメタプログラミングでもしない限り扱わんし、
紛らわしいよな。

407:デフォルトの名無しさん
08/09/04 21:55:20
待て、やっぱり変だ

void foo(void(*)()){std::cout << "foo(void(*)())";}
void foo(void()){std::cout << "foo(void())";}

これ定義しようとしたら怒られたぞ(片方にするとどっちも通る)
つまりvoid(*)()とvoid()は同じ型ってことじゃないの

408:デフォルトの名無しさん
08/09/04 22:00:37
>>407
引数の型(というか、変数の型)としては関数ポインタしかあり得ない。
そういう場所に「関数」を書いた場合は「関数ポインタ」とみなす、という規則があるため、
結果的に同じ型の引数を取る関数を宣言しようとしたと解釈されエラーになる。

409:not 408
08/09/04 22:05:19
その引数の型矯正ルールが8.3.5.3な。
とりあえずC++0xはまだ早いんじゃないのかね?

410:デフォルトの名無しさん
08/09/04 22:13:35
1.処理系すらできてない規格に触るのなんてまだ早い
2.その程度の知識ならまずC++03の規格に一通り目を通してから、まだお前のような素人には早い

dotchi?


411:デフォルトの名無しさん
08/09/04 22:24:47
調べた

なんだ&とsizeofとtypeid(と多分decltypeも)のオペランドの中が特殊なだけで
その外では404の通りでいいんじゃん
関数型は出てきたそばから関数ポインタに変えられるから
&とsizeofとtypeid以外の世界にはやっぱり関数型は存在しないんだ
俺は大体合ってた

412:デフォルトの名無しさん
08/09/04 22:28:55
俺がこっそり望んでいたsealedは入りませんか?

このクラスは継承するなってソースにもドキュメントにも書いてあるのに
勝手に継承されてデストラクタ呼ばれないとか文句垂れられます

413:デフォルトの名無しさん
08/09/04 22:29:39
D&Eに継承の禁止の仕方載ってる

414:デフォルトの名無しさん
08/09/04 22:31:15
3.

415:デフォルトの名無しさん
08/09/04 23:19:54
>>411
boost::function<R(A)> とか boost::result_of<R(A)> とか見たこともないの?


416:デフォルトの名無しさん
08/09/04 23:22:47
>decltype
オーバーロードしてる関数の型ってのはやっぱ無理なのか
例えばstd::fabsを引数double xで呼び出したときの(戻り値ではなく)関数の型が分かると便利なんだけど

decltype( static_cast<decltype(x)(*)(decltype(x))>(std::fabs) )
てのは本末転倒な気がする

417:デフォルトの名無しさん
08/09/04 23:32:10
>>411
関数型をtypedefすると、
シグネチャが同じ関数を大量に宣言するときに便利だよw
typedef double F(double);
F sin,cos,tan,asin,acos,atan,…;
ってこれC言語だからC++0x関係ないな

418:デフォルトの名無しさん
08/09/05 01:45:31
>>415
function, result_ofはTR1にも入っていて、
C++0xにまんま入ることが決定済み。

419:デフォルトの名無しさん
08/09/05 06:33:58
sizeofは『式を評価して』その式の型のサイズを返す。
decltypeも『式を評価して』その式の型を返す。
だから関数を入れたらその関数が評価されて関数の戻り値の型が返るに決まっている。
どこも非直感的ではない。

420:デフォルトの名無しさん
08/09/05 08:42:21
>>419
×関数を入れたら
○関数呼び出しを入れたら

421:デフォルトの名無しさん
08/09/05 09:12:37
おいおい、"unevaluated operand"ってやつで、「評価」されないよ。
typeid, sizeof, decltypeの三つな。


422:デフォルトの名無しさん
08/09/05 13:12:11
仮に評価したときに返ってくるであろう型、と言うべきだね

423:デフォルトの名無しさん
08/09/05 14:42:50
つ 「式の型」

424:デフォルトの名無しさん
08/09/05 18:25:23
なるほど、
int i = 0;
std::cout<<sizeof(i++)<<std::endl;
std::cout<<i<<std::endl; //prints 0
なわけね

>>416が気になるからage

425:デフォルトの名無しさん
08/09/05 18:28:06
ageてないw

426:デフォルトの名無しさん
08/09/05 19:16:48
平気で未定義になるような病的な式をsizeofの中に閉じこめたりするのは
TMPではよくやることだな

427:デフォルトの名無しさん
08/09/05 21:21:04
sizeof(0 / 0) は警告が出るな@gcc

428:デフォルトの名無しさん
08/09/05 21:57:58
0除算だからな

429:デフォルトの名無しさん
08/09/05 22:35:53
昔のコンパイラってTMPで0除算したら落ちたりしてたんだろうか
今でもboost vaultにあるキワモノ(例:eggとかphoenix)使ってたらエラー時に落ちるものは結構あるようだけど

430:デフォルトの名無しさん
08/09/05 23:39:59
>>418
??? そんなことは百も承知だが
関数型がテンプレートの引数一つで取り扱える例を出しただけ

そういや、boost::function は昔は <R, A1, A2> みたいに書いてたころも
あったけな

431:デフォルトの名無しさん
08/09/06 10:22:30
自意識過剰の変な奴…

432:デフォルトの名無しさん
08/09/06 13:36:46
美少女中学生スレたるこのスレにはふさわしくないな

433:デフォルトの名無しさん
08/09/06 13:45:09
美少女中学生の話は↓でやれ。ここでするな。
スレリンク(tech板)

434:デフォルトの名無しさん
08/09/12 19:27:25
0xの可変個引数テンプレートがDのそれとよく似てるけど、どっちが先なのかな?
それとももっと古くからあった?

435:デフォルトの名無しさん
08/09/12 20:49:36
>>434
va_argって知らないの?

436:デフォルトの名無しさん
08/09/12 20:55:47
>>434
先に実装したのはDだが、発想自体は別に新しいものじゃないだろ

437:デフォルトの名無しさん
08/09/12 21:22:38
>>435
可変個引数関数のことを言ってるんじゃないよ
>>436
そうなのか。作ったタプルを転送して展開して…とか初めて見たとき、何じゃこりゃすげぇと思ったんだけどな〜

438:デフォルトの名無しさん
08/09/12 21:24:06
C++0xを使いこなせる自信がない。
無理だろあんなもの。疲れるだけ。

439:デフォルトの名無しさん
08/09/12 21:27:23
大丈夫、苦労するのはライブラリ実装者だけだから

440:デフォルトの名無しさん
08/09/12 21:31:14
>>437
> 何じゃこりゃすげぇと思ったんだけどな〜

かわいいねえ。

441:デフォルトの名無しさん
08/09/12 22:53:23
美少女中学生がいるな・・・

442:デフォルトの名無しさん
08/09/12 23:35:28
auto以外は普通の利用者には関係ないね

443:デフォルトの名無しさん
08/09/13 00:24:30
「C++0x?D言語最強に決まってんだろwww」って言われたときのためのコピペ作ろうぜw

444:デフォルトの名無しさん
08/09/13 00:30:05
おまえDスレにいるだろ

445:デフォルトの名無しさん
08/09/13 00:34:07
可変テンプレートは型リストの構文糖衣でいいのに

446:デフォルトの名無しさん
08/09/13 00:59:47
>>442
コンセプトでエラーメッセージがましになることが期待できるってのはないですか?
普通の利用者は自分でコンセプトを定義しないっていう点では関係ないと言えるのかもしれないけど。

447:デフォルトの名無しさん
08/09/13 02:43:39
D?
ああ、C++とJavaの悪い所取りした哀れな言語ね

448:デフォルトの名無しさん
08/09/13 03:01:47
>>442
(現在STLやboostを利用するレベルの)通常のC++ユーザーにとっては、
・auto
・initializer_list
・新型for
・lambda
・template typedef
・nullptr
くらいは結構書く機会があるのでは?

あと、以前も出てましたが、template同様自分で書くことはなくても、
conceptに関してはユーザー全員が理解すべきものと思います。
個人的にはあとdecltypeとそれに伴う新たな関数宣言も。


449:デフォルトの名無しさん
08/09/13 03:14:42
まあ、新しい関数宣言は人のソース読むときには知っとかなきゃならんな…
こんなんだよな

[]main(int argc, char *argv[]) -> int{return 0;}

きめえwwwwwwwwww
自分では絶対に書かない

450:デフォルトの名無しさん
08/09/13 03:53:18
>>449
これまでのパラダイムから、あまりにもかけ離れすぎてて
これだったら無い方がまだマシ


451:デフォルトの名無しさん
08/09/13 04:58:26
こういうことしたい時に便利かも。

template <typename T>
struct complex
{
T re;
T im;
template <typename T2>
[]operator+(const complex<T2>& rhs) -> complex<decltype(re+rhs.re)>{ /* ... */ }
};



452:デフォルトの名無しさん
08/09/13 05:10:05
だったらこれ認めるようにすりゃいいじゃないか…

complex<decltype(re+rhs.re)> operator+(const complex<T2>& rhs){ /* ... */ }

rhsを宣言より前に使ってるからダメってのはわかってるよ
でもそんなの戻り値型は後で解決することにすりゃいいだけじゃん

453:デフォルトの名無しさん
08/09/13 05:14:15
見慣れない以外の欠点が無いならどうでもいいかと

454:デフォルトの名無しさん
08/09/13 05:57:38
コンストラクタとかどうなんの
もしかしてこう?

[]Foo::Foo() -> : a(0) {}

オェェェェ

455:デフォルトの名無しさん
08/09/13 08:47:11
N2582 って通りそうなん?

>>454
コンストラクタではその書き方はできないだけだと思われ。

456:デフォルトの名無しさん
08/09/13 10:02:04
>>449
要は、戻り値は後ろにある方が型推論ができていいってことらしい。

あと、数学でも、関数の宣言って f: 定義域 → 値域 なのよね。

けども、この書式で、C++ でやるとキモいよな。

>>452
C++ 屋さんは LL 文法大好きだから。

457:デフォルトの名無しさん
08/09/13 13:21:18
言語としての優劣はともかく、コードの視認性では最近のLLに大きく劣ることになるわけだが。

458:デフォルトの名無しさん
08/09/13 13:31:32
LL違うwww

459:デフォルトの名無しさん
08/09/13 13:44:26
C++ がそっちの意味の LL なわけねぇww

460:デフォルトの名無しさん
08/09/13 13:59:07
そのうち、Perl みたいに $ とか @ とか出てきそうだw

461:デフォルトの名無しさん
08/09/13 16:50:02
>>455
じゃあコンストラクタ、デストラクタ、変換関数は新形式では書けないって事なのかな
書ける関数と書けない関数があるような一貫性のない書き方はダメだなぁ

462:デフォルトの名無しさん
08/09/13 16:54:41
$と@は色んな事情で使えないってD&Eで禿が言ってた

463:デフォルトの名無しさん
08/09/13 16:55:47
コンストラクタは現時点でも特殊じゃん。
戻り値書かないのはコンストラクタ・デストラクタだけなんだし。

新書式の目的が戻り値の型推論だっていう目的を考えても、
戻り値のないコンストラクタに使えてもしょうがないし。

464:デフォルトの名無しさん
08/09/13 16:55:52
もう[]に別の意味を付けるのはやめて!
[]のHPは0よ!

465:デフォルトの名無しさん
08/09/13 17:02:29
それを言ったらC++のHPは(ry

466:デフォルトの名無しさん
08/09/13 17:14:28
>>448
あとコンストラクタ関係(委譲、default/delete)は便利だと思う

>>454
ラムダからの類推で行くと、書けたとしても
[]Foo::Foo() : a(0) {}
となるだけでは?
まあそこまで行くと[]つける意味は皆無に等しいけど

467:デフォルトの名無しさん
08/09/13 17:21:57
>>463
と、変換関数な

[]operator int() -> intって書かせることになるのかなぁ

468:デフォルトの名無しさん
08/09/13 17:25:23
どういう使われ方想定してるのかな
今まで通り普通は旧形式で書いて、戻り値で型推論したいときだけ特別に使う物なのか
それとも旧形式をobsoleteとして新しいプログラムは全部新形式で書かせることを狙ってるのか

後者だとしたら書けない関数があるのはまずい

469:デフォルトの名無しさん
08/09/13 17:56:04
>>465
このC++はバージョンアップするたびに規格書の厚みがはるかに増す…

470:デフォルトの名無しさん
08/09/13 18:13:16
URLリンク(cpplover.blogspot.com)

471:デフォルトの名無しさん
08/09/13 18:23:39
n2582はどうなってんの?

472:デフォルトの名無しさん
08/09/13 18:48:33
却下されろとみんなが願ってるけど
例によって祈り空しく採用される流れ

473:471
08/09/13 18:56:28
>>470に追記入ったな
というか、n2582でググったらあのブログがトップに出てくるから気になって書き込んだんだが、
知らなかったわけはないので忘れてたってことだろうか

個人的には>>470の追記と同じく、面白いと思うけどな
気持ち悪いのはラムダ関数の構文であって、
それをとりあえず認めるならば、それと統一が取れていてまだマシ

474:デフォルトの名無しさん
08/09/13 19:01:11
[]が関数を表す予約語ならまだいい感じなんだがな

function main(int argc, char *argv[]) -> int{return 0;}
function Foo::Foo() : a(0) {}

Cっぽくはないがそれほど悪くない

475:デフォルトの名無しさん
08/09/13 19:09:05
いまさらfunctionとかを予約語にするわけにはいかんって話だしなあ

fncdefとかだめですか
fncdef main() -> int;
fncdef Foo::operator int();

// Wikipediaのラムダの例を改変
// Wikipedia項目リンク
int total = 0;
int value = 5;
fncdef&[value](int x) { total += (x * value) };

476:デフォルトの名無しさん
08/09/13 19:23:30
色々ぐぐってみた

fncdef 14件
funcdef 14500件
fundef 861000件
deffnc 189件
deffunc 12900件 (HSPで使われてる)
deffun 1170件
lambdadef 15件
lambdef 2580
lmbdef 8
lmddef 4
lmbddef 1
deflambda 118
deflamb 42
deflmb 24
deflmd 42

うーん、fncdefかな

477:デフォルトの名無しさん
08/09/13 20:03:43
日本語の教科書なら速攻でεπιστημηさんが書いてくれると思う。

478:デフォルトの名無しさん
08/09/13 20:43:12
絶対誰かが思い付いててかつ却下されてそうだけど、
「C++0xの関数定義用記号をUnicodeに追加する」
という案はどうだろう?

479:デフォルトの名無しさん
08/09/13 20:52:46
却下

480:デフォルトの名無しさん
08/09/13 21:20:41
速攻却下されておまたが濡れ濡れになっている美少女中学生がいるな・・・

481:デフォルトの名無しさん
08/09/13 21:29:54
>>478
おまえはくさび文字使って60進リテラルでも書いてろw

482:デフォルトの名無しさん
08/09/13 21:58:42
_Functionでいいよもう。

それで、<stdfunction>で#define _Function functionしとけ。

483:デフォルトの名無しさん
08/09/13 22:40:21
function をキーワード化でいいじゃん。
え、昔のコード? そんなもん機械的に書き直せばいい。

484:デフォルトの名無しさん
08/09/13 22:45:33
機械的にリファクタリング出来るほど、素直な言語ならここまで悩む必要はなかったはず。

485:デフォルトの名無しさん
08/09/13 22:51:08
機械的にコンパイルできる言語が、機械的にリファクタリングできないわけがない。

486:デフォルトの名無しさん
08/09/13 22:56:47
ソースがどっか行っちゃってて書き直せないこともあってだな
そういうのとリンクできないと困ったりするんだよ

まあfunctionなんて名前の関数は最低だけどな

487:デフォルトの名無しさん
08/09/13 22:57:19
できなくはないけど難しいからツールが発展してこなかった

488:デフォルトの名無しさん
08/09/13 23:08:29
まあここで何をグダグダ言おうとキーワードフォビアの標準化委員会が新予約語なんて取り入れるはずがない
個人的にはfunctionなんかよりconceptだのrequiresだのの方がよっぽど問題起こしやすそうだと思うが

489:デフォルトの名無しさん
08/09/14 01:06:05
むしろなんでそんなにfunctionなりなんなり、記号ではなく言葉でないと嫌なのか。

490:デフォルトの名無しさん
08/09/14 01:09:22
記号でもいいけど、卑猥なAAみたいな記号は厭だ。w

491:デフォルトの名無しさん
08/09/14 01:16:57
記号でもいいが今回のは悪趣味
センスのかけらもない

492:デフォルトの名無しさん
08/09/14 01:25:25
二項!が使われていなかったことに注目してテンプレート引数を!(...)にしたDを見習うべき。

493:デフォルトの名無しさん
08/09/14 01:27:20
cpp_0x_reserved_word_function でいいお

494:デフォルトの名無しさん
08/09/14 01:42:10
キーワードにも名前空間が必要かww

495:デフォルトの名無しさん
08/09/14 02:26:53
using keyword function = _Core::function;

変態言語を名乗るならこれぐらい出来ないとな

496:デフォルトの名無しさん
08/09/14 05:31:56
[]とか->って関数と何の繋がりもないからな
予約語もそうだけど同じものに全然違う意味持たせまくると暗号になっちゃう

497:デフォルトの名無しさん
08/09/14 08:08:56
0xまでには間に合いそうにないからC++xxにしろよ。

498:デフォルトの名無しさん
08/09/14 12:31:06
西暦20xx年とかいうと安っぽいSFみたいだ

499:デフォルトの名無しさん
08/09/14 12:32:23
おっとロックマンの悪口はそこまでだ

500:デフォルトの名無しさん
08/09/14 12:41:38
可変個引数テンプレートとクロージャのおかげでboostのFunction objects and higher-order programmingがとんでもなくシンプルもしくは不要になるんだな〜
でもいつ仕様が確定するのやら…

501:デフォルトの名無しさん
08/09/14 12:47:58
boost::eggでやってるのが素で、さらにハイパフォーマンスでできるわけですか凄いですね

502:デフォルトの名無しさん
08/09/14 20:37:08
先人の偉大な変態行為を規格化するという
しんどい作業なのでもうちょっと時間がかかります

503:デフォルトの名無しさん
08/09/14 21:44:04
>>497
0F年まであと7年もあるから余裕かと

504:デフォルトの名無しさん
08/09/14 21:54:44
>>503
それは八進数リテラルだ

505:デフォルトの名無しさん
08/09/14 22:04:05
先に2000をHexにしろよw

506:デフォルトの名無しさん
08/09/14 22:18:42
ヲイラが生きている間で勘弁して下さい ><

507:デフォルトの名無しさん
08/09/14 22:23:14
C++くらいのインフラになると変な変更される方が怖い。

508:デフォルトの名無しさん
08/09/14 22:58:20
しかし、まともな神経の人が書いたコードは
相当無茶な変更がない限り、ほとんど影響が無い罠

509:デフォルトの名無しさん
08/09/14 23:37:54
0xが存在しなかったとしても、処理系のバージョンアップでコンパイルできなくなるなんてよくある話。
将来コンパイルが通らなくなったとしても、0xのせいとばかり思われないでほしい。
多少は0xのせいの部分もあるかもしれないけど。

510:デフォルトの名無しさん
08/09/14 23:58:06
0xいらない所は03をずっと使い続ければいいだけの話だしな
0xでないと書けないものが新たに加わる訳じゃないし

511:デフォルトの名無しさん
08/09/15 00:28:38
>>507
どうせコンパイルオプションで disable できるから安心ですよw

512:デフォルトの名無しさん
08/09/15 01:29:14
待て待て、enableがデフォルトとか困る

513:デフォルトの名無しさん
08/09/15 08:13:47
disableしたら、
コンパイラ付属のライブラリがほとんど使えなくなると思われますが。
今回はかなり大きな改正ですので。
template入った時以来?


514:デフォルトの名無しさん
08/09/15 09:33:49
#ifdef ガードでどうにでもなるんでは?

515:デフォルトの名無しさん
08/09/15 09:43:53
>>514
#include <iostream>
しただけでコンセプト満載なんですよ。
iteratorがコンセプト化されるので。

516:デフォルトの名無しさん
08/09/15 09:56:34
ifdefなら平気じゃん。

517:デフォルトの名無しさん
08/09/15 10:00:00
アルファギークの大半がLL言語に移行したというのに

なんなのこの体たらく

518:デフォルトの名無しさん
08/09/15 10:07:39
↑ブログ読みすぎのバカ


519:デフォルトの名無しさん
08/09/15 10:15:46
>>516
iostream使いたい時は具体的にどう書くの?

>コンパイラ付属のライブラリがほとんど使えなくなると思われますが。

520:デフォルトの名無しさん
08/09/15 10:22:24
標準iostreamの中身を

#ifdef __CPP_ZX_
#include <c++0x/iostream>
#else
#include <c++/iostream>
#endif

とすればいいだけのことじゃないかという意味

521:デフォルトの名無しさん
08/09/15 10:26:02
>>520
バイナリ提供のライブラリも切り替えなきゃいけないのと
混在環境でどうするかが大変そうだな。

522:デフォルトの名無しさん
08/09/15 10:30:33
Concept抜きのライブラリも提供される事が前提なわけね。
そういう手厚いコンパイラなら、コンパイル時オプション指定で可能でしょうね。
ただtemplate導入時の事を考えると、(二枚仕立ては皆無に近かったので)
新しいバージョンのコンパイラからC++0xへの切り替えを行うのでしょうね。


523:デフォルトの名無しさん
08/09/15 11:01:28
iostream.hを思い出したぜ

524:デフォルトの名無しさん
08/09/15 11:16:37
たぶん一番悩むのが入門書書く人だろうな
conceptなんて入門者に説明すんの大変だろうし

その辺はまるっとスルーかな

525:デフォルトの名無しさん
08/09/15 11:56:43
>>524
今でさえテンプレートとかろくに解説していないのはよくあることなんだから、当然無視だろ。

526:デフォルトの名無しさん
08/09/15 12:54:39
せめてコンストラクタでは初期化子並びを教えろと

527:デフォルトの名無しさん
08/09/15 14:09:08
でもコンストラクタとは何ぞという説明をする時に
その中でさらにコンストラクタ呼んでる例見せるとわかりにくいんだよな
あれは教えづらい

528:デフォルトの名無しさん
08/09/15 14:11:13
まず組み込み型と構造体を
デフォルトコンストラクタの書き方で初期化できるあたりから教えてみたら

529:デフォルトの名無しさん
08/09/15 14:19:57
それも考えたけど、その話から入ると
デフォルトのデフォルトコンストラクタの話も先にしなきゃならなくなるし…
(どうでもいいけど何とかならないかなこの名前)

530:デフォルトの名無しさん
08/09/15 14:25:05
スレ違いです。


531:デフォルトの名無しさん
08/09/15 14:51:30
コンパイラ生成のデフォルト・コンストラクタ

532:デフォルトの名無しさん
08/09/15 15:04:16
>>524
今や入門者が使う言語ではないので、入門書は要らないのではないか?w

533:デフォルトの名無しさん
08/09/15 15:13:22
最初から上級者を育てるための導入書として書いた方がいいかもしれんね

534:デフォルトの名無しさん
08/09/15 15:28:24
こうしてまたC++は狭く深くなるのであった

535:デフォルトの名無しさん
08/09/15 15:35:50
ちょっとしたアプリ書いたらコンパイルが終わらなくなりそうな
仕様てんこ盛りだなw


536:デフォルトの名無しさん
08/09/15 15:44:40
>>534
懐は広く入口は狭い
巾着みたいなもんだなw

537:デフォルトの名無しさん
08/09/15 16:19:13
入り口閉められて出られなくなるんですね

538:デフォルトの名無しさん
08/09/15 16:54:36
>>537
食虫植物キタ━━━(゚∀゚)━━━ !!

539:デフォルトの名無しさん
08/09/15 16:59:01
>>536
名器ですね。わかります。

540:デフォルトの名無しさん
08/09/15 18:25:38
>>537は童貞だな
いや、あるいは膣痙攣の被害sy

541:デフォルトの名無しさん
08/09/15 18:43:23
名器でググって顔を赤らめブラウザの履歴を見てあわてふためく美少女中学生

542:デフォルトの名無しさん
08/09/18 23:58:09
>>532
Stroustrup が入門書を書いたみたい

543:デフォルトの名無しさん
08/09/18 23:58:49
びょーん・すっぽすっぽ

544:デフォルトの名無しさん
08/09/19 02:06:49
D言語って来ないの?

みんなC++0xに行っちゃうの?

545:デフォルトの名無しさん
08/09/19 02:28:58
VisualStudio並のIDEが出来たら行くよ

546:デフォルトの名無しさん
08/09/19 04:04:49
GCを簡単に取り外す方法が用意できたら行くよ

547:デフォルトの名無しさん
08/09/19 09:15:40
>>544
JavaとC++があるから。
俺様言語は必要ない。

548:デフォルトの名無しさん
08/09/19 09:16:46
アキラさんがこのスレはレベルが低いって嘆いてたよ
皆もっとペーパー読もうぜ

549:デフォルトの名無しさん
08/09/19 09:27:02
他に大した情報元もないって言ってた気がするんだけど。

548 と両方が真だとすると、
それは日本のレベルが低いんでは。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5382日前に更新/168 KB
担当:undef