08/07/18 16:44:24
>>199
C++ の言語仕様でどこまでトレースきるのさ?
201:デフォルトの名無しさん
08/07/18 16:58:46
C++ の言語仕様にも手を入れたのでへっちゃらですよ
202:デフォルトの名無しさん
08/07/18 18:36:15
ムーブセマンティクスとかコンセプトとか、とりあえずライブラリ実装者が使ってくれれば、
利用者は何もしなくても恩恵を被れるって機能も多いぞ。
203:デフォルトの名無しさん
08/07/18 19:02:45
ムーブセマンティクスは微妙だな。
また頭ひねることになりそう。
constくらいは。
204:デフォルトの名無しさん
08/07/18 21:23:06
いやいやあれは超便利だろ。
205:デフォルトの名無しさん
08/07/18 21:34:59
美少女中学生が呼吸をするたびに形のいいおっぱいがオートムーブ
206:デフォルトの名無しさん
08/07/18 21:41:16
ムーブの概念はコピーより自然
今までなかったのが不思議
207:デフォルトの名無しさん
08/07/19 09:57:13
そりゃ一般的な機械語にムーブがなかったからだろうよ。
208:デフォルトの名無しさん
08/07/19 23:39:30
autoなんて、0x新仕様の中でも一番利用者として理解しやすい機能の1つなんだから
少しは勉強してからカキコしろよ。だってここ0xのスレなんだぜ。
という漏れも、Move Semanticsはよく理解してないので、えらそうなこと言えないけどさ。ごめん。
209:デフォルトの名無しさん
08/07/20 00:10:16
mov ebx, eax
210:デフォルトの名無しさん
08/07/20 00:28:24
>>209
俺それ書くの我慢したのに……。
211:デフォルトの名無しさん
08/07/20 01:12:06
copyだし
212:デフォルトの名無しさん
08/07/20 01:15:12
その点、Z80ニーモニックは正しいな
213:デフォルトの名無しさん
08/07/20 02:47:49
conceptのところ読んでみたけど
late_checkとaxiomの意味がわからん・・
何がうれしくなるんだろう
214:デフォルトの名無しさん
08/07/20 04:24:04
>>208
勉強してから書くのは大変だ。
読んで書くくらいなら、かなりの割合で達成してるだろう。
だからみんな単語にだけ詳しいんだよww
特に俺www
読んで分かるのは大変だろ。
言い訳にならないのは承知だが。
215:デフォルトの名無しさん
08/07/20 04:38:01
autoの便利さとコンセプトの強力さとラムダ式の醜悪さと0bが却下されたことさえ知ってれば
このスレでは充分
216:デフォルトの名無しさん
08/07/20 05:03:03
個人的には initializer_list に地味に可能性を感じる
217:デフォルトの名無しさん
08/07/20 05:23:33
xchg eax,ebx
218:デフォルトの名無しさん
08/07/20 08:05:19
>>213
late_check:
あるインターフェースに適合するかどうかを
C++ではシグネチャーベースで判定するので、
テンプレート引数が決定して、
テンプレートインスタンスを生成する時にしか、
全体の適合性を判定できない場合が多い。
かといって、テンプレートの定義時に判定できる部分も、
インスタンス生成時まで判定できないのでは、
テンプレートのプログラミングがやりにくい。
だから、late_checkブロックの部分だけ、インスタンス生成時、
後は定義時に整合性のチェックを行う。
axiom:
条件式を最適化で利用して良い。
つまり型に対する論理的な制約になる。
Eiffelの「不変条件」みたいなもの。
219:デフォルトの名無しさん
08/07/20 11:18:40
>>218
concept が与えられてなお
>テンプレート引数が決定して、
>テンプレートインスタンスを生成する時にしか、
>全体の適合性を判定できない場合が多い。
な場合についてkwsk
220:デフォルトの名無しさん
08/07/20 11:50:12
>>208
知ってるかもしれないけど、
Move semantics(右辺値参照)に関しては禿がThe C++ Sourceに記事書いてたよ。
結構分かりやすい説明だった
221:デフォルトの名無しさん
08/07/20 13:15:29
Move Semanticsは内部にコンテナとか持っているclassの
operator書いてればありがたみが分かるだろう。
222:デフォルトの名無しさん
08/07/21 01:59:02
Extensible Literals が Proposed wording under review in Core にあるんだけど
まだ欲張るのか?
マジで09年に仕上げるつもりあるのか?
楽しい機能だから入るんなら歓迎だけどさぁ
223:デフォルトの名無しさん
08/07/21 02:24:34
提案者にBjarne Stroustrupの名前があるので無下にできそうにないな
224:デフォルトの名無しさん
08/07/21 02:46:24
>>222
だから2000+0xF年まではセーフだと…
225:デフォルトの名無しさん
08/07/21 06:33:47
0x200F 旧西暦8207年 宇宙暦308年ついにC++0xの完成をみた。銀河の歴史がまた一頁。
226:デフォルトの名無しさん
08/07/21 06:45:23
>>222
だいぶ前からその段階だから、今はもうほとんど、
"Integrated into working paper"に近いんじゃないのかな?
しかしこれliteralじゃねーだろ。
literalと組み合わせられるコンストラクタだ。
"こんにちわ、世界!"ISO2022JP
とかなんでもありだ。二進数リテラル問題も解決。
'_'で4桁ごとに区切るようなoperator"b"を書きたきゃ書けばいい。
227:デフォルトの名無しさん
08/07/21 09:16:16
もう永久に0xでいいよ
228:デフォルトの名無しさん
08/07/21 09:57:19
>>226
Cooked literalですw
229:デフォルトの名無しさん
08/07/21 10:26:02
>>226
>"こんにちわ、世界!"ISO2022JP
>とかなんでもありだ。
それはどうかな?そもそも "..." の ... 内に非アスキー文字を書くと
未定義なんでは? (実際上はべつとして。)
operator "ISO2022JP" に渡る以前にエンコーディングが
どうなってるかわからないとどうしようもないべ。
230:デフォルトの名無しさん
08/07/21 10:39:17
さすがに未定義ってことは…
処理系に依存するくらいでは
231:デフォルトの名無しさん
08/07/21 10:40:45
char32_tで受け取れるようになればいいんだよ。
232:デフォルトの名無しさん
08/07/21 10:59:13
やるとしても、
L"こんにちわ、世界!"ENCODING
だな。
233:デフォルトの名無しさん
08/07/21 11:01:43
失礼しました、undefined じゃなくて implementation-defined ぽいですね。
char32_t は Unicode だと決まってるから、
U"こんにちわ、世界!"ISO2022JP
と書いておけば問題ないわけですね。なんか 先頭のU が気持ち悪いけど。
234:デフォルトの名無しさん
08/07/21 11:18:14
operator "suffix"(char32_t const*, size_t)がinvokeされるわけですね。
>>226
つ constexpr
235:デフォルトの名無しさん
08/07/30 07:55:42
URLリンク(www.open-std.org)
News 2008-07-28: The 2008-07 mailing is available
News 2008-07-28: The C++ Standard Library Issues List (Revision 58) is available
News 2008-07-28: The C++ Standard Core Language Issues List (Revision 57) is available
236:デフォルトの名無しさん
08/08/01 01:37:54
誰も反応しないのは英語読めないからですね
237:デフォルトの名無しさん
08/08/01 01:39:08
自己紹介乙
238:デフォルトの名無しさん
08/08/01 01:43:12
そんなことより0bをだな
239:デフォルトの名無しさん
08/08/01 04:28:43
というか詰めの作業に入っているから、
そんな勢い良くリアクションするようなことはない。
ただ思った以上に書き直しが多かったので驚いた。> Concept Rev.7
240:デフォルトの名無しさん
08/08/02 14:25:37
今さら変えられないんだろうけど、
ストリーム関連の命名規則がぐちゃぐちゃすぎる。
書式を変更すると保存されるのも使いにくい。
cout << hex(123); みたいにしてほしかった。
これじゃあprintfの方が便利とか言われても仕方ない。
あと、再帰のできないconstexprには失望した。
コンパイラの仕事は、実行時向けに最適化してループにするだけじゃね?
241:デフォルトの名無しさん
08/08/02 14:35:10
実行時にループしたらconstexprとは呼べない。
242:デフォルトの名無しさん
08/08/02 14:41:59
実行時はすでに定数じゃないが、
しかし現状で、テンプレートでコンパイル時再帰の定数ができる以上、
constexprも再帰できてほしかったなぁ。
243:240
08/08/02 14:47:06
>>241
N2235には変数を引数に取る例も載ってる。
実行時も使えるよっていうメリットを残しながら、
再帰できるようにするのは可能だと言いたかった。
244:デフォルトの名無しさん
08/08/02 15:31:10
>>243
仮にそうだとしても、再帰するconstexpr関数がどうせ実行時評価しかしないなら、constexpr付ける意味が無いのでは。
245:240
08/08/02 17:06:39
>>244
いやいや、もちろんコンパイル時も使う。
定数のみを引数に取ったらコンパイル時に展開すればいい。
constexpr int pow(int x, unsigned int n) { return n > 0 ? x * pow(x, n - 1) : 1; }
...
char buffer[pow(2, 8)]; // 定数
unsigned int n; std::cin >> n; std::cout << pow(2, n); // 変数
constexprを取ったら、配列のサイズが定数式じゃないから通らない。
テンプレートでメタ関数として書くと、今度は変数が使えない。
246:デフォルトの名無しさん
08/08/02 17:39:31
>>245
可能かどうかで言えばまあ可能なんだろうな。
N2235も「今はまだそのときじゃない」って感じだし。
247:デフォルトの名無しさん
08/08/02 20:36:23
constexprは「実行時にも使いまわせる型厳密なマクロ」だよな。
お世辞にもコンパイルタイム関数実行とは呼べない。
248:デフォルトの名無しさん
08/08/02 21:55:46
再帰がやりたければtemplate使えばいいって考えがあったから
constexprは再帰禁止にしたのではないかと思う。
249:デフォルトの名無しさん
08/08/02 23:39:28
C++の拡張の目的としてあげられている
ユーザー定義型に組み込み型と同等の待遇を与える
っていうのを実現するのには今のconstexprで十分っていう判断だと推測
250:デフォルトの名無しさん
08/08/02 23:56:41
テンプレート引数は小数使えないしな・・・。
251:デフォルトの名無しさん
08/08/03 01:54:32
俺は>>245の愚案には反対。
constexprの狙いから外れすぎ。
252:デフォルトの名無しさん
08/08/03 04:05:47
浮動小数点演算テンプレートを作ればいい
253:デフォルトの名無しさん
08/08/03 11:50:11
コンパイル時のものと実行時のものは明確に区別して欲しいな
両方使えるとか紛らわしい
254:デフォルトの名無しさん
08/08/03 12:06:56
>>253
D言語なんかは現状ではどの関数がコンパイル時実行できるかさっぱりだけれども、今後関数属性のpureで解決するようだねぇ。
255:デフォルトの名無しさん
08/08/03 12:08:49
マクロとテンプレートとinlineとconstexprの関係でパニックになる初心者続出の予感
256:デフォルトの名無しさん
08/08/03 13:59:53
commonlisp よろしく
#eval_when (<評価するタイミング1> <評価するタイミング2> ...) {
<評価する式>
}
みたく、しちまえよw
257:デフォルトの名無しさん
08/08/03 20:48:23
すっきりしないねぇ。標準委員会に入って考え抜くと、これが最もエレガントな解と思えるようになるのかな。
おれがC++が好きだったのは、Modern C++にもあったけど、
各目的で用意された諸機能が、有機的に相互作用(ハーモナイズ)しあって、
1+1=2以上の機能体系を生み出してたところが、実用的でかつアーティスティックで好きだったんだ。
おれが入門したころの、templateがあってRTTIないくらいのころのC++は美しかった。
258:デフォルトの名無しさん
08/08/03 21:10:05
昔はよかった
K&Rの頃のCが一番だと思っている
259:デフォルトの名無しさん
08/08/03 21:19:46
D言語マンセー
260:デフォルトの名無しさん
08/08/03 21:36:26
ここでC++0xの文法があーだこーだ議論するような奴がD言語使うと、
自分で言語仕様を拡張したい病にかかるからやめたほうがいい。
261:デフォルトの名無しさん
08/08/03 21:43:18
>>257
互換性やメリット、デメリットの狭間に立って考えると良い線じゃないの?
既に巨大なC++の仕様を拡張するのは常にデメリットが大きいし
互換性を考えると不要なものも捨てられないし
262:デフォルトの名無しさん
08/08/03 21:47:13
互換性か…嫌な言葉だな
263:デフォルトの名無しさん
08/08/03 22:45:51
>>260
ありすぎて困るww
264:デフォルトの名無しさん
08/08/03 22:59:52
とすると、そろそろ寿命なんだね。
C++がぐんと存在感伸ばしたころ(おれがC++始めたころ)はC++の青年時代。
引きしまってたし、かといって機能が少ないわけでもないくて先駆的機能たくさんあった。
今は余計についた贅肉自体にもフォローしなくちゃいけなくて悪循環。
(後継の人たちが)どうがんばっても老廃物が老廃物を呼ぶ。
初代ガンダムは筋が通ってておもしろかったけど、
それみて育った子供達が作った後継のガンダムはちっともおもしろくないのと同じ。
265:デフォルトの名無しさん
08/08/03 23:15:28
寿命なのはそうなんだろうけど、後継がサッパリ出てこないから老兵が頑張るしかないんだよな
Java?論外ですわ
266:デフォルトの名無しさん
08/08/03 23:22:19
Dの出番ですね
267:デフォルトの名無しさん
08/08/03 23:32:25
言語はともかく、処理系がいまいちな気がするのは偏見だろうか>D
268:デフォルトの名無しさん
08/08/03 23:33:04
>>266
個人が趣味で作ってる程度のものをC++やJavaと同列に扱うのはどうかと思う
269:デフォルトの名無しさん
08/08/03 23:33:23
俺的にはC++0xでやっと「使える」様になってきてこれからな感じなんだが・・・
template無い頃のC++はこりゃダメだと思ってたよ
270:デフォルトの名無しさん
08/08/03 23:48:18
>>268
今でこそ標準化されてるけどC++だって昔は似たようなものだったよ。
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のラムダの例を改変
// URLリンク(ja.wikipedia.org)
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 と両方が真だとすると、
それは日本のレベルが低いんでは。
550:デフォルトの名無しさん
08/09/19 09:28:45
まあこの板の中ではレベル高いほうだろw
残念ながら英語だと読む気が激減する人が多いと思われます
ところで0xって10進法じゃなくてry
551:デフォルトの名無しさん
08/09/19 09:41:25
2ちゃんのスレに全力でレスする奴もおらんだろ。
上の方に「誰も指摘しない、俺は規制で書き込めない」って
ブログのURL張られていたけど、w付きのおふざけレスにはレスしないよー
552:デフォルトの名無しさん
08/09/19 12:20:36
まぁ、何か恥かいたときに「本気出してないからだ」って
自分に言い聞かせられる状態を常に保って書くのが2chだしな。
553:デフォルトの名無しさん
08/09/19 12:32:15
いや、俺はリアルで全力出せない分全力でレスして全力で恥をかくぞ
554:デフォルトの名無しさん
08/09/19 17:57:47
確信度によって態度変えるのが皆のため
555:デフォルトの名無しさん
08/09/19 20:34:41
URLリンク(twitter.com)
556:デフォルトの名無しさん
08/09/19 20:50:19
cpp_akiraさんもう何がしたいのか分からなくて痛々しくなってきてるからやめて。
557:アキラ
08/09/19 21:20:31
また誤解されるのはイヤなので書いておきます。
548-551の話は、私のことではなくhitoさんのことですよね。
なのでTwitterでは、そんなこと言ってない、というようなことを書きました。
それと、555は私ではありません。
558:デフォルトの名無しさん
08/09/19 21:20:56
>>556
cpp_akira より晒し続けてるバカのほうが痛々しいし心配だ。
559:558
08/09/19 21:21:32
あ、すまん age てもうた。
560:デフォルトの名無しさん
08/09/19 21:25:03
>>557
>>555 みたいなのは相手をするだけ調子づくだけだから、シカトこいたほうがいいよ。
それが >>555 みたいなヤツの為にもなるし。相手にすると双方、馬鹿を見ることになるよ。
561:デフォルトの名無しさん
08/09/19 21:31:08
Twitterで誰が何やってるとか、いちいち構うなよ
562:デフォルトの名無しさん
08/09/19 22:02:30
>>555より>>548だろ、痛々しいのは。
563:デフォルトの名無しさん
08/09/19 22:07:18
同じ人じゃね?w
564:デフォルトの名無しさん
08/09/19 22:11:14
お前らもっとレベル高い話しろよ。
人の事なんてどうでもいいだろ?C++0xの話をしろC++0xの話を。
565:デフォルトの名無しさん
08/09/19 22:27:11
じゃ、話題でも振るか。
late_checkは必要悪なんだろうか。
late_check {
//以下、スレ違いの話題も可
566:デフォルトの名無しさん
08/09/19 22:31:20
}
567:デフォルトの名無しさん
08/09/19 23:07:44
>>565
ないとどうにもならん。
N2719を読んで鬱。
俺にmove semanticsは使いこなせるだろうか…
568:デフォルトの名無しさん
08/09/19 23:35:32
そんなキモチワルイ構文よりプロパティをですね
569:デフォルトの名無しさん
08/09/20 00:30:49
わちゃー! late_check!
なんだこれは
直感的に拒否反応が出たけど
でも今はしっかり飲んじゃってるんで理解できないや
570:デフォルトの名無しさん
08/09/20 00:34:50
また性懲りもなく「xxxは僕です」ごっこやってんのか
ウザいを通り越してイタいぞ
はてなだかツイッターだかしらんが村から出てくんなよ
ガキが
571:デフォルトの名無しさん
08/09/20 00:41:03
ここは C++0x を語るスレなんであって、C++0x を語る人を語るスレではないのでそこんところよろしく。
572:デフォルトの名無しさん
08/09/20 09:29:42
美少女中学生を語るスレでもあるぞ
573:デフォルトの名無しさん
08/09/20 09:44:10
違いますやめてください迷惑です
574:デフォルトの名無しさん
08/09/20 11:48:28
hitoに触れるなよ
人間性に問題がある奴なんだから
575:デフォルトの名無しさん
08/09/20 12:13:55
人間性に問題ないプログラマなんているの?
C++やってるやつなんて特に
576:デフォルトの名無しさん
08/09/20 12:28:41
それでも >>570 みたいな匿名で粋がってるだけのチキンと一緒くたにはされたくないです!><
577:デフォルトの名無しさん
08/09/20 12:31:55
そこでデレて!
578:デフォルトの名無しさん
08/09/20 13:10:49
みんな好き…
579:デフォルトの名無しさん
08/09/20 13:50:34
またアキラか
580:デフォルトの名無しさん
08/09/20 15:40:33
>>575
開き直るなよ屑hito
581:デフォルトの名無しさん
08/09/20 15:44:10
for(;;);
582:デフォルトの名無しさん
08/09/20 23:54:38
0bの話しようぜ!
583:デフォルトの名無しさん
08/09/21 00:27:12
>>582
それは2011年になっちゃったってこと?
それとも2進リテラル?
584:デフォルトの名無しさん
08/09/21 07:23:11
オービー?
585:デフォルトの名無しさん
08/09/21 18:47:31
いいえ女子中学生です
586:アキラ
08/09/23 13:57:11
これだから2chは・・・
587:デフォルトの名無しさん
08/09/23 14:46:22
はいはい偽物
588:デフォルトの名無しさん
08/09/23 14:55:37
美少女中学生の人気に嫉妬
589:デフォルトの名無しさん
08/09/23 14:58:09
スレッドスコープ変数とかあるのかな
590:デフォルトの名無しさん
08/09/23 15:19:17
スレッドとは何かを言語で規定しなきゃならなくなるからなぁ
無理だろ
591:デフォルトの名無しさん
08/09/23 15:26:28
>>590
そこはもう済んでると思うよ。
592:デフォルトの名無しさん
08/09/23 16:17:30
済んでるの?
スレッド関係はライブラリにするんじゃなかったっけ
あったとしてもスレッドの寿命に合わせて管理されるヒープ変数を保持するテンプレートクラスとか
そんなんだろ
593:デフォルトの名無しさん
08/09/23 16:42:55
ちゃんとメモリモデルから言語に組み込まれてるよ。↓こんな感じで。(ドラフト N2723 から)
> 1.10 Multi-threaded executions and data races [intro.multithread]
> 1 Under a hosted implementation, a C++ program can have more than one thread of execution (a.k.a. thread)
> running concurrently. The execution of each thread proceeds as defined by the remainder of this standard.
> The execution of the entire program consists of an execution of all of its threads. ...
594:デフォルトの名無しさん
08/09/24 09:08:21
>>592
最低でも、
URLリンク(www.open-std.org)
のタイトルくらいは眺めてくれよ。paper本文は読まなくていいから。
あと、
URLリンク(www.open-std.org)
URLリンク(www.open-std.org)
595:デフォルトの名無しさん
08/09/28 21:54:28
この世にはスタックとヒープしかないっていうCの潔さが好きだったのに…
596:デフォルトの名無しさん
08/09/29 01:39:28
>>595
getenv(3)やstdio.hの事も忘れないであげてください。
597:デフォルトの名無しさん
08/10/09 05:12:59
News 2008-10-08: The 2008-10 mailing is available
News 2008-10-08: The C++ Standard Core Language Issues List (Revision 59) is available
News 2008-10-08: The C++ Standard Library Issues List (Revision 60) is available
598:デフォルトの名無しさん
08/10/09 05:46:44
N2763からnamed lambdaとblock-local functionが取り除かれている。
残念だ。
599:デフォルトの名無しさん
08/10/18 14:08:10
finalとか追加されんのか
class hoge [[ final ]]
{
}
sealedが欲しかった俺としてはうれしいが文法が・・
600:デフォルトの名無しさん
08/10/18 14:26:37
finalとconstって、どう違うんだ?
継承不可ってだけ?
601:デフォルトの名無しさん
08/10/18 14:54:22
属性が後ろに付くのがダサイ
602:デフォルトの名無しさん
08/10/18 15:07:13
じゃあDつかおうぜ
603:デフォルトの名無しさん
08/10/18 15:27:20
なぁにconstメンバ関数と一緒さ。
604:デフォルトの名無しさん
08/10/18 15:30:11
まあ、Cの時代から属性は後ろに書くものだったからなあ…
605:デフォルトの名無しさん
08/10/18 15:43:30
他が前にたくさん付き過ぎなんだよ
606:デフォルトの名無しさん
08/10/18 16:13:54
遂にconceptが草稿に入った
607:デフォルトの名無しさん
08/10/18 16:33:48
いまさらどうした?
ドラフトが出たのは九日も前だぞ。
608:デフォルトの名無しさん
08/10/18 17:04:23
後ろに付くのはいいけど[[]]が激しくダサい
wikiのリンクみたい
609:デフォルトの名無しさん
08/10/18 18:47:15
Microsoftが頑張ってC++/CLIのと似た構文にしてくれればいいのに、とVC++使いは思う。
610:デフォルトの名無しさん
08/10/18 18:51:21
なんだかんだ言ってC++/CLIの記法は悪くないよな
まぁ、使う気はないんだが
611:デフォルトの名無しさん
08/10/18 21:38:43
洗練されているって感じがいいんだよなC++/CLIの文法は
612:デフォルトの名無しさん
08/10/19 01:43:41
しがらみがないってだけじゃね
613:デフォルトの名無しさん
08/10/19 01:51:44
しがらみがないおかげでグロ構文が必要ないことは素晴らしいことだ
614:デフォルトの名無しさん
08/10/19 01:59:57
[&]
615:デフォルトの名無しさん
08/10/19 02:07:57
spaced keywordなんて最悪のグロだ。頭おかしいと思う。
616:デフォルトの名無しさん
08/10/19 04:08:17
C++/CLIよりはManaged C++の方がマシだな俺は。
617:デフォルトの名無しさん
08/10/19 07:55:21
泥団子lisp
618:デフォルトの名無しさん
08/10/19 12:53:24
>>616
属性に関してはどっちも同じ構文だぞ。
619:デフォルトの名無しさん
08/10/19 12:55:43
public ref class Hoge sealed
620:デフォルトの名無しさん
08/10/19 18:59:55
C++でGCサポートしようと思ったらああいう方法しかないよなぁ
621:デフォルトの名無しさん
08/10/19 19:16:10
C++/CLIはチルダだったっけ
622:デフォルトの名無しさん
08/10/19 19:35:54
ハット。結局、構文を整理し直したら C++/CLI になった、なら馬鹿馬鹿しい話だな
623:デフォルトの名無しさん
08/10/27 11:09:57
いいところは一緒になってもいいよ。
プロパティは止めて欲しいけど。
メタなスロットアクセスフックにして欲しい。
move semanticsみたいにね。
624:デフォルトの名無しさん
08/10/27 23:03:46
>>623
>メタなスロットアクセスフックにして欲しい。
>move semanticsみたいにね。
kwsk
625:デフォルトの名無しさん
08/11/01 01:20:43
最終ドラフトが採択されたそうですよ
URLリンク(yebo-blog.blogspot.com)
626:デフォルトの名無しさん
08/11/01 03:57:35
結局ラムダのウンコ構文はそのままか…
627:デフォルトの名無しさん
08/11/01 10:43:23
まだまだ変更される可能性があるから、いったいどこから最終なんて言葉が出てきたのか疑問。
628:デフォルトの名無しさん
08/11/01 11:25:50
completeを最終と訳してしまったんではないかな。
feature-complete、C++0xに入る機能は全てレビュー出来る状態になった
「全て揃った公開ドラフト(complete public draft)」が出来た。
URLリンク(herbsutter.wordpress.com)
629:デフォルトの名無しさん
08/11/01 13:58:50
所でconcept gccみたいな産廃じゃないまともな処理系ができるのはいつですか?
630:デフォルトの名無しさん
08/11/01 14:11:38
規格が制定されてから五年後ぐらいには、まともな処理系が登場すると思ってるんだけどね。
631:デフォルトの名無しさん
08/11/02 00:42:51
>>629
ヒント:自分で作る
632:デフォルトの名無しさん
08/11/02 00:45:14
すでにC++のコンパイラは一人の天才の手の負える仕事ではなくなっているわけだが。
633:デフォルトの名無しさん
08/11/02 01:03:00
じゃあ発想の逆転で、C++インタープリタを作る。
634:デフォルトの名無しさん
08/11/02 01:46:43
LLVM/clang のひとたちががんばってくれないかな...
Apple に買収されたから C++ にはあんまり興味ないのかな。
635:デフォルトの名無しさん
08/11/02 02:05:09
>>632
仕様が決まってる言語処理系の実装に天才なんて不要
時間さえあれば経験豊富な凡才一人で完成するだろう
636:デフォルトの名無しさん
08/11/02 02:18:37
アホなのかな、この子は?
637:デフォルトの名無しさん
08/11/02 02:28:52
アホだな。
638:デフォルトの名無しさん
08/11/02 02:43:33
エロい会話禁止
639:デフォルトの名無しさん
08/11/02 05:33:25
C言語コンパイラなんか天才なら8時間で作っちゃうよ。
最適化までは無理だが。
640:デフォルトの名無しさん
08/11/02 05:37:11
天才じゃないだけあって説得力が無いな。
641:639
08/11/02 06:11:01
30年ほど前、3歳のときに実際に作ったからそう言ってるの。
正確にはコンパイラジェネレータを8時間で作って、あとは1ヶ月かけて自動生成したんだけど、
いまどきのパソコンなら数分で完了するよ。
もちろん全ての仕様を網羅してるわけじゃないし基本ライブラリもないけどな。
最初のコンパイラだから。
642:デフォルトの名無しさん
08/11/02 06:12:08
もうちょっと面白くならないものかな。
643:デフォルトの名無しさん
08/11/02 06:20:10
もうちょっとひねりが欲しかったね
期待外れと言わざるを得ない
644:639
08/11/02 06:33:00
>>642-643
つまり天才を否定するわけだな。
645:デフォルトの名無しさん
08/11/02 07:42:26
神童も大人になればただの人...どころかただの馬鹿と化してしまったわけですね、わかります。
646:639
08/11/02 07:58:08
> 大人になればただの人
いえいえ
完成品を渡して翌日には殴られて記憶喪失ですよ。
しかも殴られた理由が、「次はTRONを1日で完成させろ」って言われて拒否したから。
647:639
08/11/02 08:00:56
要するに人身売買暴力団が仕切ってる限り日本に技術は育たない。
パチンコのゴト師だとか中国スパイに暗号技術者が殺されたりしまくってるでしょ。
648:デフォルトの名無しさん
08/11/02 11:16:52
久々にやねうらおみたいのを見た
649:デフォルトの名無しさん
08/11/02 11:38:33
面白さがみじんもないな
650:デフォルトの名無しさん
08/11/02 12:20:06
本人は面白いと思ってるんだから、そっとしておいてやれ
651:デフォルトの名無しさん
08/11/02 18:43:11
まともな処理系になるかどうか分からないけど、
VC++2010のCTPに0xの機能が一部入ったようだ
URLリンク(blogs.msdn.com)
URLリンク(blogs.msdn.com)
652:デフォルトの名無しさん
08/11/02 20:43:55
メジャーなC++コンパイラの最新版やプレビュー版で実装されてる機能(主なもの)
・GCC (URLリンク(gcc.gnu.org))
rvalue references
variadic templates
initializer lists
static assertions
decltype
strongly typed enum
・Visual C++ (URLリンク(blogs.msdn.com))
lambda
rvalue references
static assertions
auto
・C++Builder (URLリンク(dn.codegear.com))
rvalue references
static assertions
decltype
strongly typed enum
char16_t, char32_t
現時点ではこんなもん?
今後、C++0xが正式に出るまでどれだけ実装されるかな
653:デフォルトの名無しさん
08/11/02 20:58:28
一般的とは言えないかもしれないが、
・Comeau C++ ( URLリンク(www.comeaucomputing.com) )
static assertions
auto type specifier
extern template
後、細々したもの。
654:デフォルトの名無しさん
08/11/02 21:47:35
一番大事なautoを実装してるのはメジャー所ではVCだけかよ…
655:デフォルトの名無しさん
08/11/02 21:51:03
ほかはdecltypeがあるからいいじゃない。
656:デフォルトの名無しさん
08/11/02 22:02:15
しかしだね。
auto x = a + b ;
auto iter = v.begin() ;
の変わりに、
decltype(a + b) x = a + b ;
decltype(v.begin()) iter = v.begin() ;
では面倒だぜ。
657:デフォルトの名無しさん
08/11/02 22:07:54
#define demi_auto(X, Y) decltype(Y) X = Y;
...こんなマクロが流行るんですね、わかります。
658:デフォルトの名無しさん
08/11/02 22:27:39
>>657
既にBOOST_AUTOが切り開いた道
659:デフォルトの名無しさん
08/11/02 22:36:53
autoとdecltypeってどっちかが出来たらもう片方もすぐ出来そうだけどな(効率は別にして)
一番目立つ機能だから変なマクロが流行る前に最優先で実装して欲しい
660:デフォルトの名無しさん
08/11/02 22:39:51
demi って中二病っぽいね。
661:デフォルトの名無しさん
08/11/02 22:41:04
美少女中学生は中二が一番いいよぜ?
662:657
08/11/02 22:43:22
>>660
悪かったな。
663:デフォルトの名無しさん
08/11/02 22:45:06
decltypeの読み方は
「でっくるたいぷ」
でよろしいですねッ!
664:デフォルトの名無しさん
08/11/02 22:45:16
demicup
665:デフォルトの名無しさん
08/11/02 23:46:55
>>659
decltypeはsizeofの変種でめっちゃ簡単。
autoは宣言/定義を解釈するコードを書き換える必要がある。
最悪トップダウン/ボトムアップを入れ替える必要あり。
666:デフォルトの名無しさん
08/11/03 00:01:35
式の型が分かったら、
そのサイズを計算せずに、
その型のまま返すだけだからね。
sizeof → decltype
667:デフォルトの名無しさん
08/11/03 00:51:07
だからVCがベータにもならないのに、いきなりautoをサポートしてるのに驚いたんだがな。
普通decltypeが先だろと。
668:デフォルトの名無しさん
08/11/03 01:11:42
GC入るって本当?
669:デフォルトの名無しさん
08/11/03 01:13:30
autoはC++/CLIがらみで追加を計画していたと推測してみる。
670:デフォルトの名無しさん
08/11/03 01:21:21
C++/CLIの記法というか、MSがここまで評価されるのも珍しいなw
671:デフォルトの名無しさん
08/11/03 01:40:42
昔は知らないんだが、VCの方がgccよりもテンプレートのサポートが優れていると、
あのC/C++インタプリタ、CINTのドキュメントに書いてあるんだが。
これはいつ頃書かれたんだろうね。かなり昔の事だと思うが。
URLリンク(root.cern.ch)
>Template works probably better than most of UNIX based C++ compilers,
>but not as good as Windows based ones.
672:デフォルトの名無しさん
08/11/03 02:07:33
そうかautoって難しいのか
auto検出したら内部で657のマクロみたいな置き換えすりゃいいだけかと思ってた
673:デフォルトの名無しさん
08/11/03 04:20:31
>>671
確か、VC++が標準対応売りにしだしたのはVS2002の辺りから。
ひどかったのは、VC6からVS2002の間が開き過ぎたせい。
674:デフォルトの名無しさん
08/11/03 04:58:18
2002 も結構ひどかったけどな。4年も待ったのにそれかよって感じで。
そして 2003 で一気に改善されて、2002 のアカデミック(無料アップデート対象外)を買った俺涙目。
675:デフォルトの名無しさん
08/11/03 05:54:15
4年どころじゃなくない?
VC6って96年だった気が。
C++の標準化の1つの節目が98年なんで、VC6が対応しているわけもないという。
676:デフォルトの名無しさん
08/11/03 08:26:56
今もバグフィックスが遅れているから、
boostなんかVC++パッチの嵐だよね。
testが一番通ってるのもVC++なんだがw
メジャー・バージョンアップで適合率トップ、
マイナー・バージョンアップではノロノロで追い抜かれる、
の繰り返しだね。
677:デフォルトの名無しさん
08/11/03 09:02:31
まあ開発スタイル的にそうなるのが必然だろ
gccなんかと比べると特に
678:デフォルトの名無しさん
08/11/03 09:05:31
開発スタイルよりも、バグであっても、自社のものに依存しているものが多いから、
簡単にフィックスできないって事があるね。
679:デフォルトの名無しさん
08/11/03 09:09:46
boost が Comeau 非対応なのはなんか理由があったんだっけ?
680:デフォルトの名無しさん
08/11/03 10:48:12
メンテナンスするひとがいないだけでしょ
681:デフォルトの名無しさん
08/11/03 12:29:23
conceptを実装するのが一番しんどいイメージが
682:デフォルトの名無しさん
08/11/03 13:36:54
現状の型のセマンチクスを変更しないからそうでもないような
あ、conceptとか入れたらlookupの挙動が変わる?
683:デフォルトの名無しさん
08/11/03 13:40:55
どこかのサイトに書いてあったけど、
VCはconceptを実装するのに一年はかかるとか
なぜかはわかんね
684:デフォルトの名無しさん
08/11/03 15:10:28
一年で実装できたら大したものだ。
五年はかかるぜ。
685:デフォルトの名無しさん
08/11/03 15:13:52
俺なら8年で実現してやる
686:デフォルトの名無しさん
08/11/03 15:14:49
俺なら3年かけてから挫折する自身あるぜ
687:デフォルトの名無しさん
08/11/03 17:34:29
>>683
C++03やC++/CLIが使えなくなるわけじゃないから、
MSにとってそんなに優先順位の高い仕事じゃない。
コンパイラだけでライブラリはそのままじゃアレなんで、
ライブラリやらないといけないし、
独自ライブラリの部分のconcept化をどうするか考えて、
設計しとかないといけない。concept化やらない部分も、
やる部分との整合を考えないといけないから。
g++は規格部分+独自拡張だけだから身軽。
規格に全て書いてあるわけじゃないしね。
Issues Listにあるようなことを実装しながら考えないといけない。
688:デフォルトの名無しさん
08/11/03 17:53:09
>>682
現行のコードは変わらないだろ。
689:デフォルトの名無しさん
08/11/05 22:35:59
続・VC++10はいろいろ実装されない
URLリンク(d.hatena.ne.jp)
最低だ
690:デフォルトの名無しさん
08/11/05 22:38:40
initializer_listよお前もか
691:デフォルトの名無しさん
08/11/05 22:43:13
>>690
>>689にはinitializer_listのことは書いてない気がするんだが
692:デフォルトの名無しさん
08/11/05 22:43:22
中途半端な物を実装されるよりはましじゃないの
まだ仕様の方がちゃんと決まってないのに無茶言うな
693:デフォルトの名無しさん
08/11/05 23:00:14
上流設計の遅れを現場に押しつけるのイクナイ!
694:デフォルトの名無しさん
08/11/05 23:09:30
下手に実装したら、数年後VC6の悪夢が再びやってくること間違いなしだな。
695:デフォルトの名無しさん
08/11/05 23:49:08
VC10の寿命がVC6並に長くなる理由が
ないので、それは大丈夫じゃないかな。
696:デフォルトの名無しさん
08/11/06 08:36:45
constructor delegationにmember initialization、
どっちも後から付けやすい機能だから、
次のアップデイトに入るんじゃないか?
697:デフォルトの名無しさん
08/11/06 09:35:36
サービスパックでだすような変更じゃないと思うんだが。
698:デフォルトの名無しさん
08/11/06 09:40:00
それを考えるのは美少女中学生だな
699:デフォルトの名無しさん
08/11/06 19:58:17
本格対応はVC11待ちか・・
700:デフォルトの名無しさん
08/11/06 20:44:14
サービスパックで対応するかどうかはまだ分からないとvcblogの人が言っていたな
701:デフォルトの名無しさん
08/11/12 22:05:43
【プログラム】C++ 12010年に新バージョン"C++0x"へ - ガベージコレクタなど導入(08/11/12)
スレリンク(pcnews板)
702:デフォルトの名無しさん
08/11/12 22:25:39
あれ?ガベージコレクタ入るのん??
703:デフォルトの名無しさん
08/11/12 22:43:07
C++0x2EEAか。
704:デフォルトの名無しさん
08/11/12 22:54:20
C++0xの0xとは実は16進数のことだったんだよって
公式に言い訳しないの?w
705:デフォルトの名無しさん
08/11/12 23:14:17
0xの時点ですでに16進数ぢゃない
706:デフォルトの名無しさん
08/11/12 23:54:54
C++0xFFFFFFFF だお
707:デフォルトの名無しさん
08/11/13 00:03:23
BOM付けてくれ。
708:デフォルトの名無しさん
08/11/13 07:40:03
>>704
それは言い訳というよりは、むしろ愚直な反応というべきかも。
自分達からはその件について何も言わず、誰かに突っ込まれてから
「え? どう考えても16進数でしょ? アナタ何だと思ってたんですか?」
とか返すよりはw
709:デフォルトの名無しさん
08/11/13 19:20:17
なんで2010年の10進数で下二桁とってそれを16進数にするんだよw
2010は、16進数で 7DA な。 C++Dx ならまだ納得できるがw
710:デフォルトの名無しさん
08/11/13 21:06:44
そんなことよりGC導入って本当?
見送られたんじゃなかったっけ?
711:デフォルトの名無しさん
08/11/13 23:03:40
3.7.4.3
712:デフォルトの名無しさん
08/11/13 23:17:04
本格的に使えるようになるのは0f年ごろかな
713:デフォルトの名無しさん
08/11/14 00:19:50
これってコンパイラは現存するの?
714:デフォルトの名無しさん
08/11/14 00:22:57
いったい何をいってるんだ?
715:デフォルトの名無しさん
08/11/14 00:42:28
0xコンパイラは絶滅したよ
716:デフォルトの名無しさん
08/11/14 10:48:00
未来に戻れ
717:デフォルトの名無しさん
08/11/14 11:01:04
0x80xだな
西暦2048~2063年までには
718:デフォルトの名無しさん
08/11/14 21:09:22
もういいよ
719:デフォルトの名無しさん
08/11/14 21:28:13
0xネタはもういいよ
もっと面白い話題にしようぜ
ユーザー定義リテラル採用で0b厨歓喜とか
720:デフォルトの名無しさん
08/11/14 21:37:48
俺、wwwwで一進数リテラル作ろうと思うんだ…
721:デフォルトの名無しさん
08/11/14 23:06:53
1: w
2: ww
3: www
10: wwwwwwwwww
なぁ、0は?
722:デフォルトの名無しさん
08/11/14 23:09:43
0: w
1: ww
2: www
3: wwww
723:デフォルトの名無しさん
08/11/14 23:12:34
頭悪いな
724:デフォルトの名無しさん
08/11/14 23:15:43
素直にwWの二文字を使って2進数にしたほうが読みやすいと思うんだ。
夢はないけど
725:デフォルトの名無しさん
08/11/14 23:20:38
文字列リテラルをtemplate引数で受けれたらすごく楽しいことができそうなのに。
template<char c...> vector_c<char,c...> operator "" S();
decltype("hoge"S) → vector_c<char,'h','o','g','e'>
templateで受けられるのは数値(を構成する文字)だけっぽい。残念。
でもこれはできる?
decltype(123S) → vector_c<char,'1','2','3'>
726:デフォルトの名無しさん
08/11/14 23:21:45
文字列リテラルをtemplate引数で受けれたらすごく楽しいことができそうなのに。
template<char c...> vector_c<char,c...> operator "" S();
decltype("hoge"S) → vector_c<char,'h','o','g','e'>
templateで受けられるのは数値(を構成する文字)だけっぽい。残念。
でもこれはできる?
decltype(123S) → vector_c<char,'1','2','3'>
727:デフォルトの名無しさん
08/11/14 23:23:02
すまん。連投してしまった。
728:デフォルトの名無しさん
08/11/15 00:32:17
>>722
よくやった。わかりづらい。
さて次の議題だが、マイナス値はどうする?
729:デフォルトの名無しさん
08/11/15 02:20:14
>>728
0: w
1: ww
-1: www
2: wwww
-2: wwwww
730:デフォルトの名無しさん
08/11/15 02:28:36
またひとつ変態のためのオモチャができるわけですね
731:デフォルトの名無しさん
08/11/15 02:30:25
凶悪すぎるw
732:デフォルトの名無しさん
08/11/15 02:43:58
wとWでマイナス2進法を使って表せば任意長の整数が表せるな
733:デフォルトの名無しさん
08/11/15 04:31:33
>>728
そこでboost::lambdaでチャーチ数ですよ。
734:デフォルトの名無しさん
08/11/15 06:18:25
int w, h;
なんてのがコンパイルエラーになるワケww?
735:デフォルトの名無しさん
08/11/15 06:43:35
>>720は軽い気持ちで書いたが、規格では、
<literal> <user-defined-suffix>
しか許されないから、wwwwがリテラルになるのは無理なんだ。
int operator "" w(const char*p, size_t s) { // 提案ではoperator "w"と書いた。
return s; // '\0'は抜いたサイズが渡される。つまりstrlen(3)と同じ。
}
"www"w // == 3
なら可能。この定義なら ":-)"wでも3だが。
736:デフォルトの名無しさん
08/11/15 08:41:16
vで0、wで1を現わすとして2進数を実装するとこんな感じなのか。
"wvvvwvvwvwww"w // == 0x897
Vで2、Wで3を現わすとして4進数とか。
"WwVvwW"w // == 0xd87
737:デフォルトの名無しさん
08/11/15 09:42:00
-5 == "WWWW"w
-4 == "WWww"w
-3 == "WWwW"w
-2 == "Ww"w
-1 == "WW"w
#0 == "w"w
+1 == "W"w
+2 == "WWw"w
+3 == "WWW"w
+4 == "Www"w
+5 == "WwW"w
738:デフォルトの名無しさん
08/11/15 10:06:28
-2進数採用で負数も統一的に扱えるぜ
0 -> ""w
1 -> "W"w
-2 -> "Ww"w
-1 -> "WW"w
4 -> "Www"w
5 -> "WwW"w
2 -> "WWw"w
3 -> "WWW"w
739:デフォルトの名無しさん
08/11/15 10:19:23
-2進数とかワロスww
この話題に触れたのはクヌース先生の説明を読んで以来だぜw
740:デフォルトの名無しさん
08/11/15 10:42:35
どんどんわかりづらくなってるwww GJ!w
741:デフォルトの名無しさん
08/11/15 11:01:48
インタプリタ書けば別言語を埋め込むことも出来るよな
"+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.\
------------.<++++++++.--------.+++.------.--------.>+."BF
=>"Hello world!"
夢が広がりんぐ
742:デフォルトの名無しさん
08/11/15 11:05:53
コンパイルタイムに評価できないと意味なさげ
743:デフォルトの名無しさん
08/11/15 11:16:43
仕様全然知らんのだけど、
ローマ数字をコンパイルタイムで数値変換とかは無理?
744:デフォルトの名無しさん
08/11/15 11:19:15
constexprって再帰もループもできないんだろ?
745:デフォルトの名無しさん
08/11/15 11:21:08
引数にコンパイル時定数しか取らないんだからあらかじめ計算できそうなもんだけどな
operator""の中でグローバル変数使う可能性があるから無理なんだろうか
746:デフォルトの名無しさん
08/11/15 11:23:52
>>744
再帰にしない代わりに同じ内容の関数をたくさんつくれば、
有限ステップの計算ならできるんじゃね。
747:デフォルトの名無しさん
08/11/15 13:13:28
boost::protoを使ってbrainfuckを実装する作業に戻るんだ
748:デフォルトの名無しさん
08/11/15 14:41:54
>>741
operator "" BF("abcdef")は、
operator "" BF<'a', 'b', 'c', 'd', 'e', 'f'>()と等価だから、
必要な分だけ特殊化しておけば大丈夫。
749:デフォルトの名無しさん
08/11/15 15:19:29
C++厨はすぐにTMPしようとするから困る。
750:デフォルトの名無しさん
08/11/15 15:23:50
>>749
素直にTMP厨と呼べば?
751:デフォルトの名無しさん
08/11/15 15:26:01
C++はD言語の爪の垢でも煎じて飲めば良いのになぁ>コンパイル時文字列操作
752:デフォルトの名無しさん
08/11/15 15:48:44
今度はD厨か。
753:デフォルトの名無しさん
08/11/15 15:57:39
Dといえば以前はDelphiだったのにな・・・
754:デフォルトの名無しさん
08/11/15 18:48:31
D厨は関数のコンパイル時実行で無限再起でも起こしてコンパイラを落としていればいい。
755:デフォルトの名無しさん
08/11/15 19:41:29
コンパイルタイム無限再帰で悩むのはC++、
コンパイルタイム無限ループで悩むのがD。
756:デフォルトの名無しさん
08/11/15 19:54:33
そろそろ文字列mixinを導入して本格的にマクロを捨てようじゃないか
757:デフォルトの名無しさん
08/11/16 00:13:59
importディレクティブマダー?
758:デフォルトの名無しさん
08/11/19 18:34:26
mixinなんてD臭いキーワード嫌だ
759:デフォルトの名無しさん
08/11/19 20:36:27
late binding指向のmixinなんかC++に入るわけがない。
760:デフォルトの名無しさん
08/11/21 11:50:31
>>19
761:デフォルトの名無しさん
08/11/21 17:57:57
後置単項の+はC++の演算子じゃないから>>19は構文エラー
762:デフォルトの名無しさん
08/11/22 01:13:42
後置+++はC+++の演算子だよ。
763:デフォルトの名無しさん
08/11/22 22:15:49
C# は # という演算子を作るべきだった。
764:デフォルトの名無しさん
08/11/22 22:17:46
C や C++ にすらあるというのに
765:デフォルトの名無しさん
08/11/22 22:55:25
でもC/C++の#演算子は前置単項だからな
766:デフォルトの名無しさん
08/11/22 22:57:28
使ったことないな
767:デフォルトの名無しさん
08/11/22 23:01:27
ASSERT のようなマクロを使う時に
引数をエラーメッセージに表示する時とかによく使う。
768:デフォルトの名無しさん
08/11/22 23:02:28
使う時に、じゃなくて、作る時に、だ。
769:デフォルトの名無しさん
08/11/22 23:28:01
プリプロセッサ演算子だな
770:デフォルトの名無しさん
08/11/23 21:58:51
ぷろぷりせっさ
771:デフォルトの名無しさん
08/11/24 09:12:03
ぷるぷるそっさ と空目
772:デフォルトの名無しさん
08/11/24 19:19:49
スレッドとメモリモデルに関してはどこを探せばいいですか
C++0xで決まるのかどうかもわかってないレベルですが
773:デフォルトの名無しさん
08/11/24 19:20:31
>>772 >>1
774:デフォルトの名無しさん
08/11/24 21:24:43
C++0xのラムダ式は再帰できますか?
775:デフォルトの名無しさん
08/11/24 21:30:15
C++2003でも不動点演算子となるような関数オブジェクトが定義できるんで
こういうのを0xでも実装すればかのうだと思います
776:デフォルトの名無しさん
08/11/25 10:09:21
>>774
VC++blogに0xのラムダを使った再帰の例が出てたよ
777:デフォルトの名無しさん
08/11/30 11:56:57
/ ..::::::...ヾ,-┐:::::.. ヽ、
/:::::::: :::::::::::::::..ヽ|、::::::::... ヽ、
/ :::::::: 、:::::::::::::::::...ヽ::::::::::::.. ヽ
/ ::::: 人、 | ヽ、_:::::::::::::: |:::::::::::::. |
,イ´ | :::ト、 | `'-,r‐=,、ヽ、 ::: |:::::::::::::: |
rv' l´ ヽ、:.| r-、 p ヽ `l ,ヘ::::::::::::::::: |
| | | ヾヽ、 ハ ヾ_ノ .| |' .|:::::::::::::::::: | ラムダっちゃ♥
'´ ̄ ̄`ヽ、、_ | | | ヽ、l ゞ ー | レ'::::::::::::::::::: |
 ̄ ` r-L l ', |` 、 ,' |:::::::::::::::::::::: |
_rヾニ `ヽ ', ヽ、 r‐-ァ /::|::::::::::::::::::::::::.. |
ヾゝイ´ ,/ .', ヽ、ゝ' _,.-;ノ:: |:::::::::::: ::::.. |
:.. ト ´ /.... 'ヽ,、_ >r' /:: /::::::::::::: ::: |
〉 .|:::::::::::...... `ー-‐'´,-/ /::::: / `ヽ、::: |
:.... .:::::::::::| |:::::::::::::::::,、-r―'''´ ̄ ,.-‐'´:::. / |:::::.... . |
::::::::::::::::::::::::::::::::| ',:::::::::::::∧ヾ V/―/::::::::::: / |:::::::::::.......:::. |
::::::::::::::::::::::::::::::::| ',:::::::::::ト kl /三/:::::::::: / ,'::::::::::::::::::::::: |
::::::::::::::::::::::::::::::::| ',:::::::::|ヾヾ|、 /::::::::: ,イ ,'::::::::::::::::::::::::: | |
::::::::::::::::::::::::::::::::| ',/ヽ__ヾ、|:::::: ∧/ /:::::::::::::::::::::::::: |.|.|
::::::::::::::::::::::::::::::::', ! / ヾ:: ∠__/ /:::::::::::::::::::::::::: | ||