C++0x 4
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/06/26(木) 00:25:25http://www.open-std.org/jtc1/sc22/wg21/
wikipedia
http://ja.wikipedia.org/wiki/C%2B%2B0x
C++0x
http://pc11.2ch.net/test/read.cgi/tech/1149440647/
C++0x 2
http://pc11.2ch.net/test/read.cgi/tech/1191842951/
C++0x 3
http://pc11.2ch.net/test/read.cgi/tech/1204808027/
0002デフォルトの名無しさん
2008/06/26(木) 00:32:120003デフォルトの名無しさん
2008/06/26(木) 00:42:230004デフォルトの名無しさん
2008/06/26(木) 00:42:50さて0bについて熱く語ろうか
0005デフォルトの名無しさん
2008/06/26(木) 01:15:260006これもいれてくれよ!>>1
2008/06/26(木) 01:31:04http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/
Status of Experimental C++0x Support in GCC 4.3
http://gcc.gnu.org/gcc-4.3/cxx0x_status.html
ConceptGCC
http://www.generic-programming.org/software/ConceptGCC/
Boost
http://www.boost.org
0007デフォルトの名無しさん
2008/06/26(木) 06:13:540008デフォルトの名無しさん
2008/06/26(木) 10:41:400009デフォルトの名無しさん
2008/06/26(木) 14:14:550010デフォルトの名無しさん
2008/06/26(木) 14:19:200011デフォルトの名無しさん
2008/06/26(木) 15:18:41俺はHaskellみたいなオペレーター定義(優先順位指定付)が欲しい。
Parser Combinatorの中間記法的記述が羨ましい。
0012デフォルトの名無しさん
2008/06/26(木) 20:31:13どう考えても罠が増えるだけです
本当にありが(ry
俺はパターンマッチングが欲しいな
0013デフォルトの名無しさん
2008/06/26(木) 20:42:530014デフォルトの名無しさん
2008/06/26(木) 20:50:230015デフォルトの名無しさん
2008/06/26(木) 21:25:28なんでC++にしがみついてんのよ?
0016デフォルトの名無しさん
2008/06/26(木) 21:33:270017デフォルトの名無しさん
2008/06/26(木) 21:35:510018デフォルトの名無しさん
2008/06/26(木) 22:03:240019デフォルトの名無しさん
2008/06/26(木) 22:48:160020デフォルトの名無しさん
2008/06/26(木) 23:07:34002111
2008/06/27(金) 00:12:36面白い機能が次々に入るので。
義理の父に、これ飲め、あれ食えとなかなか帰して貰えないけど、
どれも美味しいから嬉しいやら哀しいやらで、困っている状態。
0022デフォルトの名無しさん
2008/06/27(金) 00:19:21そこで>>11です。
+++はparser combinatorではCHOICEに使われることが多いです。
How to build a monadic interpreter in one day
http://www.haskell.org/sitewiki/images/c/c6/ICMI45-paper-en.pdf
0023デフォルトの名無しさん
2008/06/27(金) 12:32:26結局operator overloadも言われたいたほど
むちゃな使い方はされてないしなあ。
そういうライブラリもあるけど、現実問題として流行ることはない。
むしろ定義できないからBoost Xpressiveなんかわけわからなくなってる。
0024デフォルトの名無しさん
2008/06/27(金) 21:02:47単に規格書著者とコンパイラ実装者の都合
0025デフォルトの名無しさん
2008/06/27(金) 21:40:300026デフォルトの名無しさん
2008/06/27(金) 23:47:480027デフォルトの名無しさん
2008/06/28(土) 00:03:060028デフォルトの名無しさん
2008/06/28(土) 00:06:33evalが使えるようにするほうが、よっぽどマシで実用的だ。
0029デフォルトの名無しさん
2008/06/28(土) 00:15:06usingとかでスコープにユーザ定義オペレータがロードされた場合、
文法が変わっちゃうのかな。気持ち悪いな。
0030デフォルトの名無しさん
2008/06/28(土) 00:15:59それなんてスクリプト言語w
0031デフォルトの名無しさん
2008/06/28(土) 00:33:46今日ではスクリプト言語に限らず、実行時に生成したコードをコンパイルして何かするってことは行われてるよ。
たとえば、.NETではクラスオブジェクトをXMLとして出力する時に、
型ごとにC#のコードを生成してそれをコンパイルして使ってる。
0032デフォルトの名無しさん
2008/06/28(土) 00:34:150033デフォルトの名無しさん
2008/06/28(土) 00:40:300034デフォルトの名無しさん
2008/06/28(土) 01:08:04生成したユーザプログラムに、C++コンパイラ(言語解釈器)が内蔵されるとでもいいたいのか。
なんでC#なんて例を持ち出すんだ。天才なのか馬鹿なのかどっちだろ
0035デフォルトの名無しさん
2008/06/28(土) 01:12:030036デフォルトの名無しさん
2008/06/28(土) 01:22:10……それ、既にC++である意味ねえだろw
でもC++でevalって凄く変態的発想で素敵だとは思います。
実現したら惚れる
0037デフォルトの名無しさん
2008/06/28(土) 01:25:22いや、.NETの例が出ただけで中間コードとは何も関係ないだろ。
単純にいうと、プログラムにGCCを同梱すればいいだけの話。
0038デフォルトの名無しさん
2008/06/28(土) 01:28:580039デフォルトの名無しさん
2008/06/28(土) 02:13:000040デフォルトの名無しさん
2008/06/28(土) 02:28:24実行の度に同梱されたGCCがネイティブコード出力とか
どんだけ富豪プログラミングだよ
だが、それさえ工夫すれば実用に耐える時代は目の前に迫ってるのかもしれないな。
着想はLLVM方面かな?
0041デフォルトの名無しさん
2008/06/28(土) 02:37:290042デフォルトの名無しさん
2008/06/28(土) 02:39:26おいらはセンス0だと思って、皮肉で書いたのだが。
ただ、evalとラムダ式との相性には多少興味持てたが。
道具は使い分け。問題ごとに道具をうまく使い分けるユーザが最強。
盲目的にRuby最強とか(C++最強とか)言ってるやつは、ゆとり
0043デフォルトの名無しさん
2008/06/28(土) 02:40:16おいらってお前誰だよ。
0044デフォルトの名無しさん
2008/06/28(土) 02:46:380045デフォルトの名無しさん
2008/06/28(土) 02:50:270046デフォルトの名無しさん
2008/06/28(土) 02:54:42そこはテンプレートメタプログラミングでなんとかしよう
0047デフォルトの名無しさん
2008/06/28(土) 03:22:12何につかえるかはわからん
0048デフォルトの名無しさん
2008/06/28(土) 03:25:370049デフォルトの名無しさん
2008/06/28(土) 16:08:43下等なインタプリタ言語の機能なんぞいらん
0050デフォルトの名無しさん
2008/06/28(土) 16:22:360051デフォルトの名無しさん
2008/06/28(土) 16:47:440052デフォルトの名無しさん
2008/06/28(土) 17:09:12上下間違えてます
0053デフォルトの名無しさん
2008/06/28(土) 17:35:07それにしてもRuby最強杉・・・
0054デフォルトの名無しさん
2008/06/28(土) 17:50:320055デフォルトの名無しさん
2008/07/01(火) 19:01:00Programming: Principles and Practice Using C++
http://www.amazon.com/gp/product/0321543726/
だって。
0056デフォルトの名無しさん
2008/07/01(火) 20:12:580057デフォルトの名無しさん
2008/07/01(火) 20:17:48和訳でたら買ってもらおう。
0058デフォルトの名無しさん
2008/07/01(火) 21:29:420059デフォルトの名無しさん
2008/07/01(火) 21:33:090060デフォルトの名無しさん
2008/07/03(木) 07:19:03News 2008-07-02: The 2008-06 post-Sophia mailing is available (9800 kB tar.gz, .zip 9800 kB)
News 2008-07-02: The C++ Standard Library Issues List (Revision 57) is available
News 2008-07-02: The C++ Standard Core Language Issues List (Revision 56) is available
ドラフトは N2691 。
・・・ copy_if キタ━━━━━━(゜∀゜)━━━━━━!!!
n2666 の説明読んでちょっとワロタ
> the workaround of using double negatives is not unconfusing.
0061デフォルトの名無しさん
2008/07/03(木) 08:22:580062デフォルトの名無しさん
2008/07/03(木) 09:56:360063デフォルトの名無しさん
2008/07/03(木) 11:44:22> the workaround of using double negatives is confusing.
二重否定の利用は紛らわしいのでフィックス。
元に戻って、
> the workaround of using double negatives is not unconfusing.
二重否定の利用は紛らわしくないことはないのでフィックス。
以下、remove_if notの話禁止。
0064デフォルトの名無しさん
2008/07/03(木) 16:36:450065デフォルトの名無しさん
2008/07/03(木) 22:34:290066デフォルトの名無しさん
2008/07/03(木) 23:59:010067デフォルトの名無しさん
2008/07/04(金) 00:07:410068デフォルトの名無しさん
2008/07/04(金) 01:06:07正解
0069デフォルトの名無しさん
2008/07/05(土) 02:00:370070デフォルトの名無しさん
2008/07/05(土) 03:34:28等差数列・・・には使わないよなぁ
0071デフォルトの名無しさん
2008/07/05(土) 07:45:310072デフォルトの名無しさん
2008/07/05(土) 09:31:48for (i = 0; i < N; ++i) の抽象化でそ?
0073デフォルトの名無しさん
2008/07/05(土) 11:48:06こういう妙な略字やめて欲しいなぁ。
.NET Framework 3.5 の同様の機能は
Enumerable.Range って名前なんだけど。
0074デフォルトの名無しさん
2008/07/05(土) 13:25:22itoaじゃないよ?
0075デフォルトの名無しさん
2008/07/05(土) 13:51:46「イオータ」から連番を代入する機能だって想像できるわけないじゃん。あほらしい
0076デフォルトの名無しさん
2008/07/05(土) 13:54:19Rangeは名前の通りRangeを生成するだけで、コピーの作業まではやってくれないぞ。
0077デフォルトの名無しさん
2008/07/05(土) 15:09:29>>75
ttp://cpplover.blogspot.com/2008/07/c0x9iota.html
int i = 1;
std::generate(first, last, [i] () mutable { return i++; });
ラムダ式は適当だけど、これじゃだめなのかな。
あった方が便利だろうけど。
0078デフォルトの名無しさん
2008/07/05(土) 15:20:380079デフォルトの名無しさん
2008/07/05(土) 15:28:23じゃあおまえはλ式ときいて意味が分かるのか?
0080デフォルトの名無しさん
2008/07/05(土) 15:48:060081デフォルトの名無しさん
2008/07/05(土) 15:53:01あるじゃん。
0082デフォルトの名無しさん
2008/07/05(土) 15:54:240083デフォルトの名無しさん
2008/07/05(土) 16:05:580084デフォルトの名無しさん
2008/07/05(土) 16:39:54iotaでいいや
0085デフォルトの名無しさん
2008/07/05(土) 16:45:140086デフォルトの名無しさん
2008/07/05(土) 16:52:200087デフォルトの名無しさん
2008/07/05(土) 16:56:47みんな言おうと思っても言わなかったのに…
0088デフォルトの名無しさん
2008/07/05(土) 17:02:27フカクニモワロタ
0089デフォルトの名無しさん
2008/07/05(土) 17:17:420090デフォルトの名無しさん
2008/07/05(土) 17:33:510091デフォルトの名無しさん
2008/07/05(土) 19:01:16C++ は GC 機能持ってないくて
戻り値でオブジェクトを返すコスト高いからそういう仕様になってるだけで、
コピー作業の有無は本質じゃないのでは。
>>89
いや、マイナーな言語はマイナーな命名規則でやってくれてもいいんだけど、
大衆が使う言語で変な名前使われると初心者が寄り付かなくなるぞ。
indexe generator → i → ι
なんて誰が想像するんだよ。
0092デフォルトの名無しさん
2008/07/05(土) 19:05:170093デフォルトの名無しさん
2008/07/05(土) 19:08:290094デフォルトの名無しさん
2008/07/05(土) 19:11:37あ、いや、知名度はあるな。
なんだろ、マニア向け言語。
0095デフォルトの名無しさん
2008/07/05(土) 19:11:38それなんてboost::counting_iterator?
0096デフォルトの名無しさん
2008/07/05(土) 19:23:180097デフォルトの名無しさん
2008/07/05(土) 21:14:30copy_ifと同じようにSTLに(当時)存在しないアルゴリズムとして。
0098デフォルトの名無しさん
2008/07/05(土) 22:36:12つ concept_map InputIterator<int> {
typedef int value_type;
typedef int reference;
typedef int* pointer;
typedef int difference_type;
int operator*(int x) { return x; }
};
0099デフォルトの名無しさん
2008/07/05(土) 22:37:32< ForwardIterator
0100デフォルトの名無しさん
2008/07/06(日) 08:27:34別にダックプログラミングだけじゃなくてもいいけど
0101デフォルトの名無しさん
2008/07/06(日) 12:11:530102デフォルトの名無しさん
2008/07/06(日) 12:17:060103デフォルトの名無しさん
2008/07/06(日) 12:50:44シェア的にはマイナーだろ
0104デフォルトの名無しさん
2008/07/06(日) 12:53:160105デフォルトの名無しさん
2008/07/06(日) 13:12:27正直、APLはマイナーだと思う。w
0106デフォルトの名無しさん
2008/07/06(日) 14:24:430107デフォルトの名無しさん
2008/07/06(日) 17:11:060108デフォルトの名無しさん
2008/07/06(日) 17:12:240109デフォルトの名無しさん
2008/07/06(日) 17:13:420110デフォルトの名無しさん
2008/07/06(日) 19:51:36それはAdaじゃないの?
0111デフォルトの名無しさん
2008/07/06(日) 19:52:290112デフォルトの名無しさん
2008/07/06(日) 20:47:53メジャーなライブラリが影響を受けているからといって、
その言語がメジャーとは限らない。
0113デフォルトの名無しさん
2008/07/06(日) 23:54:24Adaは最初の実装言語ですよ。
まともなgenericsのあった数少ない言語だったから。
設計に関してはAPL, FP, Lisp, pure functional, CLU, smalltalkの影響が大きい。
0114デフォルトの名無しさん
2008/07/06(日) 23:55:490115デフォルトの名無しさん
2008/07/07(月) 08:10:280116デフォルトの名無しさん
2008/07/07(月) 11:38:330117デフォルトの名無しさん
2008/07/07(月) 14:14:12言語拡張を最低限にとどめて何とかなる関数型言語
# 簡単じゃん, 作ってしまえや
言語拡張しようとすると数年がかりになる手続き型言語
# いあ, それは, まだコンセンサスが…
って, 理解でいいのか?
0118デフォルトの名無しさん
2008/07/08(火) 02:51:250119デフォルトの名無しさん
2008/07/08(火) 03:02:52副作用使いまくりでデータぶち壊す手続き型言語ですね、わかります
0120デフォルトの名無しさん
2008/07/08(火) 08:02:55馬鹿が「俺はもうわかっている」と思うための唯一の方法だからでは。
0121デフォルトの名無しさん
2008/07/08(火) 08:13:03つ proper tail recursion
0122デフォルトの名無しさん
2008/07/08(火) 11:28:470123デフォルトの名無しさん
2008/07/08(火) 11:31:32頭悪そう…
0124デフォルトの名無しさん
2008/07/08(火) 11:35:550125デフォルトの名無しさん
2008/07/08(火) 12:02:56それは中途半端に頭がいい人。
頭の悪い奴は気軽に書いて、しっかりぶち壊す。
0126デフォルトの名無しさん
2008/07/08(火) 12:42:02書けないというのは、書き方に悩んだりして手が出せないという意味ではなく、
まともな物を書けないという意味ね。
0127デフォルトの名無しさん
2008/07/11(金) 01:44:59今更まともにラムダ式を使いこなせるわけがないということですね、わかります
0128デフォルトの名無しさん
2008/07/11(金) 01:52:070129デフォルトの名無しさん
2008/07/11(金) 02:46:46「再帰はスタックを壊すので、出来るだけループに書き換えましょー」って習うじゃん
書き換えの練習問題とかお約束じゃん
最近は違うの?
0130デフォルトの名無しさん
2008/07/11(金) 02:50:37エラーになるとか、無闇に重くなるとかが普通だろ。
0131デフォルトの名無しさん
2008/07/11(金) 02:53:04「出来るだけ」ってことは暗に「出来ない」ケースでは使えってことでは?
つか、再帰が悪とかってレベル低すぎでしょ。w
0132デフォルトの名無しさん
2008/07/11(金) 03:14:570133デフォルトの名無しさん
2008/07/11(金) 07:14:34何歳なんだおまえは。50歳ぐらいか?
0134デフォルトの名無しさん
2008/07/11(金) 07:38:15末尾コールしをジャンプにしてるだけじゃん
関数型言語だと結構普通にやってるみたいだけど、CとかC++で
末尾以外の再帰をループに展開する奴ってあるの?
# アッカーマンとか、タライとか………
0135デフォルトの名無しさん
2008/07/11(金) 07:41:290136デフォルトの名無しさん
2008/07/11(金) 07:56:080137デフォルトの名無しさん
2008/07/11(金) 07:59:22たらいまわし関数で調べなおせ。
0138デフォルトの名無しさん
2008/07/11(金) 08:00:050139デフォルトの名無しさん
2008/07/11(金) 08:26:470140デフォルトの名無しさん
2008/07/11(金) 10:09:15手元にある sbcl でオプティマイズかけたら loop に展開したぞ
lisp は関数型じゃないと言われればそれまでだが…
0141デフォルトの名無しさん
2008/07/11(金) 10:20:41最近のことは知らんが
俺の世代もそうだったから言いたいことはよく分かるw
再帰テンプレートで終端条件の特殊化を書き間違って
しばらく帰ってこなくなったりしたときに、ふと当時を思い出して和む
0142デフォルトの名無しさん
2008/07/11(金) 10:36:40それともスタックや継続使って、
第一引数も第二引数も0じゃない時をループ展開してるの?
0143デフォルトの名無しさん
2008/07/11(金) 13:17:340144デフォルトの名無しさん
2008/07/11(金) 13:21:28ここは C++ スレじゃなくて、 C++0x スレですよ。
0145デフォルトの名無しさん
2008/07/11(金) 16:39:42TR1 は 0x じゃないという主張なら分からんけど。
0146デフォルトの名無しさん
2008/07/11(金) 23:51:020147デフォルトの名無しさん
2008/07/12(土) 00:20:18末尾再帰の展開は末尾コールのジャンプ変換と等価
0148デフォルトの名無しさん
2008/07/12(土) 00:27:02末尾コールのジャンプ変換とループへの変換との違いは?
0149デフォルトの名無しさん
2008/07/12(土) 00:28:420150デフォルトの名無しさん
2008/07/12(土) 00:29:55> 第一引数も第二引数も0じゃない時をループ展開してるの?
中間表現に CPS 使うと分岐/呼び出しが末尾コール
に変換可能なので最終的にループになるらしい
詳細は識者に聞いて
0151デフォルトの名無しさん
2008/07/12(土) 00:30:27-foptimize-sibling-calls
Optimize sibling and tail recursive calls.
0152デフォルトの名無しさん
2008/07/12(土) 00:38:22> 末尾コールのジャンプ変換とループへの変換との違いは?
ジャンプ先が別のルーチンか呼自分の内部かの違いに過ぎないだろ?
アセンブラやってる奴ならみんな使ってると思うんだが…
0153デフォルトの名無しさん
2008/07/12(土) 00:40:17編集ミス
x …が別のルーチンか呼自分の…
o …が別のルーチンか自分の…
0154152
2008/07/12(土) 00:46:52つっても, 戻り番地スタックに積む程度のコストみたいだが
0155デフォルトの名無しさん
2008/07/12(土) 00:48:33f(a, n)
{
if (a==0)
return n;
return f(a-1, n*a);
}
が
_f:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %edx
movl 12(%ebp), %eax
jmp L3
.p2align 4,,7
L6:
imull %edx, %eax
decl %edx
L3:
testl %edx, %edx
jne L6
popl %ebp
ret
でした
0156デフォルトの名無しさん
2008/07/12(土) 00:51:35継続スタイルに変換できるのはしってるよ、そんなの常識。
CPSを中間表現に使っているコンパイラも、
オブジェクトコードの生成ではCSP止めてます。
再帰スタックの代わりに、継続の入れ子を持ち運ぶのはとても効率が悪いので。
まともな処理系でAck関数をループや継続に変換して実行するものはないでしょ?
お遊びや学習用ってことなら俺も書いたことがあるけれど。
0157デフォルトの名無しさん
2008/07/12(土) 00:52:25こんなのコンパイルしてみ
int f(...){return ...;}
int g(...) {return f(...);}
おそらく g() の最後は call f になると思う
0158デフォルトの名無しさん
2008/07/12(土) 00:54:04gccがやるのは自己再帰の関数内ジャンプだけじゃないの? > おそらく
0159デフォルトの名無しさん
2008/07/12(土) 00:57:24それはインライン展開すべきなの?
0160デフォルトの名無しさん
2008/07/12(土) 00:59:19CL-USER> (lisp-implementation-type)
"SBCL"
CL-USER> (lisp-implementation-version)
"1.0.17.42"
CL-USER> (defun a (x y)
(declare (optimize (speed 3) (safety 0))
(type fixnum x y))
(cond ((zerop y) 0)
((zerop x) (the fixnum (* 2 y)))
((= y 1) 2)
(t (the fixnum (a (- x 1) (the fixnum (a x (- y 1))))))))
A
CL-USER> (disassemble 'a)
;;; 続く
0161デフォルトの名無しさん
2008/07/12(土) 01:00:53CL-USER> (disassemble 'a)
; 03B5BE33: L0: 4885C9 TEST RCX, RCX ; no-arg-parsing entry point
; 36: 750D JNE L2
; 38: 31C9 XOR ECX, ECX
; 3A: L1: 488D65F0 LEA RSP, [RBP-16]
; 3E: 488B6DF8 MOV RBP, [RBP-8]
; 42: C20800 RET 8
; 45: L2: 488D04D500000000 LEA RAX, [RDX*8]
; 4D: 4885C0 TEST RAX, RAX
; 50: 7505 JNE L3
; 52: 48D1E1 SHL RCX, 1
; 55: EBE3 JMP L1
; 57: L3: 4883F908 CMP RCX, 8
; 5B: 7507 JNE L4
; 5D: B910000000 MOV ECX, 16
; 62: EBD6 JMP L1
; 64: L4: 488BC2 MOV RAX, RDX
; 67: 4883E801 SUB RAX, 1
; 6B: 488945E8 MOV [RBP-24], RAX
; 6F: 4883E908 SUB RCX, 8
; 73: 488BC5 MOV RAX, RBP
0162デフォルトの名無しさん
2008/07/12(土) 01:02:22; 73: 488BC5 MOV RAX, RBP
; 76: 488BDC MOV RBX, RSP
; 79: 4883EC40 SUB RSP, 64
; 7D: 488943F8 MOV [RBX-8], RAX
; 81: 488BEB MOV RBP, RBX
; 84: 488D0506000000 LEA RAX, [RIP+6]
; 8B: 488945F0 MOV [RBP-16], RAX
; 8F: EBA2 JMP L0
; 91: 488B55E8 MOV RDX, [RBP-24]
; 95: EB9C JMP L0
; 97: 90 NOP
; 98: 90 NOP
; 99: 90 NOP
; 9A: 90 NOP
; 9B: 90 NOP
; 9C: 90 NOP
; 9D: 90 NOP
; 9E: 90 NOP
; 9F: 90 NOP
;
NIL
CL-USER>
0163デフォルトの名無しさん
2008/07/12(土) 01:05:570164デフォルトの名無しさん
2008/07/12(土) 01:28:52ほっとけ、Lisp は俺の電卓だ
0165デフォルトの名無しさん
2008/07/12(土) 01:32:00最近電卓はPythonに宗旨替えしました
0166デフォルトの名無しさん
2008/07/12(土) 01:40:140167デフォルトの名無しさん
2008/07/12(土) 04:06:590168デフォルトの名無しさん
2008/07/12(土) 04:14:480169デフォルトの名無しさん
2008/07/12(土) 07:41:250170デフォルトの名無しさん
2008/07/12(土) 12:09:160171デフォルトの名無しさん
2008/07/12(土) 13:48:430172デフォルトの名無しさん
2008/07/12(土) 13:51:020173デフォルトの名無しさん
2008/07/12(土) 15:00:26小数計算ができませn! ><
0174デフォルトの名無しさん
2008/07/12(土) 15:25:10彼らはキーパンチャーと規格準拠なC++0x コンパイラ、そしてアニメがあれば完璧に幸福になれるのだ。
本物のプログラマはテンプレートで整数値演算をする。
本物のプログラマはで固定小数点数演算をする。
本物のプログラマはテンプレートでIEEE754の単精度演算を必要ならば'実装する。
本物のプログラマは倍精度演算をテンプレートとコンパイラの64bit整数型でする。
もしテンプレートで出来なければ、プリプロセッサでやる。プリプロセッサで出来なきゃ、それはやる価値がないのだ。
0175デフォルトの名無しさん
2008/07/12(土) 17:36:56/*
再帰的に定義された次のような関数。特に用途はない。
*/
int tarai(int x, int y, int z)
{
if (x <= y) return y;
return tarai(tarai(x - 1, y, z), tarai(y - 1, z, x), tarai(z - 1, x, y));
}
たった数行なのに何が起こるか想像できないのは、おれだけ?
大学の時、再帰で書けばエレガントになる、ループで書くのは素人、と刷り込まれたので
再起が出てくるたびに自分はセンスがないと思わされた苦い思い出。
0176デフォルトの名無しさん
2008/07/12(土) 18:33:13わからないことを自慢しなくていいよ
0177デフォルトの名無しさん
2008/07/12(土) 18:38:270178デフォルトの名無しさん
2008/07/12(土) 23:37:27別に副作用ないんだから引数評価の順番は結果に関係ないだろう
0179デフォルトの名無しさん
2008/07/13(日) 15:25:45再帰定義がなぜわかりにくいかがよくわかる例だなと思った。
筋のいいやつは数学的定義がそのまま書けるようなメリットがあるが、ほんの一握りだなと
アプリとか分析エンジンとか作ってて感じる。
0180デフォルトの名無しさん
2008/07/13(日) 16:00:590181デフォルトの名無しさん
2008/07/13(日) 16:06:240xのconstexprはほんとがっかりだなあ。
0182デフォルトの名無しさん
2008/07/13(日) 17:57:38関数が提唱された本来の趣旨を考えると、コンパイル時にたらいをまわしても
意味ないような気がするんだが、気のせいか?
0183デフォルトの名無しさん
2008/07/13(日) 18:02:33int tarai(int x, int y, int z){return x<=y ? y<=z ? z : x : y}
に最適化して欲しいって話だろ
0184デフォルトの名無しさん
2008/07/13(日) 18:03:40int tarai(int x, int y, int z){return x<=y ? y : y<=z ? z : x;}
0185デフォルトの名無しさん
2008/07/13(日) 18:08:45そりゃあ、そもそもたらい関数自体に意味がないから、
コンパイル時にたらいをまわせても意味がないのは自明なんだけど、
言いたいのはそういうことじゃなくて、
再帰ができないとか、return一文で書かないといけないとか制約が多すぎて使い勝手が悪い。
0186デフォルトの名無しさん
2008/07/13(日) 18:27:37わざわざ新予約語作ってまでconstexprなんて仕組みを作る理由もよくわからない
0187デフォルトの名無しさん
2008/07/13(日) 18:34:54従来だとコンパイルタイムにもランタイムにも欲しい値がある場合、
普通の関数とテンプレートで二つ同じ処理を書かないといけなかった。
それが制限があるとはいえ普通のコード一つで済むようになるのは、
プログラマの負担の観点から言うと大きな進歩だと思う。
とはいえ、再帰ができないんじゃテンプレートの代わりにはならないよなあ…
0188デフォルトの名無しさん
2008/07/13(日) 23:05:38禿もそう言っている
0189デフォルトの名無しさん
2008/07/18(金) 01:04:53最終的にはautoだけ取り入れられてあとはガン無視されるだろう
C99がlong longとか以外ガン無視されているように
0190デフォルトの名無しさん
2008/07/18(金) 01:17:360191デフォルトの名無しさん
2008/07/18(金) 01:19:270192デフォルトの名無しさん
2008/07/18(金) 13:30:51普通autoなんて使わない
0193デフォルトの名無しさん
2008/07/18(金) 15:07:21型指定子としてのautoはいるだろ。
0194デフォルトの名無しさん
2008/07/18(金) 15:33:340195デフォルトの名無しさん
2008/07/18(金) 15:46:22そんな風に考えるようになりました。
0196デフォルトの名無しさん
2008/07/18(金) 15:46:550197デフォルトの名無しさん
2008/07/18(金) 15:48:17型名が後に続く場合は自動変数の宣言になります。
0198デフォルトの名無しさん
2008/07/18(金) 15:52:210199デフォルトの名無しさん
2008/07/18(金) 15:54:440200デフォルトの名無しさん
2008/07/18(金) 16:44:24C++ の言語仕様でどこまでトレースきるのさ?
0201デフォルトの名無しさん
2008/07/18(金) 16:58:460202デフォルトの名無しさん
2008/07/18(金) 18:36:15利用者は何もしなくても恩恵を被れるって機能も多いぞ。
0203デフォルトの名無しさん
2008/07/18(金) 19:02:45また頭ひねることになりそう。
constくらいは。
0204デフォルトの名無しさん
2008/07/18(金) 21:23:060205デフォルトの名無しさん
2008/07/18(金) 21:34:590206デフォルトの名無しさん
2008/07/18(金) 21:41:16今までなかったのが不思議
0207デフォルトの名無しさん
2008/07/19(土) 09:57:130208デフォルトの名無しさん
2008/07/19(土) 23:39:30少しは勉強してからカキコしろよ。だってここ0xのスレなんだぜ。
という漏れも、Move Semanticsはよく理解してないので、えらそうなこと言えないけどさ。ごめん。
0209デフォルトの名無しさん
2008/07/20(日) 00:10:160210デフォルトの名無しさん
2008/07/20(日) 00:28:24俺それ書くの我慢したのに……。
0211デフォルトの名無しさん
2008/07/20(日) 01:12:060212デフォルトの名無しさん
2008/07/20(日) 01:15:120213デフォルトの名無しさん
2008/07/20(日) 02:47:49late_checkとaxiomの意味がわからん・・
何がうれしくなるんだろう
0214デフォルトの名無しさん
2008/07/20(日) 04:24:04勉強してから書くのは大変だ。
読んで書くくらいなら、かなりの割合で達成してるだろう。
だからみんな単語にだけ詳しいんだよww
特に俺www
読んで分かるのは大変だろ。
言い訳にならないのは承知だが。
0215デフォルトの名無しさん
2008/07/20(日) 04:38:01このスレでは充分
0216デフォルトの名無しさん
2008/07/20(日) 05:03:030217デフォルトの名無しさん
2008/07/20(日) 05:23:330218デフォルトの名無しさん
2008/07/20(日) 08:05:19late_check:
あるインターフェースに適合するかどうかを
C++ではシグネチャーベースで判定するので、
テンプレート引数が決定して、
テンプレートインスタンスを生成する時にしか、
全体の適合性を判定できない場合が多い。
かといって、テンプレートの定義時に判定できる部分も、
インスタンス生成時まで判定できないのでは、
テンプレートのプログラミングがやりにくい。
だから、late_checkブロックの部分だけ、インスタンス生成時、
後は定義時に整合性のチェックを行う。
axiom:
条件式を最適化で利用して良い。
つまり型に対する論理的な制約になる。
Eiffelの「不変条件」みたいなもの。
0219デフォルトの名無しさん
2008/07/20(日) 11:18:40concept が与えられてなお
>テンプレート引数が決定して、
>テンプレートインスタンスを生成する時にしか、
>全体の適合性を判定できない場合が多い。
な場合についてkwsk
0220デフォルトの名無しさん
2008/07/20(日) 11:50:12知ってるかもしれないけど、
Move semantics(右辺値参照)に関しては禿がThe C++ Sourceに記事書いてたよ。
結構分かりやすい説明だった
0221デフォルトの名無しさん
2008/07/20(日) 13:15:29operator書いてればありがたみが分かるだろう。
0222デフォルトの名無しさん
2008/07/21(月) 01:59:02まだ欲張るのか?
マジで09年に仕上げるつもりあるのか?
楽しい機能だから入るんなら歓迎だけどさぁ
0223デフォルトの名無しさん
2008/07/21(月) 02:24:340224デフォルトの名無しさん
2008/07/21(月) 02:46:24だから2000+0xF年まではセーフだと…
0225デフォルトの名無しさん
2008/07/21(月) 06:33:470226デフォルトの名無しさん
2008/07/21(月) 06:45:23だいぶ前からその段階だから、今はもうほとんど、
"Integrated into working paper"に近いんじゃないのかな?
しかしこれliteralじゃねーだろ。
literalと組み合わせられるコンストラクタだ。
"こんにちわ、世界!"ISO2022JP
とかなんでもありだ。二進数リテラル問題も解決。
'_'で4桁ごとに区切るようなoperator"b"を書きたきゃ書けばいい。
0227デフォルトの名無しさん
2008/07/21(月) 09:16:160228デフォルトの名無しさん
2008/07/21(月) 09:57:19Cooked literalですw
0229デフォルトの名無しさん
2008/07/21(月) 10:26:02>"こんにちわ、世界!"ISO2022JP
>とかなんでもありだ。
それはどうかな?そもそも "..." の ... 内に非アスキー文字を書くと
未定義なんでは? (実際上はべつとして。)
operator "ISO2022JP" に渡る以前にエンコーディングが
どうなってるかわからないとどうしようもないべ。
0230デフォルトの名無しさん
2008/07/21(月) 10:39:17処理系に依存するくらいでは
0231デフォルトの名無しさん
2008/07/21(月) 10:40:450232デフォルトの名無しさん
2008/07/21(月) 10:59:13L"こんにちわ、世界!"ENCODING
だな。
0233デフォルトの名無しさん
2008/07/21(月) 11:01:43char32_t は Unicode だと決まってるから、
U"こんにちわ、世界!"ISO2022JP
と書いておけば問題ないわけですね。なんか 先頭のU が気持ち悪いけど。
0234デフォルトの名無しさん
2008/07/21(月) 11:18:14>>226
つ constexpr
0235デフォルトの名無しさん
2008/07/30(水) 07:55:42News 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
0236デフォルトの名無しさん
2008/08/01(金) 01:37:540237デフォルトの名無しさん
2008/08/01(金) 01:39:080238デフォルトの名無しさん
2008/08/01(金) 01:43:120239デフォルトの名無しさん
2008/08/01(金) 04:28:43そんな勢い良くリアクションするようなことはない。
ただ思った以上に書き直しが多かったので驚いた。> Concept Rev.7
0240デフォルトの名無しさん
2008/08/02(土) 14:25:37ストリーム関連の命名規則がぐちゃぐちゃすぎる。
書式を変更すると保存されるのも使いにくい。
cout << hex(123); みたいにしてほしかった。
これじゃあprintfの方が便利とか言われても仕方ない。
あと、再帰のできないconstexprには失望した。
コンパイラの仕事は、実行時向けに最適化してループにするだけじゃね?
0241デフォルトの名無しさん
2008/08/02(土) 14:35:100242デフォルトの名無しさん
2008/08/02(土) 14:41:59しかし現状で、テンプレートでコンパイル時再帰の定数ができる以上、
constexprも再帰できてほしかったなぁ。
0243240
2008/08/02(土) 14:47:06N2235には変数を引数に取る例も載ってる。
実行時も使えるよっていうメリットを残しながら、
再帰できるようにするのは可能だと言いたかった。
0244デフォルトの名無しさん
2008/08/02(土) 15:31:10仮にそうだとしても、再帰するconstexpr関数がどうせ実行時評価しかしないなら、constexpr付ける意味が無いのでは。
0245240
2008/08/02(土) 17:06:39いやいや、もちろんコンパイル時も使う。
定数のみを引数に取ったらコンパイル時に展開すればいい。
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を取ったら、配列のサイズが定数式じゃないから通らない。
テンプレートでメタ関数として書くと、今度は変数が使えない。
0246デフォルトの名無しさん
2008/08/02(土) 17:39:31可能かどうかで言えばまあ可能なんだろうな。
N2235も「今はまだそのときじゃない」って感じだし。
0247デフォルトの名無しさん
2008/08/02(土) 20:36:23お世辞にもコンパイルタイム関数実行とは呼べない。
0248デフォルトの名無しさん
2008/08/02(土) 21:55:46constexprは再帰禁止にしたのではないかと思う。
0249デフォルトの名無しさん
2008/08/02(土) 23:39:28ユーザー定義型に組み込み型と同等の待遇を与える
っていうのを実現するのには今のconstexprで十分っていう判断だと推測
0250デフォルトの名無しさん
2008/08/02(土) 23:56:410251デフォルトの名無しさん
2008/08/03(日) 01:54:32constexprの狙いから外れすぎ。
0252デフォルトの名無しさん
2008/08/03(日) 04:05:470253デフォルトの名無しさん
2008/08/03(日) 11:50:11両方使えるとか紛らわしい
0254デフォルトの名無しさん
2008/08/03(日) 12:06:56D言語なんかは現状ではどの関数がコンパイル時実行できるかさっぱりだけれども、今後関数属性のpureで解決するようだねぇ。
0255デフォルトの名無しさん
2008/08/03(日) 12:08:490256デフォルトの名無しさん
2008/08/03(日) 13:59:53#eval_when (<評価するタイミング1> <評価するタイミング2> ...) {
<評価する式>
}
みたく、しちまえよw
0257デフォルトの名無しさん
2008/08/03(日) 20:48:23おれがC++が好きだったのは、Modern C++にもあったけど、
各目的で用意された諸機能が、有機的に相互作用(ハーモナイズ)しあって、
1+1=2以上の機能体系を生み出してたところが、実用的でかつアーティスティックで好きだったんだ。
おれが入門したころの、templateがあってRTTIないくらいのころのC++は美しかった。
0258デフォルトの名無しさん
2008/08/03(日) 21:10:05K&Rの頃のCが一番だと思っている
0259デフォルトの名無しさん
2008/08/03(日) 21:19:460260デフォルトの名無しさん
2008/08/03(日) 21:36:26自分で言語仕様を拡張したい病にかかるからやめたほうがいい。
0261デフォルトの名無しさん
2008/08/03(日) 21:43:18互換性やメリット、デメリットの狭間に立って考えると良い線じゃないの?
既に巨大なC++の仕様を拡張するのは常にデメリットが大きいし
互換性を考えると不要なものも捨てられないし
0262デフォルトの名無しさん
2008/08/03(日) 21:47:130263デフォルトの名無しさん
2008/08/03(日) 22:45:51ありすぎて困るww
0264デフォルトの名無しさん
2008/08/03(日) 22:59:52C++がぐんと存在感伸ばしたころ(おれがC++始めたころ)はC++の青年時代。
引きしまってたし、かといって機能が少ないわけでもないくて先駆的機能たくさんあった。
今は余計についた贅肉自体にもフォローしなくちゃいけなくて悪循環。
(後継の人たちが)どうがんばっても老廃物が老廃物を呼ぶ。
初代ガンダムは筋が通ってておもしろかったけど、
それみて育った子供達が作った後継のガンダムはちっともおもしろくないのと同じ。
0265デフォルトの名無しさん
2008/08/03(日) 23:15:28Java?論外ですわ
0266デフォルトの名無しさん
2008/08/03(日) 23:22:190267デフォルトの名無しさん
2008/08/03(日) 23:32:250268デフォルトの名無しさん
2008/08/03(日) 23:33:04個人が趣味で作ってる程度のものをC++やJavaと同列に扱うのはどうかと思う
0269デフォルトの名無しさん
2008/08/03(日) 23:33:23template無い頃のC++はこりゃダメだと思ってたよ
0270デフォルトの名無しさん
2008/08/03(日) 23:48:18今でこそ標準化されてるけどC++だって昔は似たようなものだったよ。
0271デフォルトの名無しさん
2008/08/04(月) 00:01:36結構な規模の開発体制でやってないとまともなものできないんじゃないか。
Java も .NET も企業主体だし。
0272デフォルトの名無しさん
2008/08/04(月) 00:39:18cfrontの頃は使いにくかったな。GCC(G++)が革命的だった。
0273デフォルトの名無しさん
2008/08/04(月) 10:18:21以前の保守的なJavaと違って面白くなってきた。
けどconcept, move semanticsなど、
言語機能の本質的なところで実験を続けてるのはC++だと思う。
JCPはEnterpriseな人の便利機能指向が面白味を削いでいる。
実用向けの言語としてはそうでなくては困るのだろうけど。
0274デフォルトの名無しさん
2008/08/04(月) 23:31:50いよいよ言語マニアだけのためのおもちゃ感が出てきたなぁという気がする。
0275デフォルトの名無しさん
2008/08/05(火) 00:47:16言語マニアと普通のC++ユーザとはちゃんと住み分けできるよ。
0276デフォルトの名無しさん
2008/08/05(火) 00:52:020277デフォルトの名無しさん
2008/08/05(火) 01:04:390278277
2008/08/05(火) 01:05:30× むしろ境界の曖昧性、というかシームレスであることが C++ だと思う
○ むしろ境界の曖昧性、というかシームレスであることが C++ の利点だと思う
0279デフォルトの名無しさん
2008/08/05(火) 01:41:07テンプレートと同じです。駆使するのは一部の人だけでいい。
0280デフォルトの名無しさん
2008/08/05(火) 09:52:01まあべつにコンセプトしらずにテンプレートライブラリを作る人がいてもいいのでは... ってそれは良くない気もするな。
0281デフォルトの名無しさん
2008/08/05(火) 10:07:310282デフォルトの名無しさん
2008/08/05(火) 13:21:30書いた当人がどういう意図で使ったかによる。
0283デフォルトの名無しさん
2008/08/05(火) 13:34:26どうしても>276で使うなら
--
ライブラリ制作者は須らく普通のC++ユーザではない言語マニアであるべき、と言うのは暴論だ。
--
となると思う。
0284デフォルトの名無しさん
2008/08/05(火) 21:30:06and not usual C++ users.
てきなニュアンスに読める。原文に「べき」とかがないので。。
0285デフォルトの名無しさん
2008/08/05(火) 21:50:200286デフォルトの名無しさん
2008/08/05(火) 23:00:32自然言語ヲタも多いのか?
0287デフォルトの名無しさん
2008/08/05(火) 23:19:460288デフォルトの名無しさん
2008/08/05(火) 23:37:350289デフォルトの名無しさん
2008/08/05(火) 23:53:400290デフォルトの名無しさん
2008/08/06(水) 00:13:39時間と共に文法や意味が変化していく。
よほどの猛者しか自然言語の批判はできないが。
0291デフォルトの名無しさん
2008/08/06(水) 12:42:200292デフォルトの名無しさん
2008/08/06(水) 13:41:330293デフォルトの名無しさん
2008/08/06(水) 13:47:06形式言語理論が確立される前に設計されているので、他の自然言語と大差ない。
0294デフォルトの名無しさん
2008/08/06(水) 16:23:200295デフォルトの名無しさん
2008/08/06(水) 16:31:32イドはエスペラントと大差ない
0296デフォルトの名無しさん
2008/08/09(土) 09:18:36副作用なしで同一引数なら同一の値を返すみたいなヒントとか
同一内容の引数なら同一内容の値を返すみたいなヒントが欲しかった。
0297デフォルトの名無しさん
2008/08/09(土) 12:01:38つ memorize
0298デフォルトの名無しさん
2008/08/09(土) 14:05:55グループによる開発に向いた言語じゃない。C++のややこしい
仕様をよく理解していない人間がグループの中に混じっていれ
ば、そいつがバグを仕込むテロリストになってしまう。
もちろん、どんな言語でもバグは入り込むが、C++は特に仕様
が複雑で、誤解にもとづくバグが簡単に入り込み易い。
禿がC++0xをいつの時期、どういう仕様で発表するのか
しらんが、こんな呪文みたいな言語、もういい。
C#に乗り移ろうかな。
0299デフォルトの名無しさん
2008/08/09(土) 14:13:280300デフォルトの名無しさん
2008/08/09(土) 14:19:220301デフォルトの名無しさん
2008/08/09(土) 14:22:000302デフォルトの名無しさん
2008/08/09(土) 14:24:490303デフォルトの名無しさん
2008/08/09(土) 14:29:180304デフォルトの名無しさん
2008/08/09(土) 14:31:36バージョンアップするたびにライブラリレベルで後方互換性が問題となるような、
理屈がない言語も困ったもんだが…
0305デフォルトの名無しさん
2008/08/09(土) 14:54:06君には縁のない世界だって事よ。
0306デフォルトの名無しさん
2008/08/09(土) 15:45:35メチャワロタ
うまいこと言うねw
0307デフォルトの名無しさん
2008/08/09(土) 15:48:33理解という意味では、今のC++の各機能をすべて同じ温度で見つめたら、複雑と思えるんだろうな
昔からやってれば、ここはよく使う主流機能、これはうさんくさい互換性向け機能、とかわかるし
使いこなすという意味では、地雷が増えた気がする。オブジェクトコピーがらみとか。
ただJavaとかのゴミ拾いがらみ機能とか、文字コード変換とか、も地雷いっぱいあった気がする。
一本筋を通してきれいに言語設計・処理系実装してほしいね。それがElegance
0308デフォルトの名無しさん
2008/08/09(土) 16:04:17ふむ、ならば Scheme でも使いたまへ。
0309デフォルトの名無しさん
2008/08/09(土) 16:24:060310デフォルトの名無しさん
2008/08/09(土) 16:32:03やっぱ、初心に帰ってアセンブラだろう?
0311デフォルトの名無しさん
2008/08/09(土) 16:52:550312デフォルトの名無しさん
2008/08/09(土) 16:57:20美少女中学生シリーズの中では出色の出来だなw
0313デフォルトの名無しさん
2008/08/09(土) 18:29:29D言語にはもうすぐ純粋関数くるよ
0314デフォルトの名無しさん
2008/08/10(日) 15:27:50実際どのくらいパフォーマンスを向上できるのだろう
副作用なしで出来ることはたかがしれているし
メリットが小さすぎるんじゃないの?
0315デフォルトの名無しさん
2008/08/10(日) 15:32:26マジすか
0316デフォルトの名無しさん
2008/08/10(日) 15:34:44すっごいでかい配列の長さをいちいち求めてたけど実は固定長でしたみたいなのだったら
かなり速くなるかもしれない
まあそんなケースは少ないだろうが
0317デフォルトの名無しさん
2008/08/10(日) 15:42:32それは>>296とは関係ないけどね
0318デフォルトの名無しさん
2008/08/10(日) 16:37:17sparse arrayのアクセスなんかが相当すると思うけれど、
Cでnoaliasが排除されて以来、
そういう最適化用ツールは言語に組み込まない方向でしょう。
constは意味も規定しているから、重要だけど。
0319デフォルトの名無しさん
2008/08/10(日) 16:46:10え?C99のrestrictは?
0320デフォルトの名無しさん
2008/08/10(日) 16:50:100321デフォルトの名無しさん
2008/08/11(月) 10:47:23実はエイリアスあったとしてもコンパイラも実行時も何も言ってくれないんだろ
0322デフォルトの名無しさん
2008/08/11(月) 10:58:13やりたきゃコードで書けよ。
0323デフォルトの名無しさん
2008/08/11(月) 19:43:410324デフォルトの名無しさん
2008/08/11(月) 22:23:27知らない間にInitializer listsが来てる件について
libstdc++がついてくるのに当分かかるだろうけど、4.4 alpha入れてみよう
0325デフォルトの名無しさん
2008/08/11(月) 23:51:55assertかよw
0326デフォルトの名無しさん
2008/08/12(火) 02:44:32p=a;
memcpy(p,a,10);
こんな露骨なのにも警告すら出せないrestrictって何なの
0327デフォルトの名無しさん
2008/08/12(火) 02:53:420328デフォルトの名無しさん
2008/08/12(火) 03:17:27クラスのrestrictインスタンスやrestrictメンバ関数が作れるようになるんですね
こんなもんをコンパイラはちゃんと最適化で有意義に使いこなせるのかね
0329デフォルトの名無しさん
2008/08/12(火) 03:35:34仕様を勘違いしてます。
0330デフォルトの名無しさん
2008/08/13(水) 07:09:32atomic周りを読んだら、atomicに限りsignedな整数型とアドレス型は2の補数となりオーバーフローによる不定動作はないと書いてあるけど、
もし仮に、すべての整数型を、2の補数としてしまっても、現実として問題は起こらないと思うんだけど、
なぜC/C++の規格は2の補数だと規定してしまうのを避けているんだろう。
0331デフォルトの名無しさん
2008/08/13(水) 08:48:34かつて、実際に2の補数表現を使用しないCPUが存在していたし、
「今後とも2の補数表現以外の整数表現をもつCPUが開発される
事はない」って、保証はどこにもない
からじゃないのか?
0332デフォルトの名無しさん
2008/08/13(水) 11:51:310333デフォルトの名無しさん
2008/08/13(水) 13:10:58そうじゃないCPUはエミュレートしろって立場だね。Java, ECMAscriptなど。
けどCの時代はまだそういう時代じゃなかった。
2の補数表現を仮定しない最後の言語のひとつかもしれない。
0334デフォルトの名無しさん
2008/08/13(水) 14:27:24DSPなどでは存在してたと思う。とりあえず C++ はそういうアーキテクチャも対象にしてる
ってことだろうね。
もし、2の補数に規定するなら語長(intは必ず32bitとか)も規定するのが良いだろう。
最近の言語ではそのほうが普通かな。
0335デフォルトの名無しさん
2008/08/13(水) 14:34:17美少女中学生のおっぱいは2つだから2の補数!
0336デフォルトの名無しさん
2008/08/13(水) 14:40:370337デフォルトの名無しさん
2008/08/14(木) 10:39:04が導入されると、(a+b)*(c+d)*eみたいな行列演算も効率化されるの。
それとも、やはり無理?
0338デフォルトの名無しさん
2008/08/14(木) 10:44:050339デフォルトの名無しさん
2008/08/14(木) 11:28:32加算か乗算かによって違いますし,
右辺値をどの演算の operand に使うのかによっても違いますし,
式テンプレートによる実装と比べてどうなのかについても比較が複雑ですし.
ただ,右辺値参照を用いない実装に比べて
効率的な場面が生じるのは確かだとは思います.
0340デフォルトの名無しさん
2008/08/14(木) 11:42:200341デフォルトの名無しさん
2008/08/14(木) 12:33:310342デフォルトの名無しさん
2008/08/14(木) 14:37:36右辺値参照を使わない方が
戻り値最適化のおかげで swap が無い分効率的になる。
その結果を代入したいような場合も、
代入の代わりに swap すれば
右辺値参照を使わなくても効率よく実行が可能。
((a+b)*(c+d)*e).swap(f);
結局のところ、それほど右辺値参照の必要性があるとは思えない。
0343デフォルトの名無しさん
2008/08/14(木) 14:45:490344デフォルトの名無しさん
2008/08/14(木) 16:40:05どうやってrvalueに対して安全にswapするんだよ?
だからこそ必要なんじゃないか。
0345デフォルトの名無しさん
2008/08/14(木) 16:40:44C++が台頭してした当時は、高速バイナリ吐けるオブジェクト指向言語なんて他になかった。
すでに基礎的な部分はC++が築いてしまったし、
個人ですらちょちょいと次世代オブジェクト言語とか作っちゃう時代なので、
今の時代のCのように、Legacy的に古い機能だけ使われる道しか残ってなさそうな気がしてきた。
<=> 実験するなら別の言語
0346デフォルトの名無しさん
2008/08/14(木) 16:44:040347デフォルトの名無しさん
2008/08/14(木) 16:44:300348デフォルトの名無しさん
2008/08/14(木) 16:46:400349デフォルトの名無しさん
2008/08/14(木) 16:54:29モチベーションの1つに、そのswapのような変な書き方ではなく
直観的に=演算子でやれるようにするっていうのは無かったっけ?
0350デフォルトの名無しさん
2008/08/14(木) 16:55:370351デフォルトの名無しさん
2008/08/14(木) 16:56:46x86ならバイナリも吐けなくないJava
実行速度でC++に引けを取らないJava
対応OSも互換性を重視すれば圧倒的にC++ << Java
0352デフォルトの名無しさん
2008/08/14(木) 17:01:04C++の代りの言語はない。近いものすらない。
0353デフォルトの名無しさん
2008/08/14(木) 17:01:450354デフォルトの名無しさん
2008/08/14(木) 17:02:530355デフォルトの名無しさん
2008/08/14(木) 19:08:110356デフォルトの名無しさん
2008/08/14(木) 19:14:060357デフォルトの名無しさん
2008/08/14(木) 20:08:480358デフォルトの名無しさん
2008/08/14(木) 20:46:24C++Builder 2009はC++0xサポートするってさ
俺は買ったことないけど
0359デフォルトの名無しさん
2008/08/14(木) 20:51:00でも2009年じゃまだ仕様が決まって無いんでは…
0360デフォルトの名無しさん
2008/08/14(木) 21:11:560361デフォルトの名無しさん
2008/08/14(木) 21:16:44先行して実装するってことらしい。まーどうせ規格が決まったところでフル実装は先になるんだろうし、しばらくは一部実装でしょ。
とりあえず動画中で取り上げられていたのは、スコープ付き enum (および enum のベース型指定)と static_assert。
move semantics については名前が挙がってたし、プロジェクト中にもそれっぽいファイルが見えるけど実際の紹介はなかった。
でもここ最近の Borland/CodeGear の標準準拠度を考えるとあんまり期待できないような気がするなぁ。
0362デフォルトの名無しさん
2008/08/14(木) 21:38:19BCBだってやってくれるかもしれない、なんて期待は甘い?
0363デフォルトの名無しさん
2008/08/14(木) 21:42:360364デフォルトの名無しさん
2008/08/14(木) 21:43:460xF年までおk
0365デフォルトの名無しさん
2008/08/14(木) 21:59:010366デフォルトの名無しさん
2008/08/14(木) 22:15:190367デフォルトの名無しさん
2008/08/14(木) 22:17:580368デフォルトの名無しさん
2008/08/15(金) 03:22:55Hejは規格コーダ屋じゃないからあんまり関係ないでしょ。
得意なのが言語設計とRAD設計だから。
0369デフォルトの名無しさん
2008/08/15(金) 12:00:18f.swap((a+b)*(c+d)*e); は無理だが
((a+b)*(c+d)*e).swap(f); は問題ない。
0370デフォルトの名無しさん
2008/08/15(金) 12:33:320371デフォルトの名無しさん
2008/08/16(土) 19:17:19ソース
#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が欲しいなー。
0372デフォルトの名無しさん
2008/08/17(日) 06:44:55N2710のコンセプトのドラフト、
14.9.1.4
>A concept-definition that starts with auto defines an implicit concept, otherwise it defines an explicit concept.
implicitとexplicitで何が違うんだ?
あちらこちらによく分からない記述が散らばっているだけでさっぱり分からん。
0373372
2008/08/17(日) 07:49:49N2081に書いてあった。
0374デフォルトの名無しさん
2008/08/24(日) 03:54:18それじゃ部分式の演算子関数呼び出しでコピーが発生するじゃない。
0375デフォルトの名無しさん
2008/08/26(火) 13:45:43要らなくなったりしないよね?
0376デフォルトの名無しさん
2008/08/26(火) 15:15:420377デフォルトの名無しさん
2008/08/26(火) 18:51:220378デフォルトの名無しさん
2008/08/26(火) 22:34:350379デフォルトの名無しさん
2008/08/26(火) 23:55:530380デフォルトの名無しさん
2008/08/29(金) 01:03:01ttp://d.hatena.ne.jp/faith_and_brave/20080516/1210935359
0381デフォルトの名無しさん
2008/08/29(金) 09:18:070382デフォルトの名無しさん
2008/08/29(金) 09:34:190383デフォルトの名無しさん
2008/08/31(日) 19:34:02なんだか非直感的でやだな。
0384デフォルトの名無しさん
2008/08/31(日) 21:35:590385デフォルトの名無しさん
2008/09/04(木) 12:16:19decltypeのやっていることはsizeofとほとんど同じだからな。
むしろ、sizeofの型を返す版が欲しいっていう話だし。
0386デフォルトの名無しさん
2008/09/04(木) 13:35:48arity<F>::value; // 引数の数
result_of<F>::type ; // 戻り値の型
arg_types<F>::type ; //引数の型リスト
のようにできれば俺は満足ですよ
0387デフォルトの名無しさん
2008/09/04(木) 13:52:44decltypeが型としての関数を返すものだったとしてもだ、順番が間違っているぞ。
0388デフォルトの名無しさん
2008/09/04(木) 14:09:52C++を使ってないのバレバレですね失礼しました
0389デフォルトの名無しさん
2008/09/04(木) 14:56:360390デフォルトの名無しさん
2008/09/04(木) 15:54:110391デフォルトの名無しさん
2008/09/04(木) 18:55:33decltype(printf)がint(*)(const char*,...)じゃなくてintになるから
非直感的で気持ち悪いって言ってるのかと思った
decltype(printf("..."))だったら当然intに決まってるし
383どういう意味?
0392デフォルトの名無しさん
2008/09/04(木) 19:09:390393デフォルトの名無しさん
2008/09/04(木) 19:17:410394デフォルトの名無しさん
2008/09/04(木) 20:15:120395デフォルトの名無しさん
2008/09/04(木) 20:22:280396デフォルトの名無しさん
2008/09/04(木) 20:22:580397デフォルトの名無しさん
2008/09/04(木) 20:44:52アホ?
C/C++の式にポインタじゃない関数型なんて存在しねえよ
0398デフォルトの名無しさん
2008/09/04(木) 20:51:580399デフォルトの名無しさん
2008/09/04(木) 20:56:590400デフォルトの名無しさん
2008/09/04(木) 21:21:28#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
0401デフォルトの名無しさん
2008/09/04(木) 21:28:00坊やにはまだ早いよ。
C++03を学びなおしてきな。
0402デフォルトの名無しさん
2008/09/04(木) 21:34:35関数型って&演算子のオペランド(結果は関数ポインタ)の場合しか存在しないんじゃないの?
関数ポインタには*演算子効かないから関数型って単独で取り出せないんじゃないの?
(**************printf)("...")とか書けるのは何なの?
()のオペランドって関数ポインタじゃないの?
わかんなくなってきた
0403デフォルトの名無しさん
2008/09/04(木) 21:36:41スレチ
0404デフォルトの名無しさん
2008/09/04(木) 21:40:42関数ポインタというものは*や&付けても自分自身に戻る変な型で、
みんなが引数列と呼んでいる(...)は関数ポインタ(と多重定義したクラス)だけに作用する特別な演算子で
「関数」なるものはコンパイラの世界には存在しないんだよって
そう教わって信じてきたのにまさかC++に関数型が存在するなんて…
カルチャーショック
0405デフォルトの名無しさん
2008/09/04(木) 21:44:45ポインタにはすべて「そのポインタが指す先の型」というものが概念的に存在する。
そういう型の変数が作れるかとか、そういう型のリテラルが書けるか、は別の問題。
0406デフォルトの名無しさん
2008/09/04(木) 21:45:41型としての関数なんて、テンプレートメタプログラミングでもしない限り扱わんし、
紛らわしいよな。
0407デフォルトの名無しさん
2008/09/04(木) 21:55:20void foo(void(*)()){std::cout << "foo(void(*)())";}
void foo(void()){std::cout << "foo(void())";}
これ定義しようとしたら怒られたぞ(片方にするとどっちも通る)
つまりvoid(*)()とvoid()は同じ型ってことじゃないの
0408デフォルトの名無しさん
2008/09/04(木) 22:00:37引数の型(というか、変数の型)としては関数ポインタしかあり得ない。
そういう場所に「関数」を書いた場合は「関数ポインタ」とみなす、という規則があるため、
結果的に同じ型の引数を取る関数を宣言しようとしたと解釈されエラーになる。
0409not 408
2008/09/04(木) 22:05:19とりあえずC++0xはまだ早いんじゃないのかね?
0410デフォルトの名無しさん
2008/09/04(木) 22:13:352.その程度の知識ならまずC++03の規格に一通り目を通してから、まだお前のような素人には早い
dotchi?
0411デフォルトの名無しさん
2008/09/04(木) 22:24:47なんだ&とsizeofとtypeid(と多分decltypeも)のオペランドの中が特殊なだけで
その外では404の通りでいいんじゃん
関数型は出てきたそばから関数ポインタに変えられるから
&とsizeofとtypeid以外の世界にはやっぱり関数型は存在しないんだ
俺は大体合ってた
0412デフォルトの名無しさん
2008/09/04(木) 22:28:55このクラスは継承するなってソースにもドキュメントにも書いてあるのに
勝手に継承されてデストラクタ呼ばれないとか文句垂れられます
0413デフォルトの名無しさん
2008/09/04(木) 22:29:390414デフォルトの名無しさん
2008/09/04(木) 22:31:150415デフォルトの名無しさん
2008/09/04(木) 23:19:54boost::function<R(A)> とか boost::result_of<R(A)> とか見たこともないの?
0416デフォルトの名無しさん
2008/09/04(木) 23:22:47オーバーロードしてる関数の型ってのはやっぱ無理なのか
例えばstd::fabsを引数double xで呼び出したときの(戻り値ではなく)関数の型が分かると便利なんだけど
decltype( static_cast<decltype(x)(*)(decltype(x))>(std::fabs) )
てのは本末転倒な気がする
0417デフォルトの名無しさん
2008/09/04(木) 23:32:10関数型をtypedefすると、
シグネチャが同じ関数を大量に宣言するときに便利だよw
typedef double F(double);
F sin,cos,tan,asin,acos,atan,…;
ってこれC言語だからC++0x関係ないな
0418デフォルトの名無しさん
2008/09/05(金) 01:45:31function, result_ofはTR1にも入っていて、
C++0xにまんま入ることが決定済み。
0419デフォルトの名無しさん
2008/09/05(金) 06:33:58decltypeも『式を評価して』その式の型を返す。
だから関数を入れたらその関数が評価されて関数の戻り値の型が返るに決まっている。
どこも非直感的ではない。
0420デフォルトの名無しさん
2008/09/05(金) 08:42:21×関数を入れたら
○関数呼び出しを入れたら
0421デフォルトの名無しさん
2008/09/05(金) 09:12:37typeid, sizeof, decltypeの三つな。
0422デフォルトの名無しさん
2008/09/05(金) 13:12:110423デフォルトの名無しさん
2008/09/05(金) 14:42:500424デフォルトの名無しさん
2008/09/05(金) 18:25:23int i = 0;
std::cout<<sizeof(i++)<<std::endl;
std::cout<<i<<std::endl; //prints 0
なわけね
>>416が気になるからage
0425デフォルトの名無しさん
2008/09/05(金) 18:28:060426デフォルトの名無しさん
2008/09/05(金) 19:16:48TMPではよくやることだな
0427デフォルトの名無しさん
2008/09/05(金) 21:21:040428デフォルトの名無しさん
2008/09/05(金) 21:57:580429デフォルトの名無しさん
2008/09/05(金) 22:35:53今でもboost vaultにあるキワモノ(例:eggとかphoenix)使ってたらエラー時に落ちるものは結構あるようだけど
0430デフォルトの名無しさん
2008/09/05(金) 23:39:59??? そんなことは百も承知だが
関数型がテンプレートの引数一つで取り扱える例を出しただけ
そういや、boost::function は昔は <R, A1, A2> みたいに書いてたころも
あったけな
0431デフォルトの名無しさん
2008/09/06(土) 10:22:300432デフォルトの名無しさん
2008/09/06(土) 13:36:460433デフォルトの名無しさん
2008/09/06(土) 13:45:09http://pc11.2ch.net/test/read.cgi/tech/1191754720/
0434デフォルトの名無しさん
2008/09/12(金) 19:27:25それとももっと古くからあった?
0435デフォルトの名無しさん
2008/09/12(金) 20:49:36va_argって知らないの?
0436デフォルトの名無しさん
2008/09/12(金) 20:55:47先に実装したのはDだが、発想自体は別に新しいものじゃないだろ
0437デフォルトの名無しさん
2008/09/12(金) 21:22:38可変個引数関数のことを言ってるんじゃないよ
>>436
そうなのか。作ったタプルを転送して展開して…とか初めて見たとき、何じゃこりゃすげぇと思ったんだけどな〜
0438デフォルトの名無しさん
2008/09/12(金) 21:24:06無理だろあんなもの。疲れるだけ。
0439デフォルトの名無しさん
2008/09/12(金) 21:27:230440デフォルトの名無しさん
2008/09/12(金) 21:31:14> 何じゃこりゃすげぇと思ったんだけどな〜
かわいいねえ。
0441デフォルトの名無しさん
2008/09/12(金) 22:53:230442デフォルトの名無しさん
2008/09/12(金) 23:35:280443デフォルトの名無しさん
2008/09/13(土) 00:24:300444デフォルトの名無しさん
2008/09/13(土) 00:30:050445デフォルトの名無しさん
2008/09/13(土) 00:34:070446デフォルトの名無しさん
2008/09/13(土) 00:59:47コンセプトでエラーメッセージがましになることが期待できるってのはないですか?
普通の利用者は自分でコンセプトを定義しないっていう点では関係ないと言えるのかもしれないけど。
0447デフォルトの名無しさん
2008/09/13(土) 02:43:39ああ、C++とJavaの悪い所取りした哀れな言語ね
0448デフォルトの名無しさん
2008/09/13(土) 03:01:47(現在STLやboostを利用するレベルの)通常のC++ユーザーにとっては、
・auto
・initializer_list
・新型for
・lambda
・template typedef
・nullptr
くらいは結構書く機会があるのでは?
あと、以前も出てましたが、template同様自分で書くことはなくても、
conceptに関してはユーザー全員が理解すべきものと思います。
個人的にはあとdecltypeとそれに伴う新たな関数宣言も。
0449デフォルトの名無しさん
2008/09/13(土) 03:14:42こんなんだよな
[]main(int argc, char *argv[]) -> int{return 0;}
きめえwwwwwwwwww
自分では絶対に書かない
0450デフォルトの名無しさん
2008/09/13(土) 03:53:18これまでのパラダイムから、あまりにもかけ離れすぎてて
これだったら無い方がまだマシ
0451デフォルトの名無しさん
2008/09/13(土) 04:58:26template <typename T>
struct complex
{
T re;
T im;
template <typename T2>
[]operator+(const complex<T2>& rhs) -> complex<decltype(re+rhs.re)>{ /* ... */ }
};
0452デフォルトの名無しさん
2008/09/13(土) 05:10:05complex<decltype(re+rhs.re)> operator+(const complex<T2>& rhs){ /* ... */ }
rhsを宣言より前に使ってるからダメってのはわかってるよ
でもそんなの戻り値型は後で解決することにすりゃいいだけじゃん
0453デフォルトの名無しさん
2008/09/13(土) 05:14:150454デフォルトの名無しさん
2008/09/13(土) 05:57:38もしかしてこう?
[]Foo::Foo() -> : a(0) {}
オェェェェ
0455デフォルトの名無しさん
2008/09/13(土) 08:47:11>>454
コンストラクタではその書き方はできないだけだと思われ。
0456デフォルトの名無しさん
2008/09/13(土) 10:02:04要は、戻り値は後ろにある方が型推論ができていいってことらしい。
あと、数学でも、関数の宣言って f: 定義域 → 値域 なのよね。
けども、この書式で、C++ でやるとキモいよな。
>>452
C++ 屋さんは LL 文法大好きだから。
0457デフォルトの名無しさん
2008/09/13(土) 13:21:180458デフォルトの名無しさん
2008/09/13(土) 13:31:320459デフォルトの名無しさん
2008/09/13(土) 13:44:260460デフォルトの名無しさん
2008/09/13(土) 13:59:070461デフォルトの名無しさん
2008/09/13(土) 16:50:02じゃあコンストラクタ、デストラクタ、変換関数は新形式では書けないって事なのかな
書ける関数と書けない関数があるような一貫性のない書き方はダメだなぁ
0462デフォルトの名無しさん
2008/09/13(土) 16:54:410463デフォルトの名無しさん
2008/09/13(土) 16:55:47戻り値書かないのはコンストラクタ・デストラクタだけなんだし。
新書式の目的が戻り値の型推論だっていう目的を考えても、
戻り値のないコンストラクタに使えてもしょうがないし。
0464デフォルトの名無しさん
2008/09/13(土) 16:55:52[]のHPは0よ!
0465デフォルトの名無しさん
2008/09/13(土) 17:02:290466デフォルトの名無しさん
2008/09/13(土) 17:14:28あとコンストラクタ関係(委譲、default/delete)は便利だと思う
>>454
ラムダからの類推で行くと、書けたとしても
[]Foo::Foo() : a(0) {}
となるだけでは?
まあそこまで行くと[]つける意味は皆無に等しいけど
0467デフォルトの名無しさん
2008/09/13(土) 17:21:57と、変換関数な
[]operator int() -> intって書かせることになるのかなぁ
0468デフォルトの名無しさん
2008/09/13(土) 17:25:23今まで通り普通は旧形式で書いて、戻り値で型推論したいときだけ特別に使う物なのか
それとも旧形式をobsoleteとして新しいプログラムは全部新形式で書かせることを狙ってるのか
後者だとしたら書けない関数があるのはまずい
0469デフォルトの名無しさん
2008/09/13(土) 17:56:04このC++はバージョンアップするたびに規格書の厚みがはるかに増す…
0470デフォルトの名無しさん
2008/09/13(土) 18:13:160471デフォルトの名無しさん
2008/09/13(土) 18:23:390472デフォルトの名無しさん
2008/09/13(土) 18:48:33例によって祈り空しく採用される流れ
0473471
2008/09/13(土) 18:56:28というか、n2582でググったらあのブログがトップに出てくるから気になって書き込んだんだが、
知らなかったわけはないので忘れてたってことだろうか
個人的には>>470の追記と同じく、面白いと思うけどな
気持ち悪いのはラムダ関数の構文であって、
それをとりあえず認めるならば、それと統一が取れていてまだマシ
0474デフォルトの名無しさん
2008/09/13(土) 19:01:11function main(int argc, char *argv[]) -> int{return 0;}
function Foo::Foo() : a(0) {}
Cっぽくはないがそれほど悪くない
0475デフォルトの名無しさん
2008/09/13(土) 19:09:05fncdefとかだめですか
fncdef main() -> int;
fncdef Foo::operator int();
// Wikipediaのラムダの例を改変
// http://ja.wikipedia.org/wiki/C%2B%2B0x#.E3.83.A9.E3.83.A0.E3.83.80.E9.96.A2.E6.95.B0.E3.81.A8.E3.83.A9.E3.83.A0.E3.83.80.E5.BC.8F
int total = 0;
int value = 5;
fncdef&[value](int x) { total += (x * value) };
0476デフォルトの名無しさん
2008/09/13(土) 19:23:30fncdef 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かな
0477デフォルトの名無しさん
2008/09/13(土) 20:03:430478デフォルトの名無しさん
2008/09/13(土) 20:43:12「C++0xの関数定義用記号をUnicodeに追加する」
という案はどうだろう?
0479デフォルトの名無しさん
2008/09/13(土) 20:52:460480デフォルトの名無しさん
2008/09/13(土) 21:20:410481デフォルトの名無しさん
2008/09/13(土) 21:29:54おまえはくさび文字使って60進リテラルでも書いてろw
0482デフォルトの名無しさん
2008/09/13(土) 21:58:42それで、<stdfunction>で#define _Function functionしとけ。
0483デフォルトの名無しさん
2008/09/13(土) 22:40:21え、昔のコード? そんなもん機械的に書き直せばいい。
0484デフォルトの名無しさん
2008/09/13(土) 22:45:330485デフォルトの名無しさん
2008/09/13(土) 22:51:080486デフォルトの名無しさん
2008/09/13(土) 22:56:47そういうのとリンクできないと困ったりするんだよ
まあfunctionなんて名前の関数は最低だけどな
0487デフォルトの名無しさん
2008/09/13(土) 22:57:190488デフォルトの名無しさん
2008/09/13(土) 23:08:29個人的にはfunctionなんかよりconceptだのrequiresだのの方がよっぽど問題起こしやすそうだと思うが
0489デフォルトの名無しさん
2008/09/14(日) 01:06:050490デフォルトの名無しさん
2008/09/14(日) 01:09:220491デフォルトの名無しさん
2008/09/14(日) 01:16:57センスのかけらもない
0492デフォルトの名無しさん
2008/09/14(日) 01:25:250493デフォルトの名無しさん
2008/09/14(日) 01:27:200494デフォルトの名無しさん
2008/09/14(日) 01:42:100495デフォルトの名無しさん
2008/09/14(日) 02:26:53変態言語を名乗るならこれぐらい出来ないとな
0496デフォルトの名無しさん
2008/09/14(日) 05:31:56予約語もそうだけど同じものに全然違う意味持たせまくると暗号になっちゃう
0497デフォルトの名無しさん
2008/09/14(日) 08:08:560498デフォルトの名無しさん
2008/09/14(日) 12:31:060499デフォルトの名無しさん
2008/09/14(日) 12:32:230500デフォルトの名無しさん
2008/09/14(日) 12:41:38でもいつ仕様が確定するのやら…
0501デフォルトの名無しさん
2008/09/14(日) 12:47:580502デフォルトの名無しさん
2008/09/14(日) 20:37:08しんどい作業なのでもうちょっと時間がかかります
0503デフォルトの名無しさん
2008/09/14(日) 21:44:040F年まであと7年もあるから余裕かと
0504デフォルトの名無しさん
2008/09/14(日) 21:54:44それは八進数リテラルだ
0505デフォルトの名無しさん
2008/09/14(日) 22:04:050506デフォルトの名無しさん
2008/09/14(日) 22:18:420507デフォルトの名無しさん
2008/09/14(日) 22:23:140508デフォルトの名無しさん
2008/09/14(日) 22:58:20相当無茶な変更がない限り、ほとんど影響が無い罠
0509デフォルトの名無しさん
2008/09/14(日) 23:37:54将来コンパイルが通らなくなったとしても、0xのせいとばかり思われないでほしい。
多少は0xのせいの部分もあるかもしれないけど。
0510デフォルトの名無しさん
2008/09/14(日) 23:58:060xでないと書けないものが新たに加わる訳じゃないし
0511デフォルトの名無しさん
2008/09/15(月) 00:28:38どうせコンパイルオプションで disable できるから安心ですよw
0512デフォルトの名無しさん
2008/09/15(月) 01:29:140513デフォルトの名無しさん
2008/09/15(月) 08:13:47コンパイラ付属のライブラリがほとんど使えなくなると思われますが。
今回はかなり大きな改正ですので。
template入った時以来?
0514デフォルトの名無しさん
2008/09/15(月) 09:33:490515デフォルトの名無しさん
2008/09/15(月) 09:43:53#include <iostream>
しただけでコンセプト満載なんですよ。
iteratorがコンセプト化されるので。
0516デフォルトの名無しさん
2008/09/15(月) 09:56:340517デフォルトの名無しさん
2008/09/15(月) 10:00:00なんなのこの体たらく
0518デフォルトの名無しさん
2008/09/15(月) 10:07:390519デフォルトの名無しさん
2008/09/15(月) 10:15:46iostream使いたい時は具体的にどう書くの?
>コンパイラ付属のライブラリがほとんど使えなくなると思われますが。
0520デフォルトの名無しさん
2008/09/15(月) 10:22:24#ifdef __CPP_ZX_
#include <c++0x/iostream>
#else
#include <c++/iostream>
#endif
とすればいいだけのことじゃないかという意味
0521デフォルトの名無しさん
2008/09/15(月) 10:26:02バイナリ提供のライブラリも切り替えなきゃいけないのと
混在環境でどうするかが大変そうだな。
0522デフォルトの名無しさん
2008/09/15(月) 10:30:33そういう手厚いコンパイラなら、コンパイル時オプション指定で可能でしょうね。
ただtemplate導入時の事を考えると、(二枚仕立ては皆無に近かったので)
新しいバージョンのコンパイラからC++0xへの切り替えを行うのでしょうね。
0523デフォルトの名無しさん
2008/09/15(月) 11:01:280524デフォルトの名無しさん
2008/09/15(月) 11:16:37conceptなんて入門者に説明すんの大変だろうし
その辺はまるっとスルーかな
0525デフォルトの名無しさん
2008/09/15(月) 11:56:43今でさえテンプレートとかろくに解説していないのはよくあることなんだから、当然無視だろ。
0526デフォルトの名無しさん
2008/09/15(月) 12:54:390527デフォルトの名無しさん
2008/09/15(月) 14:09:08その中でさらにコンストラクタ呼んでる例見せるとわかりにくいんだよな
あれは教えづらい
0528デフォルトの名無しさん
2008/09/15(月) 14:11:13デフォルトコンストラクタの書き方で初期化できるあたりから教えてみたら
0529デフォルトの名無しさん
2008/09/15(月) 14:19:57デフォルトのデフォルトコンストラクタの話も先にしなきゃならなくなるし…
(どうでもいいけど何とかならないかなこの名前)
0530デフォルトの名無しさん
2008/09/15(月) 14:25:050531デフォルトの名無しさん
2008/09/15(月) 14:51:300532デフォルトの名無しさん
2008/09/15(月) 15:04:16今や入門者が使う言語ではないので、入門書は要らないのではないか?w
0533デフォルトの名無しさん
2008/09/15(月) 15:13:220534デフォルトの名無しさん
2008/09/15(月) 15:28:240535デフォルトの名無しさん
2008/09/15(月) 15:35:50仕様てんこ盛りだなw
0536デフォルトの名無しさん
2008/09/15(月) 15:44:40懐は広く入口は狭い
巾着みたいなもんだなw
0537デフォルトの名無しさん
2008/09/15(月) 16:19:130538デフォルトの名無しさん
2008/09/15(月) 16:54:36食虫植物キタ━━━━━━(゚∀゚)━━━━━━ !!
0539デフォルトの名無しさん
2008/09/15(月) 16:59:01名器ですね。わかります。
0540デフォルトの名無しさん
2008/09/15(月) 18:25:38いや、あるいは膣痙攣の被害sy
0541デフォルトの名無しさん
2008/09/15(月) 18:43:230542デフォルトの名無しさん
2008/09/18(木) 23:58:09Stroustrup が入門書を書いたみたい
0543デフォルトの名無しさん
2008/09/18(木) 23:58:490544デフォルトの名無しさん
2008/09/19(金) 02:06:49みんなC++0xに行っちゃうの?
0545デフォルトの名無しさん
2008/09/19(金) 02:28:580546デフォルトの名無しさん
2008/09/19(金) 04:04:490547デフォルトの名無しさん
2008/09/19(金) 09:15:40JavaとC++があるから。
俺様言語は必要ない。
0548デフォルトの名無しさん
2008/09/19(金) 09:16:46皆もっとペーパー読もうぜ
0549デフォルトの名無しさん
2008/09/19(金) 09:27:02548 と両方が真だとすると、
それは日本のレベルが低いんでは。
0550デフォルトの名無しさん
2008/09/19(金) 09:28:45残念ながら英語だと読む気が激減する人が多いと思われます
ところで0xって10進法じゃなくてry
0551デフォルトの名無しさん
2008/09/19(金) 09:41:25上の方に「誰も指摘しない、俺は規制で書き込めない」って
ブログのURL張られていたけど、w付きのおふざけレスにはレスしないよー
0552デフォルトの名無しさん
2008/09/19(金) 12:20:36自分に言い聞かせられる状態を常に保って書くのが2chだしな。
0553デフォルトの名無しさん
2008/09/19(金) 12:32:150554デフォルトの名無しさん
2008/09/19(金) 17:57:470555デフォルトの名無しさん
2008/09/19(金) 20:34:410556デフォルトの名無しさん
2008/09/19(金) 20:50:190557アキラ
2008/09/19(金) 21:20:31548-551の話は、私のことではなくhitoさんのことですよね。
なのでTwitterでは、そんなこと言ってない、というようなことを書きました。
それと、555は私ではありません。
0558デフォルトの名無しさん
2008/09/19(金) 21:20:56cpp_akira より晒し続けてるバカのほうが痛々しいし心配だ。
0559558
2008/09/19(金) 21:21:320560デフォルトの名無しさん
2008/09/19(金) 21:25:03>>555 みたいなのは相手をするだけ調子づくだけだから、シカトこいたほうがいいよ。
それが >>555 みたいなヤツの為にもなるし。相手にすると双方、馬鹿を見ることになるよ。
0561デフォルトの名無しさん
2008/09/19(金) 21:31:080562デフォルトの名無しさん
2008/09/19(金) 22:02:300563デフォルトの名無しさん
2008/09/19(金) 22:07:180564デフォルトの名無しさん
2008/09/19(金) 22:11:14人の事なんてどうでもいいだろ?C++0xの話をしろC++0xの話を。
0565デフォルトの名無しさん
2008/09/19(金) 22:27:11late_checkは必要悪なんだろうか。
late_check {
//以下、スレ違いの話題も可
0566デフォルトの名無しさん
2008/09/19(金) 22:31:200567デフォルトの名無しさん
2008/09/19(金) 23:07:44ないとどうにもならん。
N2719を読んで鬱。
俺にmove semanticsは使いこなせるだろうか…
0568デフォルトの名無しさん
2008/09/19(金) 23:35:320569デフォルトの名無しさん
2008/09/20(土) 00:30:49なんだこれは
直感的に拒否反応が出たけど
でも今はしっかり飲んじゃってるんで理解できないや
0570デフォルトの名無しさん
2008/09/20(土) 00:34:50ウザいを通り越してイタいぞ
はてなだかツイッターだかしらんが村から出てくんなよ
ガキが
0571デフォルトの名無しさん
2008/09/20(土) 00:41:030572デフォルトの名無しさん
2008/09/20(土) 09:29:420573デフォルトの名無しさん
2008/09/20(土) 09:44:100574デフォルトの名無しさん
2008/09/20(土) 11:48:28人間性に問題がある奴なんだから
0575デフォルトの名無しさん
2008/09/20(土) 12:13:55C++やってるやつなんて特に
0576デフォルトの名無しさん
2008/09/20(土) 12:28:410577デフォルトの名無しさん
2008/09/20(土) 12:31:550578デフォルトの名無しさん
2008/09/20(土) 13:10:490579デフォルトの名無しさん
2008/09/20(土) 13:50:340580デフォルトの名無しさん
2008/09/20(土) 15:40:33開き直るなよ屑hito
0581デフォルトの名無しさん
2008/09/20(土) 15:44:100582デフォルトの名無しさん
2008/09/20(土) 23:54:380583デフォルトの名無しさん
2008/09/21(日) 00:27:12それは2011年になっちゃったってこと?
それとも2進リテラル?
0584デフォルトの名無しさん
2008/09/21(日) 07:23:110585デフォルトの名無しさん
2008/09/21(日) 18:47:310586アキラ
2008/09/23(火) 13:57:110587デフォルトの名無しさん
2008/09/23(火) 14:46:220588デフォルトの名無しさん
2008/09/23(火) 14:55:370589デフォルトの名無しさん
2008/09/23(火) 14:58:090590デフォルトの名無しさん
2008/09/23(火) 15:19:17無理だろ
0591デフォルトの名無しさん
2008/09/23(火) 15:26:28そこはもう済んでると思うよ。
0592デフォルトの名無しさん
2008/09/23(火) 16:17:30スレッド関係はライブラリにするんじゃなかったっけ
あったとしてもスレッドの寿命に合わせて管理されるヒープ変数を保持するテンプレートクラスとか
そんなんだろ
0593デフォルトの名無しさん
2008/09/23(火) 16:42:55> 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. ...
0594デフォルトの名無しさん
2008/09/24(水) 09:08:21最低でも、
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/
のタイトルくらいは眺めてくれよ。paper本文は読まなくていいから。
あと、
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2705.html
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/sd-1.htm
0595デフォルトの名無しさん
2008/09/28(日) 21:54:280596デフォルトの名無しさん
2008/09/29(月) 01:39:28getenv(3)やstdio.hの事も忘れないであげてください。
0597デフォルトの名無しさん
2008/10/09(木) 05:12:59News 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
0598デフォルトの名無しさん
2008/10/09(木) 05:46:44残念だ。
0599デフォルトの名無しさん
2008/10/18(土) 14:08:10class hoge [[ final ]]
{
}
sealedが欲しかった俺としてはうれしいが文法が・・
0600デフォルトの名無しさん
2008/10/18(土) 14:26:37継承不可ってだけ?
0601デフォルトの名無しさん
2008/10/18(土) 14:54:220602デフォルトの名無しさん
2008/10/18(土) 15:07:130603デフォルトの名無しさん
2008/10/18(土) 15:27:200604デフォルトの名無しさん
2008/10/18(土) 15:30:110605デフォルトの名無しさん
2008/10/18(土) 15:43:300606デフォルトの名無しさん
2008/10/18(土) 16:13:540607デフォルトの名無しさん
2008/10/18(土) 16:33:48ドラフトが出たのは九日も前だぞ。
0608デフォルトの名無しさん
2008/10/18(土) 17:04:23wikiのリンクみたい
0609デフォルトの名無しさん
2008/10/18(土) 18:47:150610デフォルトの名無しさん
2008/10/18(土) 18:51:21まぁ、使う気はないんだが
0611デフォルトの名無しさん
2008/10/18(土) 21:38:430612デフォルトの名無しさん
2008/10/19(日) 01:43:410613デフォルトの名無しさん
2008/10/19(日) 01:51:440614デフォルトの名無しさん
2008/10/19(日) 01:59:570615デフォルトの名無しさん
2008/10/19(日) 02:07:570616デフォルトの名無しさん
2008/10/19(日) 04:08:170617デフォルトの名無しさん
2008/10/19(日) 07:55:210618デフォルトの名無しさん
2008/10/19(日) 12:53:24属性に関してはどっちも同じ構文だぞ。
0619デフォルトの名無しさん
2008/10/19(日) 12:55:430620デフォルトの名無しさん
2008/10/19(日) 18:59:550621デフォルトの名無しさん
2008/10/19(日) 19:16:100622デフォルトの名無しさん
2008/10/19(日) 19:35:540623デフォルトの名無しさん
2008/10/27(月) 11:09:57プロパティは止めて欲しいけど。
メタなスロットアクセスフックにして欲しい。
move semanticsみたいにね。
0624デフォルトの名無しさん
2008/10/27(月) 23:03:46>メタなスロットアクセスフックにして欲しい。
>move semanticsみたいにね。
kwsk
0625デフォルトの名無しさん
2008/11/01(土) 01:20:43ttp://yebo-blog.blogspot.com/2008/10/c0x.html
0626デフォルトの名無しさん
2008/11/01(土) 03:57:350627デフォルトの名無しさん
2008/11/01(土) 10:43:230628デフォルトの名無しさん
2008/11/01(土) 11:25:50feature-complete、C++0xに入る機能は全てレビュー出来る状態になった
「全て揃った公開ドラフト(complete public draft)」が出来た。
http://herbsutter.wordpress.com/2008/10/28/september-2008-iso-c-standards-meeting-the-draft-has-landed-and-a-new-convener/
0629デフォルトの名無しさん
2008/11/01(土) 13:58:500630デフォルトの名無しさん
2008/11/01(土) 14:11:380631デフォルトの名無しさん
2008/11/02(日) 00:42:51ヒント:自分で作る
0632デフォルトの名無しさん
2008/11/02(日) 00:45:140633デフォルトの名無しさん
2008/11/02(日) 01:03:000634デフォルトの名無しさん
2008/11/02(日) 01:46:43Apple に買収されたから C++ にはあんまり興味ないのかな。
0635デフォルトの名無しさん
2008/11/02(日) 02:05:09仕様が決まってる言語処理系の実装に天才なんて不要
時間さえあれば経験豊富な凡才一人で完成するだろう
0636デフォルトの名無しさん
2008/11/02(日) 02:18:370637デフォルトの名無しさん
2008/11/02(日) 02:28:520638デフォルトの名無しさん
2008/11/02(日) 02:43:330639デフォルトの名無しさん
2008/11/02(日) 05:33:25最適化までは無理だが。
0640デフォルトの名無しさん
2008/11/02(日) 05:37:110641639
2008/11/02(日) 06:11:01正確にはコンパイラジェネレータを8時間で作って、あとは1ヶ月かけて自動生成したんだけど、
いまどきのパソコンなら数分で完了するよ。
もちろん全ての仕様を網羅してるわけじゃないし基本ライブラリもないけどな。
最初のコンパイラだから。
0642デフォルトの名無しさん
2008/11/02(日) 06:12:080643デフォルトの名無しさん
2008/11/02(日) 06:20:10期待外れと言わざるを得ない
0645デフォルトの名無しさん
2008/11/02(日) 07:42:260646639
2008/11/02(日) 07:58:08いえいえ
完成品を渡して翌日には殴られて記憶喪失ですよ。
しかも殴られた理由が、「次はTRONを1日で完成させろ」って言われて拒否したから。
0647639
2008/11/02(日) 08:00:56パチンコのゴト師だとか中国スパイに暗号技術者が殺されたりしまくってるでしょ。
0648デフォルトの名無しさん
2008/11/02(日) 11:16:520649デフォルトの名無しさん
2008/11/02(日) 11:38:330650デフォルトの名無しさん
2008/11/02(日) 12:20:060651デフォルトの名無しさん
2008/11/02(日) 18:43:11VC++2010のCTPに0xの機能が一部入ったようだ
http://blogs.msdn.com/vcblog/archive/2008/10/28/visual-studio-2010-ctp-released.aspx
http://blogs.msdn.com/vcblog/archive/2008/10/28/lambdas-auto-and-static-assert-c-0x-features-in-vc10-part-1.aspx
0652デフォルトの名無しさん
2008/11/02(日) 20:43:55・GCC (ttp://gcc.gnu.org/projects/cxx0x.html)
rvalue references
variadic templates
initializer lists
static assertions
decltype
strongly typed enum
・Visual C++ (ttp://blogs.msdn.com/vcblog/default.aspx)
lambda
rvalue references
static assertions
auto
・C++Builder (ttp://dn.codegear.com/article/38869)
rvalue references
static assertions
decltype
strongly typed enum
char16_t, char32_t
現時点ではこんなもん?
今後、C++0xが正式に出るまでどれだけ実装されるかな
0653デフォルトの名無しさん
2008/11/02(日) 20:58:28・Comeau C++ ( ttp://www.comeaucomputing.com/43101features.html )
static assertions
auto type specifier
extern template
後、細々したもの。
0654デフォルトの名無しさん
2008/11/02(日) 21:47:350655デフォルトの名無しさん
2008/11/02(日) 21:51:030656デフォルトの名無しさん
2008/11/02(日) 22:02:15auto x = a + b ;
auto iter = v.begin() ;
の変わりに、
decltype(a + b) x = a + b ;
decltype(v.begin()) iter = v.begin() ;
では面倒だぜ。
0657デフォルトの名無しさん
2008/11/02(日) 22:07:54...こんなマクロが流行るんですね、わかります。
0658デフォルトの名無しさん
2008/11/02(日) 22:27:39既にBOOST_AUTOが切り開いた道
0659デフォルトの名無しさん
2008/11/02(日) 22:36:53一番目立つ機能だから変なマクロが流行る前に最優先で実装して欲しい
0660デフォルトの名無しさん
2008/11/02(日) 22:39:510661デフォルトの名無しさん
2008/11/02(日) 22:41:040663デフォルトの名無しさん
2008/11/02(日) 22:45:06「でっくるたいぷ」
でよろしいですねッ!
0664デフォルトの名無しさん
2008/11/02(日) 22:45:160665デフォルトの名無しさん
2008/11/02(日) 23:46:55decltypeはsizeofの変種でめっちゃ簡単。
autoは宣言/定義を解釈するコードを書き換える必要がある。
最悪トップダウン/ボトムアップを入れ替える必要あり。
0666デフォルトの名無しさん
2008/11/03(月) 00:01:35そのサイズを計算せずに、
その型のまま返すだけだからね。
sizeof → decltype
0667デフォルトの名無しさん
2008/11/03(月) 00:51:07普通decltypeが先だろと。
0668デフォルトの名無しさん
2008/11/03(月) 01:11:420669デフォルトの名無しさん
2008/11/03(月) 01:13:300670デフォルトの名無しさん
2008/11/03(月) 01:21:210671デフォルトの名無しさん
2008/11/03(月) 01:40:42あのC/C++インタプリタ、CINTのドキュメントに書いてあるんだが。
これはいつ頃書かれたんだろうね。かなり昔の事だと思うが。
ttp://root.cern.ch/viewcvs/trunk/doc/limitati.txt?root=cint
>Template works probably better than most of UNIX based C++ compilers,
>but not as good as Windows based ones.
0672デフォルトの名無しさん
2008/11/03(月) 02:07:33auto検出したら内部で657のマクロみたいな置き換えすりゃいいだけかと思ってた
0673デフォルトの名無しさん
2008/11/03(月) 04:20:31確か、VC++が標準対応売りにしだしたのはVS2002の辺りから。
ひどかったのは、VC6からVS2002の間が開き過ぎたせい。
0674デフォルトの名無しさん
2008/11/03(月) 04:58:18そして 2003 で一気に改善されて、2002 のアカデミック(無料アップデート対象外)を買った俺涙目。
0675デフォルトの名無しさん
2008/11/03(月) 05:54:15VC6って96年だった気が。
C++の標準化の1つの節目が98年なんで、VC6が対応しているわけもないという。
0676デフォルトの名無しさん
2008/11/03(月) 08:26:56boostなんかVC++パッチの嵐だよね。
testが一番通ってるのもVC++なんだがw
メジャー・バージョンアップで適合率トップ、
マイナー・バージョンアップではノロノロで追い抜かれる、
の繰り返しだね。
0677デフォルトの名無しさん
2008/11/03(月) 09:02:31gccなんかと比べると特に
0678デフォルトの名無しさん
2008/11/03(月) 09:05:31簡単にフィックスできないって事があるね。
0679デフォルトの名無しさん
2008/11/03(月) 09:09:460680デフォルトの名無しさん
2008/11/03(月) 10:48:120681デフォルトの名無しさん
2008/11/03(月) 12:29:230682デフォルトの名無しさん
2008/11/03(月) 13:36:54あ、conceptとか入れたらlookupの挙動が変わる?
0683デフォルトの名無しさん
2008/11/03(月) 13:40:55VCはconceptを実装するのに一年はかかるとか
なぜかはわかんね
0684デフォルトの名無しさん
2008/11/03(月) 15:10:28五年はかかるぜ。
0685デフォルトの名無しさん
2008/11/03(月) 15:13:520686デフォルトの名無しさん
2008/11/03(月) 15:14:490687デフォルトの名無しさん
2008/11/03(月) 17:34:29C++03やC++/CLIが使えなくなるわけじゃないから、
MSにとってそんなに優先順位の高い仕事じゃない。
コンパイラだけでライブラリはそのままじゃアレなんで、
ライブラリやらないといけないし、
独自ライブラリの部分のconcept化をどうするか考えて、
設計しとかないといけない。concept化やらない部分も、
やる部分との整合を考えないといけないから。
g++は規格部分+独自拡張だけだから身軽。
規格に全て書いてあるわけじゃないしね。
Issues Listにあるようなことを実装しながら考えないといけない。
0688デフォルトの名無しさん
2008/11/03(月) 17:53:09現行のコードは変わらないだろ。
0689デフォルトの名無しさん
2008/11/05(水) 22:35:59ttp://d.hatena.ne.jp/faith_and_brave/20081105/1225875809
最低だ
0690デフォルトの名無しさん
2008/11/05(水) 22:38:400691デフォルトの名無しさん
2008/11/05(水) 22:43:13>>689にはinitializer_listのことは書いてない気がするんだが
0692デフォルトの名無しさん
2008/11/05(水) 22:43:22まだ仕様の方がちゃんと決まってないのに無茶言うな
0693デフォルトの名無しさん
2008/11/05(水) 23:00:140694デフォルトの名無しさん
2008/11/05(水) 23:09:300695デフォルトの名無しさん
2008/11/05(水) 23:49:08ないので、それは大丈夫じゃないかな。
0696デフォルトの名無しさん
2008/11/06(木) 08:36:45どっちも後から付けやすい機能だから、
次のアップデイトに入るんじゃないか?
0697デフォルトの名無しさん
2008/11/06(木) 09:35:360698デフォルトの名無しさん
2008/11/06(木) 09:40:000699デフォルトの名無しさん
2008/11/06(木) 19:58:170700デフォルトの名無しさん
2008/11/06(木) 20:44:140701デフォルトの名無しさん
2008/11/12(水) 22:05:43http://pc11.2ch.net/test/read.cgi/pcnews/1226494816/
0702デフォルトの名無しさん
2008/11/12(水) 22:25:390703デフォルトの名無しさん
2008/11/12(水) 22:43:070704デフォルトの名無しさん
2008/11/12(水) 22:54:20公式に言い訳しないの?w
0705デフォルトの名無しさん
2008/11/12(水) 23:14:170706デフォルトの名無しさん
2008/11/12(水) 23:54:540707デフォルトの名無しさん
2008/11/13(木) 00:03:230708デフォルトの名無しさん
2008/11/13(木) 07:40:03それは言い訳というよりは、むしろ愚直な反応というべきかも。
自分達からはその件について何も言わず、誰かに突っ込まれてから
「え? どう考えても16進数でしょ? アナタ何だと思ってたんですか?」
とか返すよりはw
0709デフォルトの名無しさん
2008/11/13(木) 19:20:172010は、16進数で 7DA な。 C++Dx ならまだ納得できるがw
0710デフォルトの名無しさん
2008/11/13(木) 21:06:44見送られたんじゃなかったっけ?
0711デフォルトの名無しさん
2008/11/13(木) 23:03:400712デフォルトの名無しさん
2008/11/13(木) 23:17:040713デフォルトの名無しさん
2008/11/14(金) 00:19:500714デフォルトの名無しさん
2008/11/14(金) 00:22:570715デフォルトの名無しさん
2008/11/14(金) 00:42:280716デフォルトの名無しさん
2008/11/14(金) 10:48:000717デフォルトの名無しさん
2008/11/14(金) 11:01:04西暦2048〜2063年までには
0718デフォルトの名無しさん
2008/11/14(金) 21:09:220719デフォルトの名無しさん
2008/11/14(金) 21:28:13もっと面白い話題にしようぜ
ユーザー定義リテラル採用で0b厨歓喜とか
0720デフォルトの名無しさん
2008/11/14(金) 21:37:480721デフォルトの名無しさん
2008/11/14(金) 23:06:532: ww
3: www
10: wwwwwwwwww
なぁ、0は?
0722デフォルトの名無しさん
2008/11/14(金) 23:09:431: ww
2: www
3: wwww
0723デフォルトの名無しさん
2008/11/14(金) 23:12:340724デフォルトの名無しさん
2008/11/14(金) 23:15:43夢はないけど
0725デフォルトの名無しさん
2008/11/14(金) 23:20:38template<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'>
0726デフォルトの名無しさん
2008/11/14(金) 23:21:45template<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'>
0727デフォルトの名無しさん
2008/11/14(金) 23:23:020728デフォルトの名無しさん
2008/11/15(土) 00:32:17よくやった。わかりづらい。
さて次の議題だが、マイナス値はどうする?
0729デフォルトの名無しさん
2008/11/15(土) 02:20:140: w
1: ww
-1: www
2: wwww
-2: wwwww
0730デフォルトの名無しさん
2008/11/15(土) 02:28:360731デフォルトの名無しさん
2008/11/15(土) 02:30:250732デフォルトの名無しさん
2008/11/15(土) 02:43:580733デフォルトの名無しさん
2008/11/15(土) 04:31:33そこでboost::lambdaでチャーチ数ですよ。
0734デフォルトの名無しさん
2008/11/15(土) 06:18:25なんてのがコンパイルエラーになるワケww?
0735デフォルトの名無しさん
2008/11/15(土) 06:43:35<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だが。
0736デフォルトの名無しさん
2008/11/15(土) 08:41:16"wvvvwvvwvwww"w // == 0x897
Vで2、Wで3を現わすとして4進数とか。
"WwVvwW"w // == 0xd87
0737デフォルトの名無しさん
2008/11/15(土) 09:42:00-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
0738デフォルトの名無しさん
2008/11/15(土) 10:06:280 -> ""w
1 -> "W"w
-2 -> "Ww"w
-1 -> "WW"w
4 -> "Www"w
5 -> "WwW"w
2 -> "WWw"w
3 -> "WWW"w
0739デフォルトの名無しさん
2008/11/15(土) 10:19:23この話題に触れたのはクヌース先生の説明を読んで以来だぜw
0740デフォルトの名無しさん
2008/11/15(土) 10:42:350741デフォルトの名無しさん
2008/11/15(土) 11:01:48"+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.\
------------.<++++++++.--------.+++.------.--------.>+."BF
=>"Hello world!"
夢が広がりんぐ
0742デフォルトの名無しさん
2008/11/15(土) 11:05:530743デフォルトの名無しさん
2008/11/15(土) 11:16:43ローマ数字をコンパイルタイムで数値変換とかは無理?
0744デフォルトの名無しさん
2008/11/15(土) 11:19:150745デフォルトの名無しさん
2008/11/15(土) 11:21:08operator""の中でグローバル変数使う可能性があるから無理なんだろうか
0746デフォルトの名無しさん
2008/11/15(土) 11:23:52再帰にしない代わりに同じ内容の関数をたくさんつくれば、
有限ステップの計算ならできるんじゃね。
0747デフォルトの名無しさん
2008/11/15(土) 13:13:280748デフォルトの名無しさん
2008/11/15(土) 14:41:54operator "" BF("abcdef")は、
operator "" BF<'a', 'b', 'c', 'd', 'e', 'f'>()と等価だから、
必要な分だけ特殊化しておけば大丈夫。
0749デフォルトの名無しさん
2008/11/15(土) 15:19:290750デフォルトの名無しさん
2008/11/15(土) 15:23:50素直にTMP厨と呼べば?
0751デフォルトの名無しさん
2008/11/15(土) 15:26:010752デフォルトの名無しさん
2008/11/15(土) 15:48:440753デフォルトの名無しさん
2008/11/15(土) 15:57:390754デフォルトの名無しさん
2008/11/15(土) 18:48:310755デフォルトの名無しさん
2008/11/15(土) 19:41:29コンパイルタイム無限ループで悩むのがD。
0756デフォルトの名無しさん
2008/11/15(土) 19:54:330757デフォルトの名無しさん
2008/11/16(日) 00:13:590758デフォルトの名無しさん
2008/11/19(水) 18:34:260759デフォルトの名無しさん
2008/11/19(水) 20:36:270760デフォルトの名無しさん
2008/11/21(金) 11:50:310761デフォルトの名無しさん
2008/11/21(金) 17:57:570762デフォルトの名無しさん
2008/11/22(土) 01:13:420763デフォルトの名無しさん
2008/11/22(土) 22:15:490764デフォルトの名無しさん
2008/11/22(土) 22:17:460765デフォルトの名無しさん
2008/11/22(土) 22:55:250766デフォルトの名無しさん
2008/11/22(土) 22:57:280767デフォルトの名無しさん
2008/11/22(土) 23:01:27引数をエラーメッセージに表示する時とかによく使う。
0768デフォルトの名無しさん
2008/11/22(土) 23:02:280769デフォルトの名無しさん
2008/11/22(土) 23:28:010770デフォルトの名無しさん
2008/11/23(日) 21:58:510771デフォルトの名無しさん
2008/11/24(月) 09:12:030772デフォルトの名無しさん
2008/11/24(月) 19:19:49C++0xで決まるのかどうかもわかってないレベルですが
0773デフォルトの名無しさん
2008/11/24(月) 19:20:310774デフォルトの名無しさん
2008/11/24(月) 21:24:430775デフォルトの名無しさん
2008/11/24(月) 21:30:15こういうのを0xでも実装すればかのうだと思います
0776デフォルトの名無しさん
2008/11/25(火) 10:09:21VC++blogに0xのラムダを使った再帰の例が出てたよ
0777デフォルトの名無しさん
2008/11/30(日) 11:56:57/:::::::: :::::::::::::::..ヽ|、::::::::... ヽ、
/ :::::::: 、:::::::::::::::::...ヽ::::::::::::.. ヽ
/ ::::: 人、 | ヽ、_:::::::::::::: |:::::::::::::. |
,イ´ | :::ト、 | `'-,r‐=,、ヽ、 ::: |:::::::::::::: |
rv' l´ ヽ、:.| r-、 p ヽ `l ,ヘ::::::::::::::::: |
| | | ヾヽ、 ハ ヾ_ノ .| |' .|:::::::::::::::::: | ラムダっちゃ♥
'´ ̄ ̄`ヽ、、_ | | | ヽ、l ゞ ー | レ'::::::::::::::::::: |
 ̄ ` r-L l ', |` 、 ,' |:::::::::::::::::::::: |
_rヾニ `ヽ ', ヽ、 r‐-ァ /::|::::::::::::::::::::::::.. |
ヾゝイ´ ,/ .', ヽ、ゝ' _,.-;ノ:: |:::::::::::: ::::.. |
:.. ト ´ /.... 'ヽ,、_ >r' /:: /::::::::::::: ::: |
〉 .|:::::::::::...... `ー-‐'´,-/ /::::: / `ヽ、::: |
:.... .:::::::::::| |:::::::::::::::::,、-r―'''´ ̄ ,.-‐'´:::. / |:::::.... . |
::::::::::::::::::::::::::::::::| ',:::::::::::::∧ヾ V/―/::::::::::: / |:::::::::::.......:::. |
::::::::::::::::::::::::::::::::| ',:::::::::::ト kl /三/:::::::::: / ,'::::::::::::::::::::::: |
::::::::::::::::::::::::::::::::| ',:::::::::|ヾヾ|、 /::::::::: ,イ ,'::::::::::::::::::::::::: | |
::::::::::::::::::::::::::::::::| ',/ヽ__ヾ、|:::::: ∧/ /:::::::::::::::::::::::::: |.|.|
::::::::::::::::::::::::::::::::', ! / ヾ:: ∠__/ /:::::::::::::::::::::::::: | ||
0778デフォルトの名無しさん
2008/11/30(日) 12:04:27ってあるけど、これ地味にいいね
組み込みでもSTLコンテナとか使いやすくなる予感
0779デフォルトの名無しさん
2008/11/30(日) 23:24:37STLPortがコンパイル通るのも夢のまた夢だったり
0780デフォルトの名無しさん
2008/12/01(月) 00:18:37メモリアロケーション関係はいいのが多いね。
>>779
Embedded C++(笑)
0781デフォルトの名無しさん
2008/12/01(月) 18:32:39cin,coutとかどうするんだろ
0782デフォルトの名無しさん
2008/12/01(月) 18:38:57フリースタンディングとかでググれ。
0783デフォルトの名無しさん
2008/12/01(月) 21:19:00そういうことは初心者スレで
0784デフォルトの名無しさん
2008/12/07(日) 01:44:06JIS のHPにいったらPDFで閲覧できたんだが、こいつはスキャナかなんかで読み込んだのを
PDF化したものらしく、ろくに検索もできないんで、ほとんど使えない。
0785デフォルトの名無しさん
2008/12/07(日) 01:56:240786デフォルトの名無しさん
2008/12/07(日) 02:09:00ありゃひどいよな…。
検索できない電子文書とかただのバイト列だわ。
0787デフォルトの名無しさん
2008/12/07(日) 02:16:540788デフォルトの名無しさん
2008/12/07(日) 02:18:44なんで ISO の規格が見たくて JIS に取りに行ってんだ?
ISO のやつなら >1 のページにあるドラフトと Issue リスト見ればおおかた情報は揃うし、
検索もできる。
0789デフォルトの名無しさん
2008/12/07(日) 04:29:07訳した奴でさえ、多分意味分かってないんじゃないのかアレ。
0790デフォルトの名無しさん
2008/12/07(日) 06:26:030791デフォルトの名無しさん
2008/12/07(日) 06:28:42C++0xの規格もやっぱり有料なのかな。
0792デフォルトの名無しさん
2008/12/07(日) 08:06:29公的標準化機関の制定する規格書で無料のものの方が少ないんじゃね?
運営費も必要だし。全額寄付だと公平性に問題がって話になるし、全額税金だと
ある程度は受益者負担でって話が出てくると思う。
と思ったけど結構高いな、おい。
現行 C++ で JIS だと PDF がまだないけど、冊子で \17,325。PDF できても同額になると思われる。
ISO だと CHF 370,00 で 3万弱か?
ANSI だと $30.00 なのに。
一時期 $15 で売ってたはずでその時に買ったから高いという意識があんまりなかった。
0793デフォルトの名無しさん
2008/12/07(日) 11:28:46恨むならでかい規格作った方を恨んでください。
0794デフォルトの名無しさん
2008/12/07(日) 12:38:07おれはチャイニーズフランだと思う。
0795デフォルトの名無しさん
2008/12/07(日) 12:58:53Confoederatio Helvetia Franc
コンピュータ技術者ならお馴染みのフォント名が実はあの山国のラテン語名だったのね。
0796デフォルトの名無しさん
2008/12/07(日) 16:16:41ISOってC#とかは無償公開してたよなぁと思って調べてみたら
C++は今のところTR1だけみたいね。
ttp://standards.iso.org/ittf/PubliclyAvailableStandards/index.html
ttp://standards.iso.org/ittf/PubliclyAvailableStandards/c043351_ISO_IEC_TR_18015_2006(E).zip
雰囲気、C++0xもFreely Available Standardsに入るんじゃなかろうか。
0797デフォルトの名無しさん
2008/12/07(日) 16:21:060798デフォルトの名無しさん
2008/12/07(日) 19:15:35そいつはずっと前から >1 のリンク先でダウンロードできる。
0799デフォルトの名無しさん
2008/12/07(日) 22:13:110800デフォルトの名無しさん
2008/12/07(日) 22:23:32そこまで揃えろとは言わんけど、せめて一つぐらい買ってやれよ。
こんなC++の新規格追いかけてるようなプログラマなんだから、みんないい給料貰ってんだろ?
0801デフォルトの名無しさん
2008/12/07(日) 22:45:170802デフォルトの名無しさん
2008/12/07(日) 23:43:29ISOとANSI、二つ必要?
0803802
2008/12/07(日) 23:45:19INCITS+ISO+IEC+14882-2003.pdf
だけ持ってる。古いのもあるが、最新はこれだけ。
0804800
2008/12/08(月) 05:43:34それぞれの規格をとりまとめてる機関の運営費になってるハズ。
>>802
内容的には同じだから要らない。
ISOのほうが先行して発売してたから買っちゃったけどISO版は一番高いくせに糞。
ttp://ml.tietew.jp/cppll/cppll/article/10268
0805デフォルトの名無しさん
2008/12/10(水) 06:50:05あまり使い方わかってないけど、適当に4.4の新機能を使ってみた。
#include <iostream>
#include <vector>
template <typename T> auto f(T x) -> decltype(x*x)
{
return x*x;
}
int main ()
{
std::vector<int> x{1, 2, 3, 4, 5, 6, 7, 8, 9};
for (auto i = x.begin(); i != x.end(); ++i)
std::cout << f(*i) << std::endl;
return 0;
}
出力
1
4
9
16
25
36
49
64
81
0806デフォルトの名無しさん
2008/12/10(水) 07:47:42Dだと、
typeof(T*T) f(T)(T x) { return x*x; }
auto f(T)(T x) { return x*x; }
でいけるから、C++ももうちょっと頑張って欲しかったのに。
0807デフォルトの名無しさん
2008/12/10(水) 08:01:470808デフォルトの名無しさん
2008/12/10(水) 19:32:33それANSIじゃないの?
ここで買えるやつだよね。
ttp://www.techstreet.com/cgi-bin/detail?product_id=1143945
購入検討中
0809デフォルトの名無しさん
2008/12/11(木) 06:39:50iがイテレータだからだよな
パッと見だと分からないね
0810デフォルトの名無しさん
2008/12/11(木) 08:31:160811デフォルトの名無しさん
2008/12/13(土) 03:55:43って、一瞬なるよ。
0812デフォルトの名無しさん
2008/12/13(土) 08:09:010813デフォルトの名無しさん
2008/12/13(土) 08:29:41ならねえよ。
concept map InputIterator<int> {
typedef int value type;
typedef int reference;
typedef int* pointer;
typedef int difference type;
int operator* (int x) { return x; }
};
でさえ全然普通。begin(), end(), *iでiterだなって分かる。
0814デフォルトの名無しさん
2008/12/13(土) 10:40:45コンセプトマップ貼り付けられる組み込み型ってポインタだけでしょ?
0815デフォルトの名無しさん
2008/12/13(土) 11:25:20あまりイテレータをiって名付けてるソースはないと思う
itとかiteとかiterとかならよく見るが
>>814
んなこたない。組み込み整数型も関数型もいけるはず。
0816デフォルトの名無しさん
2008/12/13(土) 11:36:510817デフォルトの名無しさん
2008/12/13(土) 11:37:560818デフォルトの名無しさん
2008/12/13(土) 11:40:120819デフォルトの名無しさん
2008/12/13(土) 11:40:52スコープが狭くて使用頻度が高ければ1文字は基本ですよねー
0820デフォルトの名無しさん
2008/12/13(土) 12:30:300821デフォルトの名無しさん
2008/12/13(土) 14:04:54どっちにしてもiとかjとかnという変数を見たら整数だと思うよ
FORTRANerじゃないけど
0822デフォルトの名無しさん
2008/12/13(土) 14:13:260823デフォルトの名無しさん
2008/12/13(土) 14:16:340824デフォルトの名無しさん
2008/12/13(土) 14:55:42iotaからきてるはず。
だからC++0xには
void iota(Iter first, Iter last, T value)
なんて関数が<numeric>に入るんでしょ。
0825デフォルトの名無しさん
2008/12/13(土) 15:03:31卵から鶏が・・・とか思ってしまったんだぜ
0826デフォルトの名無しさん
2008/12/13(土) 20:52:23算術周りは後付でしょ
0827デフォルトの名無しさん
2008/12/13(土) 20:59:501800年代からの習慣だ
0828デフォルトの名無しさん
2008/12/13(土) 21:06:310829デフォルトの名無しさん
2008/12/14(日) 01:56:50ConceptG++で動いているコードだよ。
0830デフォルトの名無しさん
2008/12/17(水) 01:27:12_で始まらないのサフィックスは予約されてるし、identifierには違いないから
'_'+大文字や__でを含むのもダメなんだよね?
0831デフォルトの名無しさん
2008/12/17(水) 01:51:400832デフォルトの名無しさん
2008/12/17(水) 02:03:03literal operatorかliteral operator templateとして定義されている識別子ならOK
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2800.pdf
0833デフォルトの名無しさん
2008/12/17(水) 17:24:49嘘はよくないな
0834デフォルトの名無しさん
2008/12/24(水) 18:00:24concept B<typename T> {/*...*/}
concept D1<typename T> : B<T> {}
concept D2<typename T>{ requires B<T>; }
D1とD2って何が違うの?
0835デフォルトの名無しさん
2008/12/24(水) 19:18:36refine関係のあるconceptでも、concept_mapが自動生成されます。
0836デフォルトの名無しさん
2008/12/24(水) 20:01:36concept_map D1<Foo>{/*...*/}
だけでconcept_map B<Foo>も自動で作られるけど
D2の場合はそうならない
で合ってる?
てことはauto conceptの場合は全く同じでいいのかな
0837デフォルトの名無しさん
2008/12/24(水) 21:45:15implict conceptがどうしたこうしたと。
仕様書から読み取るのは結構大変なんで、
六人記名の紹介論文を熟読することをお勧めします。
とはいえ、酔っぱらってて、チャックしないで書いてるから間違ってたらゴメンネ。
上のは14.9.6だとあてずっぽうで書いときますw
0838デフォルトの名無しさん
2008/12/25(木) 03:18:02"JP-29. 例外クラスのUnicode対応" について。
現状の std::exception::what() に "Remarks" として以下の記述がある。
> The message may be a null-terminated multibyte string (17.5.3.2.4.3),
> suitable for conversion and display as a wstring (21.2, 22.2.1.4).
ちなみにこの記述は C++ 2003 でも今のドラフトでも変わってない。
Unicode とか関係無しに、ここの "may be" を "must be" にして、
"conversion" の具体的な方法を示してもらえばそれでいいような気がする。
たとえば mbstowcs() + std::wstring(wchar_t*) とか。それがあれば、
投げる側はその変換に合うように文字列を std::string に変換してやる
ことができる。
っていうか、そうしないと std::cerr << e.what() のようなごく自然なコードが
不正となってしまう。
0839デフォルトの名無しさん
2008/12/25(木) 08:55:41m17nしたければgettext()使えばいい。
0840デフォルトの名無しさん
2008/12/25(木) 11:34:01たとえばファイルが開けなかったときの例外を表示するときには開こうとしたファイル名が
表示されてほしいんだけど、投げる側で what() にファイル名が入るようにしてたら
gettext() に支障が出るんじゃない?
0841デフォルトの名無しさん
2008/12/25(木) 20:28:14この人らは何者なの?
最終ドラフトにこんなに要望したって通るわけないだろ
これ以上禿に日本の悪い印象与えるのやめて
0842デフォルトの名無しさん
2008/12/25(木) 21:31:50std::string、char*をUTF-8前提にしろとか言った奴は頭悪すぎ。
>>840
そういうことをwhat()に押し付けないで。
0843デフォルトの名無しさん
2008/12/25(木) 21:51:16機械振興会館でやってるから、情報規格調査会のWGに集まった人たち、って
ところだね。なんか変な香具師が混じったんだろ。
0844デフォルトの名無しさん
2008/12/25(木) 23:07:000845デフォルトの名無しさん
2008/12/25(木) 23:51:41C++0xに関する作業はもうISO/IEC JTC1のWGへ移ってる。
ここでは上がってきたドラフトに対して各国の代表 (national bodies) が
コメントを出し、それを受けて手直しして、最終版 (FCD) を作り上げる。
そしてそれを national bodies による投票に掛けて、通ればISO/IECの規格として成立する。
日本は情報処理学会というところがnational bodyとして出席していて、
>>838はそこの関係者。
0846デフォルトの名無しさん
2008/12/26(金) 00:02:35あんなのが日本代表の正式な意見書になるのか…
0847デフォルトの名無しさん
2008/12/26(金) 00:34:41ttp://www.itscj.ipsj.or.jp/meibo/MeiboIndex.html
0848デフォルトの名無しさん
2008/12/26(金) 00:37:52国際規格に対するJISの貢献は結構大きいよ。
本家WGに参加する日本人はまだ少ないけれど。
0849デフォルトの名無しさん
2008/12/26(金) 00:39:22「そういうこと」って何?
捜査対象ファイル名の表示を what() でやらないとして、ほかにどうするの?
0850デフォルトの名無しさん
2008/12/26(金) 00:45:44そういうのはローカルプラットフォームの規約や
コーディング規約でやってねってことになっているんじゃない?
少なくともMBSについては。
// WCSだとwstringパスに対するfstream APIが増えたけれど。
0851デフォルトの名無しさん
2008/12/26(金) 00:56:44完全にアプリ側だけで使うものならそれでもいいんだろうけど、
std::exception は標準の例外として bad_alloc やら ios::failure やら
stdexcept のやつらを同じ方法で扱うためのインターフェースとなるべきだろう。
そうでなければ、毎回 bad_alloc, ios::failure, ... の catch を分けて書け、とでも言うの?
0852デフォルトの名無しさん
2008/12/26(金) 01:05:51無理だろjkって空気だったよ、あの場でもさすがに。結局、コメントには残ったみたいだけど。
0853デフォルトの名無しさん
2008/12/26(金) 01:17:170854デフォルトの名無しさん
2008/12/26(金) 01:45:01std::stringにマルチバイドキャラクターストリング入れて悪いわけじゃないから、
やりたい奴は勝手にやればいい。ただそれだけ。
0855デフォルトの名無しさん
2008/12/26(金) 01:56:50だからさ、それじゃ「std::exception の what() を表示する」っていうコードが書けないじゃん。
今のドラフトじゃ
throw std::runtime_error("実行時エラー");
throw std::runtime_error(u8"実行時エラー");
の両方が黙ってコンパイルできてしまうし >838 にある "may be ..." にどちらも
違反しない。複数のライブラリを使ってたりすれば同じプログラム内で両方使われてる
可能性だって出てくる。 catch (std::exception const&) {...} 中でどうすりゃいいんだよ、
って話。
0856デフォルトの名無しさん
2008/12/26(金) 02:01:02標準の枠内で書きたければそうすればいいし、
枠からはみ出る必要があればそうすればいい。
> だからさ、それじゃ「std::exception の what() を表示する」っていうコードが書けないじゃん。
問題ない。表示されるかどうかは、
取り出してからどう扱うかと環境によるってだけ。
0857デフォルトの名無しさん
2008/12/26(金) 02:07:43> 標準の枠内で書きたければそうすればいいし、
「標準の枠内で書く」ということがどういうことか定まらないのが問題なんだろ。
> 問題ない。表示されるかどうかは、
> 取り出してからどう扱うかと環境によるってだけ。
「○○だと困る」って話をしてるのに「問題ない。○○ってだけ」とか、もうね。
0858デフォルトの名無しさん
2008/12/26(金) 02:10:43charには何を入れてもいい。
0859デフォルトの名無しさん
2008/12/26(金) 02:17:20「何を入れてもいい char の列を表示するコード」、ってバイナリダンプとか?
0860デフォルトの名無しさん
2008/12/26(金) 02:20:07localeとfacetで出来るよ。
0861デフォルトの名無しさん
2008/12/26(金) 06:31:00「真面目な部分」として「誤字の訂正」をあげるようなヤツに「頭悪すぎ」とか言われたくないなw
0862デフォルトの名無しさん
2008/12/26(金) 07:31:160863デフォルトの名無しさん
2008/12/26(金) 08:49:40人が読めるようにとかオーバーロードやテンプレート実体化ごとに区別付くようにとか
縛りがないとどうせマングリング名になるだろ
0864デフォルトの名無しさん
2008/12/26(金) 17:09:44JISにおけるC++規格って誰が使うの?
0865デフォルトの名無しさん
2008/12/26(金) 17:17:38templateも結構まともだった。
0866デフォルトの名無しさん
2008/12/26(金) 17:33:23boostもサポートされているようです。
0867デフォルトの名無しさん
2008/12/26(金) 17:45:13ぶっちゃけGCCからフロントエンドパクればいいだけじゃんとは思うんだけど。
なんか自作する理由があんだね。
0868デフォルトの名無しさん
2008/12/26(金) 17:55:49あれがないって事になると顧客を失う。
0869デフォルトの名無しさん
2008/12/27(土) 00:40:53こっちで話題になってるんですが"default constructed"って何なんでしょう
詳しい人いませんか
0870デフォルトの名無しさん
2008/12/27(土) 00:46:570871デフォルトの名無しさん
2008/12/27(土) 01:01:42"default constructed"された非クラス型が
value initializedされるのかdefault initializedされるのかが問題なんです
0872デフォルトの名無しさん
2008/12/27(土) 01:58:580873デフォルトの名無しさん
2008/12/27(土) 02:51:380874デフォルトの名無しさん
2008/12/27(土) 02:52:54するわけがない
0875デフォルトの名無しさん
2008/12/27(土) 08:59:56あ、NECもSXシリーズのためにコンパイラ作ってましたね。
スパコンのベンダはだいたいC++のコンパイラを作っている、と。
0876デフォルトの名無しさん
2008/12/27(土) 10:16:00void*でエエがな。リフレクションならtype_infoを継承してリフレクション情報
を混ぜたクラスをtypeidで返すように各ベンダがすればいいだけだし。
関数テーブルが標準で乗るような設計はC++の理念に反する。
0877デフォルトの名無しさん
2008/12/27(土) 14:53:09SXC++はtemplateが哀しいほど使えないぞ
complex<>も遅くて話にならないし
0878デフォルトの名無しさん
2008/12/27(土) 15:12:12templateで無理やりぶん回すこともなくなるのに
0879デフォルトの名無しさん
2008/12/27(土) 15:26:31あんまりプログラミング言語のこと知らないんだね。
0880デフォルトの名無しさん
2008/12/27(土) 15:43:41キミObject型を何につかってんの?
現C++はSmalltalkやObjective-Cの様にObjectクラスが
存在しないとオブジェクト生成すらままならないという訳じゃないんだけど。
0881デフォルトの名無しさん
2008/12/27(土) 15:49:43異常なくらいプリミティブ型へのサポートも厚い言語。
登場した時は恐れ入りました感があった。
今流行りの言語ではプリミティブ型コンテナの
ボクシング/アンボクシングが盛んだけど、
そのきっかけの一つになったと思っている。
C++は今のやり方を貫いて欲しい。
>>880
Objective-Cは、プリミティブ型のことは知りません、
Cで取り扱ってくださいって態度。
0882デフォルトの名無しさん
2008/12/27(土) 15:49:46多重継承時のトラブル対策のみ?
0883デフォルトの名無しさん
2008/12/27(土) 15:59:160884デフォルトの名無しさん
2008/12/27(土) 16:01:19SymbianやAndroidなど組み込み機器用のOOPとして現役だしね。
>>878みたいなことしても、客が逃げていくだけで何のメリットもない。
>>882
実装継承以外がinterface, trait, conceptになっただけで、
今は事実上多重継承ばかりかと。
0885デフォルトの名無しさん
2008/12/27(土) 16:10:08実装無しで継承って(笑)と思ってしまう。
interfaceなんかはあくまで、型システムによって機能しなくなった
メッセージングを補完する為だけの苦肉の策で、本来の継承とはかけ離れたよに思う。
0886デフォルトの名無しさん
2008/12/27(土) 16:15:54Mixinは実装多重継承との関わりがあると言っていいんじゃないの?
0887デフォルトの名無しさん
2008/12/27(土) 16:16:12されない
struct foo {
char bar[1000000]
}
が自動的に初期化されたらいやだろう
デフォルトコンストラクトは文字通り「何もしない」ので不定値が入る
0888デフォルトの名無しさん
2008/12/27(土) 17:05:410889デフォルトの名無しさん
2008/12/27(土) 17:09:20多重継承は仮想関数テーブルが複雑になって実装が面倒だからじゃね?
0890デフォルトの名無しさん
2008/12/27(土) 17:14:00そうか?見識が広がっていいと思うぞ。
C++とは真逆の言語だからね。
0891デフォルトの名無しさん
2008/12/27(土) 17:38:32invokeinterfaceやmixinでも同じだよ。
0892デフォルトの名無しさん
2008/12/27(土) 18:00:09問題は仮想継承辺りの扱いかもね。
0893デフォルトの名無しさん
2008/12/27(土) 18:04:360xなるんだから委員会も、もう少し強制するなりしろや。
コンパイル速度が遅くてかなわんぞ。
0894デフォルトの名無しさん
2008/12/27(土) 18:10:27コンパイル時間が一割ぐらい早くなるかもしれんが、exportによって、
今までできなかったことができるようになるとか、そういうことは一切ないから。
0895875
2008/12/27(土) 18:35:24実際に使ったことはないのですがw
情報ありがとうございます。
まあ、日立、富士通、NECといったスパコンベンダは
C++コンパイラを作っているのは事実、ということで。
0896デフォルトの名無しさん
2008/12/27(土) 18:58:54引用スレに書かれている通り、foo() の書き方だと0初期化だよ。その互換性の話をしているんだと思う。
0897デフォルトの名無しさん
2008/12/27(土) 19:26:09そんなにみみっちいかなぁ。
GCCのpragmaでやってるような、翻訳単位ごとにテンプレートのインスタンスが
発生するという事態は改善できるだろ。それから、ヘッダーの見通しもよくなるし、
STLの内部実相の為にベンダーが用意した__imp__comperなんて関数も取り込まなくて
済むようになる。(ファイルスコープが効く)
まぁ、実装が一つしか無いから机上の空論ではあるけどね。
0898デフォルトの名無しさん
2008/12/28(日) 19:34:04{
public:
int Method(int);
};
class Child:Parent
{
public:
using Parent::Method;
};
って感じのprivate継承とか
static using
{
struct
{
int a,b;
};
char c:
};
みたいな無名共同体。
int (Class::*member)=0;
の様なメンバー変数に対するポインタ(メンバー関数では無い)
なんて、使ってる人いる?むしろ使ったことある人いるか?
0899デフォルトの名無しさん
2008/12/28(日) 19:38:46無名共用体はC++ではあんまり使わないかもしれないけどCではよく使う
0900デフォルトの名無しさん
2008/12/28(日) 19:40:03それprivate扱いなの? 書き忘れ?
0901デフォルトの名無しさん
2008/12/28(日) 19:50:43C++のclassはアクセス指定を省けば
基本private。structはその真逆。
0902デフォルトの名無しさん
2008/12/28(日) 19:58:210903デフォルトの名無しさん
2008/12/28(日) 20:22:20自作インタープリタ上のオブジェクトを
C++のクラスに結び付けるテンプレートを書いた時に使ったことがある。
0904デフォルトの名無しさん
2008/12/28(日) 23:43:57リストの prev/next のどちらにも適用できる処理を書く際に使えたりする。
0905デフォルトの名無しさん
2009/01/01(木) 02:18:430906デフォルトの名無しさん
2009/01/01(木) 03:41:140907デフォルトの名無しさん
2009/01/01(木) 03:59:110908デフォルトの名無しさん
2009/01/01(木) 04:04:080909デフォルトの名無しさん
2009/01/01(木) 06:57:410910デフォルトの名無しさん
2009/01/01(木) 07:08:470911デフォルトの名無しさん
2009/01/01(木) 09:10:41だからあと2年猶予があるぞ
0912デフォルトの名無しさん
2009/01/01(木) 09:13:140913デフォルトの名無しさん
2009/01/01(木) 10:13:300914デフォルトの名無しさん
2009/01/01(木) 16:07:460915デフォルトの名無しさん
2009/01/01(木) 16:14:380917デフォルトの名無しさん
2009/01/01(木) 23:25:070918デフォルトの名無しさん
2009/01/02(金) 07:47:47gcc 4.3 以降を入れれば今すぐにでも。
0919デフォルトの名無しさん
2009/01/04(日) 03:38:53と
constexpr int n2 = 10;
って何が違うの
0920デフォルトの名無しさん
2009/01/04(日) 03:42:530921デフォルトの名無しさん
2009/01/04(日) 13:49:480922デフォルトの名無しさん
2009/01/04(日) 13:58:070923デフォルトの名無しさん
2009/01/04(日) 14:25:05ダラダラと逐次的な初期化コードや
それを含む初期関数を書く必要がなく、
データを宣言的に書ける。
0924デフォルトの名無しさん
2009/01/04(日) 21:38:33kwsk... constexpr って(有る程度複雑な)計算結果が定数として扱えるように
なるとしかわかってないんですが、それがデータが宣言的にかけるとは
どういうことでしょう?
0925923
2009/01/04(日) 23:00:490926デフォルトの名無しさん
2009/01/17(土) 16:51:590927デフォルトの名無しさん
2009/01/17(土) 17:47:05ネタがない
0928デフォルトの名無しさん
2009/01/17(土) 21:06:050929デフォルトの名無しさん
2009/01/17(土) 21:30:100930デフォルトの名無しさん
2009/01/17(土) 21:38:23ConceptGCCは相変わらずグダグダだし
普通に使えるようになるまではまだまだかかりそうね
0931デフォルトの名無しさん
2009/01/17(土) 21:40:42autoとか超欲しいんですけど。
0932デフォルトの名無しさん
2009/01/17(土) 21:58:00> ConceptGCCは相変わらずグダグダだし
中の人は去年はMPI.NETやっていたみたいで、
ConceptGCC Developer's Blogもほとんど更新してないね。
寄付でMSに釣られちゃったんじゃないことを祈る。
0933デフォルトの名無しさん
2009/01/18(日) 02:50:110934デフォルトの名無しさん
2009/01/18(日) 07:53:31javac.infoの中の人は、
MS Researchいっちゃったしね。
0935デフォルトの名無しさん
2009/01/18(日) 08:15:240936デフォルトの名無しさん
2009/01/18(日) 09:03:05Conceptはむしろ流行る。
他の言語にも伝染すると思う。
Template並みのムーヴメント(笑)かと。
既にあるHaskellは除いて。
0937デフォルトの名無しさん
2009/01/18(日) 11:12:06こんなのも明示的に指定しなきゃならないのかよ感が漂う
0938デフォルトの名無しさん
2009/01/18(日) 11:26:230939デフォルトの名無しさん
2009/01/18(日) 11:37:35そんなの流行るにきまってるじゃん。
0940デフォルトの名無しさん
2009/01/18(日) 14:06:270941デフォルトの名無しさん
2009/01/18(日) 17:37:35そんなの流行るにきまってるじゃん。
0942デフォルトの名無しさん
2009/01/18(日) 18:00:39マクロなしでmax(a,b)を書ける機能のことも忘れないであげてください
0943デフォルトの名無しさん
2009/01/18(日) 18:07:45今までやっていたとおりマクロで十分じゃないかって意見も多かったよ。
#define List(T) \
class List_##T ...
ってのをtemplate以前にやってたから。
0944デフォルトの名無しさん
2009/01/18(日) 18:08:29代わりに、ユーザ定義シンタックスとか入れれば流行るだろうに、
コンパイラベンダが許さないんだろうなあ。
0945デフォルトの名無しさん
2009/01/18(日) 18:09:580946デフォルトの名無しさん
2009/01/18(日) 20:20:54多くのフラットフォームに対応するのには便利だよね
0947デフォルトの名無しさん
2009/01/18(日) 20:27:230948デフォルトの名無しさん
2009/01/18(日) 20:32:340949デフォルトの名無しさん
2009/01/18(日) 20:45:21コンパイル時の機能制限とか、環境依存のインラインアセンブラ切替とかAPI呼び出しとか、どうすんだ?
0950デフォルトの名無しさん
2009/01/18(日) 20:55:450951デフォルトの名無しさん
2009/01/18(日) 20:57:03その辺は、D言語ですでにマクロなしで実現されている
0952デフォルトの名無しさん
2009/01/18(日) 21:04:410953デフォルトの名無しさん
2009/01/18(日) 22:49:05コンパイラのバグや処理系ごとの違いの吸収もマクロでやってるんだから
マクロを不必要にするための言語側の機能にバグや処理系ごとの違いがあると...
マクロぐらい簡単な代替が必要
ちなみにDのことはよく知りません
0954デフォルトの名無しさん
2009/01/18(日) 22:52:05いや、こんくらい調べろよ・・・。
ttp://www.kmonos.net/alang/d/2.0/version.html
0955デフォルトの名無しさん
2009/01/18(日) 23:03:00一歩ずつ、着実に。
C++1xでは#includeの後継が欲しい。
0956デフォルトの名無しさん
2009/01/18(日) 23:06:510957デフォルトの名無しさん
2009/01/19(月) 00:26:220958デフォルトの名無しさん
2009/01/19(月) 00:44:59何でわざわざ改良してくんだか、腐った料理にホイップしても食えるようにはならんべよ
0959デフォルトの名無しさん
2009/01/19(月) 00:52:52全体として見ればますます複雑になっているだけだ。
0960デフォルトの名無しさん
2009/01/19(月) 00:53:510961デフォルトの名無しさん
2009/01/19(月) 00:58:480962デフォルトの名無しさん
2009/01/19(月) 01:02:480963デフォルトの名無しさん
2009/01/19(月) 01:21:35そんなことはないぞ。
0964デフォルトの名無しさん
2009/01/19(月) 01:27:44作り替え続けて互換性地獄を招くか(D、各種LL)
変化をやめて引きこもるか(C89)
どれがいいんだろうね
0965デフォルトの名無しさん
2009/01/19(月) 01:29:050966デフォルトの名無しさん
2009/01/19(月) 09:39:13C++:フグ刺し
Java:フランス料理
LL:日替わり定食
0967デフォルトの名無しさん
2009/01/19(月) 23:57:330968デフォルトの名無しさん
2009/01/20(火) 00:01:20その能力を向上させつつ柔軟性を増しており、素晴らしいと思う。
まあ、C++ はどちらでも一番ではないわけで、真の需要は高機能アセンブラとしてのものだろうけど。
0969デフォルトの名無しさん
2009/01/20(火) 01:41:34そう考えると、いかに間抜けな次規格ってなもんだよな。
0970デフォルトの名無しさん
2009/01/20(火) 02:08:11なんか「コンパイル時決定性」を損なうような変更入ったっけ?
スレッドとか?
0971デフォルトの名無しさん
2009/01/20(火) 02:21:34規格はどんどん無駄な抽象化の方向に進んでるからな
隠れて何かをコソコソやる機能はいい加減やめて欲しい
コンセプトマップとかどう考えても不可解なバグの温床になるとしか思えないから消えてくれ
0972デフォルトの名無しさん
2009/01/20(火) 02:49:19抽象化を理解できないお前がバグの温床かと。
0973デフォルトの名無しさん
2009/01/20(火) 07:33:050974デフォルトの名無しさん
2009/01/20(火) 07:38:040975デフォルトの名無しさん
2009/01/20(火) 08:46:270976デフォルトの名無しさん
2009/01/20(火) 09:08:52アセンブラとしてってことなら実行時の話だろ?
動的メモリを隠れてコソコソってのが嫌というなら分かるが、
コンセプトマップは関係なくね?
0977デフォルトの名無しさん
2009/01/20(火) 10:11:150978デフォルトの名無しさん
2009/01/20(火) 11:20:43テンプレート削るとか問題外だろ
さっさと滅びればいいと思う
0979デフォルトの名無しさん
2009/01/20(火) 11:28:120980デフォルトの名無しさん
2009/01/20(火) 11:40:02OOも削ってくれ。
0981デフォルトの名無しさん
2009/01/20(火) 19:50:50#define loop(n) __loop(n)->*[&]
class __loop{
unsigned int times_;
__loop(unsigned int u) : times_(u){}
void operator ->*(std::reference_closure<void()> &block){ while(times-->0)block(); }
};
int main()
{
int x = 0;
loop(100){
++x;
}
}
どう思う?
0982デフォルトの名無しさん
2009/01/20(火) 19:51:510983デフォルトの名無しさん
2009/01/20(火) 19:55:37いったいどうやったらコンセプトがメジャーになれるのか、はなはだ憂慮すべき一例ではある。
0984デフォルトの名無しさん
2009/01/20(火) 20:04:350985デフォルトの名無しさん
2009/01/20(火) 20:50:44仕様だけ決まってどうする。
c++/CLIを思い出すよな!
0986デフォルトの名無しさん
2009/01/20(火) 20:57:070987デフォルトの名無しさん
2009/01/20(火) 20:58:230988デフォルトの名無しさん
2009/01/20(火) 21:30:120989デフォルトの名無しさん
2009/01/20(火) 21:33:42public 強制で virtual も = 0 も書かなくても純粋仮想関数になって
仮想デストラクタが自動的に作成されるやつ。
0990デフォルトの名無しさん
2009/01/20(火) 21:35:570991デフォルトの名無しさん
2009/01/20(火) 21:54:57>>992 よろ。
============================================================
C++0x 5
============================================================
The C++ Standards Committee
http://www.open-std.org/jtc1/sc22/wg21/
wikipedia
http://ja.wikipedia.org/wiki/C%2B%2B0x
C++0x
http://pc11.2ch.net/test/read.cgi/tech/1149440647/
C++0x 2
http://pc11.2ch.net/test/read.cgi/tech/1191842951/
C++0x 3
http://pc11.2ch.net/test/read.cgi/tech/1204808027/
C++0x 4
http://pc11.2ch.net/test/read.cgi/tech/1214407525/
0992デフォルトの名無しさん
2009/01/20(火) 21:58:00個人的には、テンプレートのエラーメッセージがまだましになる機能として有望視している。
0993デフォルトの名無しさん
2009/01/20(火) 22:18:30conceptで我慢しなさい。
0994デフォルトの名無しさん
2009/01/20(火) 23:07:080995デフォルトの名無しさん
2009/01/20(火) 23:07:380996デフォルトの名無しさん
2009/01/20(火) 23:11:19http://pc11.2ch.net/test/read.cgi/tech/1232460649/
ほいな
0997デフォルトの名無しさん
2009/01/20(火) 23:13:130998デフォルトの名無しさん
2009/01/20(火) 23:16:050999デフォルトの名無しさん
2009/01/20(火) 23:16:381000デフォルトの名無しさん
2009/01/20(火) 23:17:1110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。