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


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

C++0x 4



1 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:25:25 ]
The C++ Standards Committee
www.open-std.org/jtc1/sc22/wg21/

wikipedia
ja.wikipedia.org/wiki/C%2B%2B0x

C++0x
pc11.2ch.net/test/read.cgi/tech/1149440647/
C++0x 2
pc11.2ch.net/test/read.cgi/tech/1191842951/
C++0x 3
pc11.2ch.net/test/read.cgi/tech/1204808027/

2 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:32:12 ]
おつconcept

3 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:42:23 ]
糞スレたてんな

4 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:42:50 ]

さて0bについて熱く語ろうか

5 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:15:26 ]
[&](){} キモイスレはここですか?

6 名前:これもいれてくれよ!>>1 mailto:sage [2008/06/26(木) 01:31:04 ]
mailing 2008
www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/

Status of Experimental C++0x Support in GCC 4.3
gcc.gnu.org/gcc-4.3/cxx0x_status.html
ConceptGCC
www.generic-programming.org/software/ConceptGCC/

Boost
www.boost.org


7 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 06:13:54 ]
>>1

8 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 10:41:40 ]
おつ

9 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 14:14:55 ]
#undef __cplusplus0x

10 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 14:19:20 ]
undefされちゃった(´・ω・`)



11 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 15:18:41 ]
前スレの最後でreflectionの話が出ていたが、
俺はHaskellみたいなオペレーター定義(優先順位指定付)が欲しい。
Parser Combinatorの中間記法的記述が羨ましい。

12 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 20:31:13 ]
>オペレーター定義(優先順位指定付)
どう考えても罠が増えるだけです
本当にありが(ry

俺はパターンマッチングが欲しいな

13 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 20:42:53 ]
優先順位の指定はD&Eで否定していたな。

14 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 20:50:23 ]
いつまで0xなんだろうな

15 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 21:25:28 ]
>>11, 12
なんでC++にしがみついてんのよ?


16 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 21:33:27 ]
リリースが2010年以降にずれ込んだら C++1x XD

17 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 21:35:51 ]
よく言われるが、2015年までセーフ

18 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 22:03:24 ]
n2601を使えば2059年までおk

19 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 22:48:16 ]
C+++ でいいじゃん

20 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 23:07:34 ]
そんな演算子はない



21 名前:11 mailto:sage [2008/06/27(金) 00:12:36 ]
>>15
面白い機能が次々に入るので。

義理の父に、これ飲め、あれ食えとなかなか帰して貰えないけど、
どれも美味しいから嬉しいやら哀しいやらで、困っている状態。


22 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 00:19:21 ]
>>20
そこで>>11です。

+++はparser combinatorではCHOICEに使われることが多いです。

How to build a monadic interpreter in one day
www.haskell.org/sitewiki/images/c/c6/ICMI45-paper-en.pdf

23 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 12:32:26 ]
>>12
結局operator overloadも言われたいたほど
むちゃな使い方はされてないしなあ。
そういうライブラリもあるけど、現実問題として流行ることはない。
むしろ定義できないからBoost Xpressiveなんかわけわからなくなってる。

24 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 21:02:47 ]
ユーザ定義オペレータなんか認めたら文法をBNFで定義できなくなってウザいからだろ
単に規格書著者とコンパイラ実装者の都合

25 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 21:40:30 ]
Algol68がやってたんだが、文法が難解な2段階定義になったり大変だったらしい

26 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 23:47:48 ]
C++のソースを読んでユーザ定義オペレータに対応したコンパイラを生成するコンパイラコンパイラをつくれば…

27 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 00:03:06 ]
ユーザ定義オペレータを少し変更するたびにコンパイラをリビルドするんですね、わかります

28 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 00:06:33 ]
そんなものより、生成されるプログラム自体にコンパイラを入れて、
evalが使えるようにするほうが、よっぽどマシで実用的だ。

29 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 00:15:06 ]
ユーザ定義オペレータを導入するとしたら、
usingとかでスコープにユーザ定義オペレータがロードされた場合、
文法が変わっちゃうのかな。気持ち悪いな。

30 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 00:15:59 ]
>>28
それなんてスクリプト言語w



31 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 00:33:46 ]
>>30
今日ではスクリプト言語に限らず、実行時に生成したコードをコンパイルして何かするってことは行われてるよ。

たとえば、.NETではクラスオブジェクトをXMLとして出力する時に、
型ごとにC#のコードを生成してそれをコンパイルして使ってる。

32 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 00:34:15 ]
つかRuby最強すぎる

33 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 00:40:30 ]
オブジェクト指向アセンブラC++には関係のない話だな

34 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 01:08:04 ]
>>31
生成したユーザプログラムに、C++コンパイラ(言語解釈器)が内蔵されるとでもいいたいのか。
なんでC#なんて例を持ち出すんだ。天才なのか馬鹿なのかどっちだろ

35 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 01:12:03 ]
別に内蔵しなくても共有ライブラリとして配布すればいい

36 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 01:22:10 ]
ふむ。中間コードと動的実行ランタイム化したC++になるわけだな。
……それ、既にC++である意味ねえだろw

でもC++でevalって凄く変態的発想で素敵だとは思います。
実現したら惚れる

37 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 01:25:22 ]
>>36
いや、.NETの例が出ただけで中間コードとは何も関係ないだろ。
単純にいうと、プログラムにGCCを同梱すればいいだけの話。

38 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 01:28:58 ]
醤油噴いた

39 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 02:13:00 ]
噴いて正解。

40 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 02:28:24 ]
実行コードにGCC含むってのも、もしかすると天才的発想なのかな。
実行の度に同梱されたGCCがネイティブコード出力とか
どんだけ富豪プログラミングだよ

だが、それさえ工夫すれば実用に耐える時代は目の前に迫ってるのかもしれないな。
着想はLLVM方面かな?



41 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 02:37:29 ]
実行時にプロファイルを見てネイティブコードを最適化というのは常識になりつつあるしね

42 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 02:39:26 ]
>>36
おいらはセンス0だと思って、皮肉で書いたのだが。
ただ、evalとラムダ式との相性には多少興味持てたが。

道具は使い分け。問題ごとに道具をうまく使い分けるユーザが最強。
盲目的にRuby最強とか(C++最強とか)言ってるやつは、ゆとり

43 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 02:40:16 ]
>>42
おいらってお前誰だよ。

44 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 02:46:38 ]
evalの型はどうなるんだ

45 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 02:50:27 ]
uniqe_ptr<void>

46 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 02:54:42 ]
>>44
そこはテンプレートメタプログラミングでなんとかしよう

47 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 03:22:12 ]
静的なevalとか
何につかえるかはわからん

48 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 03:25:37 ]
Variantでいいじゃない

49 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 16:08:43 ]
新スレ早々下らん話題だな
下等なインタプリタ言語の機能なんぞいらん

50 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 16:22:36 ]
動的コンパイルとインタプリットを同じにされては困る。



51 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 16:47:44 ]
Post-Sophiaな6月号来ないなー。

52 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:09:12 ]
>>49
上下間違えてます

53 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:35:07 ]
ついにプログラムが自身を書き換える時代が来たんだね

それにしてもRuby最強杉・・・

54 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:50:32 ]
C++ nazo mondaigai(pgr

55 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 19:01:00 ]
Bjarne Stroustrup
Programming: Principles and Practice Using C++
www.amazon.com/gp/product/0321543726/

だって。

56 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 20:12:58 ]
まぁ順当に分厚いね。

57 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 20:17:48 ]
1000ページか…
和訳でたら買ってもらおう。

58 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 21:29:42 ]
俺のママは買ってくれるかなぁ

59 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 21:33:09 ]
新しいパパを見つけて買ってもらおう

60 名前:デフォルトの名無しさん [2008/07/03(木) 07:19:03 ]
www.open-std.org/jtc1/sc22/wg21/
News 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.



61 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 08:22:58 ]
説明が二重否定になっとる。

62 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 09:56:36 ]
単語は分かるのに意味が分からない

63 名前:デフォルトの名無しさん mailto:sage [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の話禁止。


64 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 16:36:45 ]
そういうことか。ありがとう。

65 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 22:34:29 ]
copy_ifの話はいいですか?

66 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 23:59:01 ]
double negativesて何?

67 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 00:07:41 ]
おすぎとピーコ

68 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 01:06:07 ]
>>67
正解

69 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 02:00:37 ]
わろた

70 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 03:34:28 ]
iotaって何に使うんだろ?

等差数列・・・には使わないよなぁ



71 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 07:45:31 ]
初心者スレで聞きなよ。

72 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 09:31:48 ]
APL のιだろうね。
for (i = 0; i < N; ++i) の抽象化でそ?

73 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 11:48:06 ]
index generator の i からきてるらしいけど、
こういう妙な略字やめて欲しいなぁ。

.NET Framework 3.5 の同様の機能は
Enumerable.Range って名前なんだけど。

74 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 13:25:22 ]
>>71
itoaじゃないよ?

75 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 13:51:46 ]
その名前は決定事項なのか…
「イオータ」から連番を代入する機能だって想像できるわけないじゃん。あほらしい

76 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 13:54:19 ]
>>73
Rangeは名前の通りRangeを生成するだけで、コピーの作業まではやってくれないぞ。

77 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 15:09:29 ]
>>73
>>75
ttp://cpplover.blogspot.com/2008/07/c0x9iota.html


int i = 1;
std::generate(first, last, [i] () mutable { return i++; });

ラムダ式は適当だけど、これじゃだめなのかな。
あった方が便利だろうけど。

78 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 15:20:38 ]
普通にインクリメントしたら挿す値が1増えるようなイテレータがあればいいだけなんじゃないか。

79 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 15:28:23 ]
>>75
じゃあおまえはλ式ときいて意味が分かるのか?

80 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 15:48:06 ]
ソース上にlambdaなんてないじゃん。



81 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 15:53:01 ]
#include <boost/lambda/lambda.hpp>

あるじゃん。

82 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 15:54:24 ]
誰がboostの話をしてる

83 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:05:58 ]
関数名はもっと説明的にしろって話だろ

84 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:39:54 ]
initializeContainerBySequencialNumber()ですか

iotaでいいや

85 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:45:14 ]
sequenceとかでいいんじゃねえの。

86 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:52:20 ]
atoiの逆関数だろ>iota

87 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:56:47 ]
>>86
みんな言おうと思っても言わなかったのに…

88 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 17:02:27 ]
>>86
フカクニモワロタ

89 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 17:17:42 ]
APL由来らしいけど、Lispで数列的な操作によく使うよ?>iota

90 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 17:33:51 ]
iota_iteratorがほしい



91 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 19:01:16 ]
>>76
C++ は GC 機能持ってないくて
戻り値でオブジェクトを返すコスト高いからそういう仕様になってるだけで、
コピー作業の有無は本質じゃないのでは。

>>89
いや、マイナーな言語はマイナーな命名規則でやってくれてもいいんだけど、
大衆が使う言語で変な名前使われると初心者が寄り付かなくなるぞ。
indexe generator → i → ι
なんて誰が想像するんだよ。

92 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 19:05:17 ]
Lispがマイナーとな

93 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 19:08:29 ]
C++もLispも同じくらいマイナーですよw

94 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 19:11:37 ]
>>92
あ、いや、知名度はあるな。
なんだろ、マニア向け言語。

95 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 19:11:38 ]
>>90
それなんてboost::counting_iterator?

96 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 19:23:18 ]
counting iterator があるのにわざわざ iota の名前を取ろうとする C++ に絶望した

97 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 21:14:30 ]
「STLによるコンポーネントデザイン」(2000年)って本にiotaって紹介されてたけど。
copy_ifと同じようにSTLに(当時)存在しないアルゴリズムとして。

98 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 22:36:12 ]
>>90
つ concept_map InputIterator<int> {
 typedef int value_type;
 typedef int reference;
 typedef int* pointer;
 typedef int difference_type;
 int operator*(int x) { return x; }
};

99 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 22:37:32 ]
> InputIterator
< ForwardIterator

100 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 08:27:34 ]
C++0xでダックプログラミングなんて本でないかなぁ。
別にダックプログラミングだけじゃなくてもいいけど



101 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 12:11:53 ]
APLがマイナーとな?

102 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 12:17:06 ]
duck typingじゃないのか。

103 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 12:50:44 ]
>>101
シェア的にはマイナーだろ

104 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 12:53:16 ]
アヒル思考プログラミング

105 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 13:12:27 ]
>>101
正直、APLはマイナーだと思う。w

106 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 14:24:43 ]
STLが影響受けてる言語だけどな。

107 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 17:11:06 ]
>>106 を読むまで apache portable library の話をしていると思ってたらそれも APR でした\(^o^)/

108 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 17:12:24 ]
ここまでアイオタの話無し

109 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 17:13:42 ]
アイダホ?

110 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 19:51:36 ]
>>106
それはAdaじゃないの?



111 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 19:52:29 ]
いろんなものの影響を受けてるんですよ

112 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 20:47:53 ]
言語やライブラリの設計者は言語マニアなことが多いから
メジャーなライブラリが影響を受けているからといって、
その言語がメジャーとは限らない。

113 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 23:54:24 ]
>>110
Adaは最初の実装言語ですよ。
まともなgenericsのあった数少ない言語だったから。
設計に関してはAPL, FP, Lisp, pure functional, CLU, smalltalkの影響が大きい。

114 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 23:55:49 ]
SIMULA のことも忘れないでください

115 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 08:10:28 ]
志村後ろ

116 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 11:38:33 ]
DVDでるね。

117 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 14:14:12 ]
>>113
言語拡張を最低限にとどめて何とかなる関数型言語
# 簡単じゃん, 作ってしまえや
言語拡張しようとすると数年がかりになる手続き型言語
# いあ, それは, まだコンセンサスが…
って, 理解でいいのか?


118 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 02:51:25 ]
何故極端な単純化で物事を理解しようとするのかわからん。

119 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 03:02:52 ]
再帰使いまくりでスタックぶち壊す関数型言語と
副作用使いまくりでデータぶち壊す手続き型言語ですね、わかります

120 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 08:02:55 ]
>>118
馬鹿が「俺はもうわかっている」と思うための唯一の方法だからでは。



121 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 08:13:03 ]
>>119
つ proper tail recursion

122 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 11:28:47 ]
今度は終わらない末尾最適化関数で時間をぶち壊すんですね

123 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 11:31:32 ]
>>122
頭悪そう…

124 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 11:35:55 ]
要するに頭の悪い人は何も書けないという話

125 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 12:02:56 ]
>>124
それは中途半端に頭がいい人。

頭の悪い奴は気軽に書いて、しっかりぶち壊す。

126 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 12:42:02 ]
>>125
書けないというのは、書き方に悩んだりして手が出せないという意味ではなく、
まともな物を書けないという意味ね。

127 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 01:44:59 ]
再帰は悪と教え込まれてきたC系プログラマが
今更まともにラムダ式を使いこなせるわけがないということですね、わかります

128 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 01:52:07 ]
Fortran じゃあるまいし、そんなこと教える奴いねーだろ

129 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 02:46:46 ]
えー
「再帰はスタックを壊すので、出来るだけループに書き換えましょー」って習うじゃん
書き換えの練習問題とかお約束じゃん

最近は違うの?

130 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 02:50:37 ]
いまどき再帰でスタックを「壊す」とは珍しい環境だな。
エラーになるとか、無闇に重くなるとかが普通だろ。



131 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 02:53:04 ]
>>129
「出来るだけ」ってことは暗に「出来ない」ケースでは使えってことでは?
つか、再帰が悪とかってレベル低すぎでしょ。w

132 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 03:14:57 ]
珍しくレベルが低い話しですね

133 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 07:14:34 ]
>>129
何歳なんだおまえは。50歳ぐらいか?

134 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 07:38:15 ]
>>130
末尾コールしをジャンプにしてるだけじゃん

関数型言語だと結構普通にやってるみたいだけど、CとかC++で
末尾以外の再帰をループに展開する奴ってあるの?
# アッカーマンとか、タライとか………


135 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 07:41:29 ]
アッカーマン関数をループに展開する関数型言語なんてない。


136 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 07:56:08 ]
タライってなんだ?調べても盥しかでてこねーぞ

137 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 07:59:22 ]
>>136
たらいまわし関数で調べなおせ。

138 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 08:00:05 ]
たらいまわし関数で google よろし

139 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 08:26:47 ]
出てきましたーぞ。ありがとうございましたーぞ。

140 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 10:09:15 ]
>>135
手元にある sbcl でオプティマイズかけたら loop に展開したぞ
lisp は関数型じゃないと言われればそれまでだが…




141 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 10:20:41 ]
>>129
最近のことは知らんが
俺の世代もそうだったから言いたいことはよく分かるw

再帰テンプレートで終端条件の特殊化を書き間違って
しばらく帰ってこなくなったりしたときに、ふと当時を思い出して和む

142 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 10:36:40 ]
Ackのループ化は末尾だけ(>>134)でしょ。
それともスタックや継続使って、
第一引数も第二引数も0じゃない時をループ展開してるの?

143 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 13:17:34 ]
VC++2008 SP1日本語packはいつでんの?

144 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 13:21:28 ]
>>143
ここは C++ スレじゃなくて、 C++0x スレですよ。

145 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:39:42 ]
日本語版でも TR1 が欲しいということでしょ。
TR1 は 0x じゃないという主張なら分からんけど。

146 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 23:51:02 ]
末尾再帰はVCでもGCCでもループに変換するよ

147 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:20:18 ]
>>146
末尾再帰の展開は末尾コールのジャンプ変換と等価


148 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:27:02 ]
>>146
末尾コールのジャンプ変換とループへの変換との違いは?

149 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:28:42 ]
>>147

150 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:29:55 ]
>>142
> 第一引数も第二引数も0じゃない時をループ展開してるの?

中間表現に CPS 使うと分岐/呼び出しが末尾コール
に変換可能なので最終的にループになるらしい

詳細は識者に聞いて




151 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:30:27 ]
gcc(たぶん4とかから)には末尾再帰の最適化を明示的にコンパイラに指示するオプションがあるらしいよー

-foptimize-sibling-calls
Optimize sibling and tail recursive calls.


152 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:38:22 ]
>>148
> 末尾コールのジャンプ変換とループへの変換との違いは?
ジャンプ先が別のルーチンか呼自分の内部かの違いに過ぎないだろ?
アセンブラやってる奴ならみんな使ってると思うんだが…


153 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:40:17 ]
>>152
編集ミス
x …が別のルーチンか呼自分の…
o …が別のルーチンか自分の…


154 名前:152 mailto:sage [2008/07/12(土) 00:46:52 ]
補足
つっても, 戻り番地スタックに積む程度のコストみたいだが


155 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:48:33 ]
GCC 3.4.4で

f(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

でした

156 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:51:35 ]
>>150
継続スタイルに変換できるのはしってるよ、そんなの常識。
CPSを中間表現に使っているコンパイラも、
オブジェクトコードの生成ではCSP止めてます。
再帰スタックの代わりに、継続の入れ子を持ち運ぶのはとても効率が悪いので。
まともな処理系でAck関数をループや継続に変換して実行するものはないでしょ?
お遊びや学習用ってことなら俺も書いたことがあるけれど。


157 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:52:25 ]
>>155
こんなのコンパイルしてみ
int f(...){return ...;}
int g(...) {return f(...);}
おそらく g() の最後は call f になると思う


158 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:54:04 ]
>>157
gccがやるのは自己再帰の関数内ジャンプだけじゃないの? > おそらく

159 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:57:24 ]
>>157
それはインライン展開すべきなの?

160 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:59:19 ]
>>156
CL-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)
;;; 続く




161 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 01:00:53 ]
;;; 続き 1/2
CL-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


162 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 01:02:22 ]
;;; 続き 2/2 技と1行だぶらせてある
; 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>


163 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 01:05:57 ]
Common Lispは使いたくないな

164 名前:デフォルトの名無しさん [2008/07/12(土) 01:28:52 ]
>>163
ほっとけ、Lisp は俺の電卓だ


165 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 01:32:00 ]
>>164
最近電卓はPythonに宗旨替えしました

166 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 01:40:14 ]
俺の電卓はRuby

167 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 04:06:59 ]
そこはウソでもよいから「俺の電卓はC++コンパイラ」と書くべきだろ・・・スレ的に考えて

168 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 04:14:48 ]
テ、テンプレート!


169 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 07:41:25 ]
じゃあ俺の電卓はghostscript

170 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 12:09:16 ]
俺の電卓はgoogle マジで



171 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 13:48:43 ]
俺の電卓は電卓

172 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 13:51:02 ]
calc.exeで十分

173 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 15:00:26 ]
>167
小数計算ができませn! ><

174 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 15:25:10 ]
本物のC++プログラマは、ジョブをこなすのに、実行時プログラミングをまったく必要としない。
彼らはキーパンチャーと規格準拠なC++0x コンパイラ、そしてアニメがあれば完璧に幸福になれるのだ。

本物のプログラマはテンプレートで整数値演算をする。
本物のプログラマはで固定小数点数演算をする。
本物のプログラマはテンプレートでIEEE754の単精度演算を必要ならば'実装する。
本物のプログラマは倍精度演算をテンプレートとコンパイラの64bit整数型でする。

もしテンプレートで出来なければ、プリプロセッサでやる。プリプロセッサで出来なきゃ、それはやる価値がないのだ。

175 名前:デフォルトの名無しさん mailto:sage [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));
}

たった数行なのに何が起こるか想像できないのは、おれだけ?
大学の時、再帰で書けばエレガントになる、ループで書くのは素人、と刷り込まれたので
再起が出てくるたびに自分はセンスがないと思わされた苦い思い出。

176 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 18:33:13 ]
おまえだけ。
わからないことを自慢しなくていいよ

177 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 18:38:27 ]
引数評価の順番がわからんので俺もどう動くか想像できない

178 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 23:37:27 ]
>>177
別に副作用ないんだから引数評価の順番は結果に関係ないだろう

179 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 15:25:45 ]
計算量の例題という趣旨から外れるが、
再帰定義がなぜわかりにくいかがよくわかる例だなと思った。
筋のいいやつは数学的定義がそのまま書けるようなメリットがあるが、ほんの一握りだなと
アプリとか分析エンジンとか作ってて感じる。


180 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 16:00:59 ]
ただ>>175はループに書き直すと更にわけわからなくなる気がする。



181 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 16:06:24 ]
しかしD言語ではたらい関数もコンパイル時に評価できるのに、
0xのconstexprはほんとがっかりだなあ。

182 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 17:57:38 ]
>>181
関数が提唱された本来の趣旨を考えると、コンパイル時にたらいをまわしても
意味ないような気がするんだが、気のせいか?


183 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:02:33 ]
コンパイル時に
int tarai(int x, int y, int z){return x<=y ? y<=z ? z : x : y}
に最適化して欲しいって話だろ

184 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:03:40 ]
違った
int tarai(int x, int y, int z){return x<=y ? y : y<=z ? z : x;}

185 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:08:45 ]
>>182
そりゃあ、そもそもたらい関数自体に意味がないから、
コンパイル時にたらいをまわせても意味がないのは自明なんだけど、
言いたいのはそういうことじゃなくて、

再帰ができないとか、return一文で書かないといけないとか制約が多すぎて使い勝手が悪い。

186 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:27:37 ]
そりゃまあコンパイル時評価したけりゃTMPで十分だし
わざわざ新予約語作ってまでconstexprなんて仕組みを作る理由もよくわからない

187 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:34:54 ]
constexprは普通のコードで書けることや実行時にも実行できることに価値があるんじゃないの?

従来だとコンパイルタイムにもランタイムにも欲しい値がある場合、
普通の関数とテンプレートで二つ同じ処理を書かないといけなかった。

それが制限があるとはいえ普通のコード一つで済むようになるのは、
プログラマの負担の観点から言うと大きな進歩だと思う。

とはいえ、再帰ができないんじゃテンプレートの代わりにはならないよなあ…

188 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:05:38 ]
いらない機能は使わなけりゃいい
禿もそう言っている

189 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 01:04:53 ]
ぶっちゃけauto以外の新機能は全部いらない
最終的にはautoだけ取り入れられてあとはガン無視されるだろう
C99がlong longとか以外ガン無視されているように

190 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 01:17:36 ]




191 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 01:19:27 ]


192 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 13:30:51 ]
autoに食いついてる時点で素人丸出し
普通autoなんて使わない

193 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 15:07:21 ]
まじで?
型指定子としてのautoはいるだろ。

194 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 15:33:34 ]
auto int x;

195 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 15:46:22 ]
signedかunsignedか自動的に判断するのかな?
そんな風に考えるようになりました。

196 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 15:46:55 ]
馬鹿じゃねーの?

197 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 15:48:17 ]
>>195
型名が後に続く場合は自動変数の宣言になります。

198 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 15:52:21 ]
馬鹿なことやってないで、コンパイラに型推論要求すりゃいい話じゃねぇの?


199 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 15:54:44 ]
それがautoなんです(><)

200 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 16:44:24 ]
>>199
C++ の言語仕様でどこまでトレースきるのさ?




201 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 16:58:46 ]
C++ の言語仕様にも手を入れたのでへっちゃらですよ

202 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 18:36:15 ]
ムーブセマンティクスとかコンセプトとか、とりあえずライブラリ実装者が使ってくれれば、
利用者は何もしなくても恩恵を被れるって機能も多いぞ。

203 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 19:02:45 ]
ムーブセマンティクスは微妙だな。
また頭ひねることになりそう。
constくらいは。

204 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 21:23:06 ]
いやいやあれは超便利だろ。

205 名前:デフォルトの名無しさん [2008/07/18(金) 21:34:59 ]
美少女中学生が呼吸をするたびに形のいいおっぱいがオートムーブ

206 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 21:41:16 ]
ムーブの概念はコピーより自然
今までなかったのが不思議

207 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 09:57:13 ]
そりゃ一般的な機械語にムーブがなかったからだろうよ。

208 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:39:30 ]
autoなんて、0x新仕様の中でも一番利用者として理解しやすい機能の1つなんだから
少しは勉強してからカキコしろよ。だってここ0xのスレなんだぜ。
という漏れも、Move Semanticsはよく理解してないので、えらそうなこと言えないけどさ。ごめん。

209 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 00:10:16 ]
mov ebx, eax

210 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 00:28:24 ]
>>209
俺それ書くの我慢したのに……。



211 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 01:12:06 ]
copyだし

212 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 01:15:12 ]
その点、Z80ニーモニックは正しいな

213 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 02:47:49 ]
conceptのところ読んでみたけど
late_checkとaxiomの意味がわからん・・
何がうれしくなるんだろう

214 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 04:24:04 ]
>>208
勉強してから書くのは大変だ。
読んで書くくらいなら、かなりの割合で達成してるだろう。

だからみんな単語にだけ詳しいんだよww
特に俺www
読んで分かるのは大変だろ。
言い訳にならないのは承知だが。

215 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 04:38:01 ]
autoの便利さとコンセプトの強力さとラムダ式の醜悪さと0bが却下されたことさえ知ってれば
このスレでは充分

216 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 05:03:03 ]
個人的には initializer_list に地味に可能性を感じる

217 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 05:23:33 ]
xchg eax,ebx

218 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 08:05:19 ]
>>213
late_check:
あるインターフェースに適合するかどうかを
C++ではシグネチャーベースで判定するので、
テンプレート引数が決定して、
テンプレートインスタンスを生成する時にしか、
全体の適合性を判定できない場合が多い。
かといって、テンプレートの定義時に判定できる部分も、
インスタンス生成時まで判定できないのでは、
テンプレートのプログラミングがやりにくい。
だから、late_checkブロックの部分だけ、インスタンス生成時、
後は定義時に整合性のチェックを行う。
axiom:
条件式を最適化で利用して良い。
つまり型に対する論理的な制約になる。
Eiffelの「不変条件」みたいなもの。



219 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:18:40 ]
>>218
concept が与えられてなお

>テンプレート引数が決定して、
>テンプレートインスタンスを生成する時にしか、
>全体の適合性を判定できない場合が多い。

な場合についてkwsk

220 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:50:12 ]
>>208
知ってるかもしれないけど、
Move semantics(右辺値参照)に関しては禿がThe C++ Sourceに記事書いてたよ。
結構分かりやすい説明だった



221 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 13:15:29 ]
Move Semanticsは内部にコンテナとか持っているclassの
operator書いてればありがたみが分かるだろう。


222 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 01:59:02 ]
Extensible Literals が Proposed wording under review in Core にあるんだけど
まだ欲張るのか?
マジで09年に仕上げるつもりあるのか?

楽しい機能だから入るんなら歓迎だけどさぁ

223 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 02:24:34 ]
提案者にBjarne Stroustrupの名前があるので無下にできそうにないな

224 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 02:46:24 ]
>>222
だから2000+0xF年まではセーフだと…

225 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 06:33:47 ]
0x200F 旧西暦8207年 宇宙暦308年ついにC++0xの完成をみた。銀河の歴史がまた一頁。

226 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 06:45:23 ]
>>222
だいぶ前からその段階だから、今はもうほとんど、
"Integrated into working paper"に近いんじゃないのかな?

しかしこれliteralじゃねーだろ。
literalと組み合わせられるコンストラクタだ。

"こんにちわ、世界!"ISO2022JP

とかなんでもありだ。二進数リテラル問題も解決。
'_'で4桁ごとに区切るようなoperator"b"を書きたきゃ書けばいい。


227 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 09:16:16 ]
もう永久に0xでいいよ

228 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 09:57:19 ]
>>226
Cooked literalですw

229 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 10:26:02 ]
>>226
>"こんにちわ、世界!"ISO2022JP
>とかなんでもありだ。
それはどうかな?そもそも "..." の ... 内に非アスキー文字を書くと
未定義なんでは? (実際上はべつとして。)
operator "ISO2022JP" に渡る以前にエンコーディングが
どうなってるかわからないとどうしようもないべ。


230 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 10:39:17 ]
さすがに未定義ってことは…
処理系に依存するくらいでは



231 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 10:40:45 ]
char32_tで受け取れるようになればいいんだよ。

232 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 10:59:13 ]
やるとしても、
L"こんにちわ、世界!"ENCODING
だな。

233 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 11:01:43 ]
失礼しました、undefined じゃなくて implementation-defined ぽいですね。
char32_t は Unicode だと決まってるから、
U"こんにちわ、世界!"ISO2022JP
と書いておけば問題ないわけですね。なんか 先頭のU が気持ち悪いけど。

234 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 11:18:14 ]
operator "suffix"(char32_t const*, size_t)がinvokeされるわけですね。

>>226
つ constexpr

235 名前:デフォルトの名無しさん [2008/07/30(水) 07:55:42 ]
www.open-std.org/jtc1/sc22/wg21/
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 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 01:37:54 ]
誰も反応しないのは英語読めないからですね

237 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 01:39:08 ]
自己紹介乙

238 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 01:43:12 ]
そんなことより0bをだな

239 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 04:28:43 ]
というか詰めの作業に入っているから、
そんな勢い良くリアクションするようなことはない。
ただ思った以上に書き直しが多かったので驚いた。> Concept Rev.7

240 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:25:37 ]
今さら変えられないんだろうけど、
ストリーム関連の命名規則がぐちゃぐちゃすぎる。
書式を変更すると保存されるのも使いにくい。
cout << hex(123); みたいにしてほしかった。
これじゃあprintfの方が便利とか言われても仕方ない。

あと、再帰のできないconstexprには失望した。
コンパイラの仕事は、実行時向けに最適化してループにするだけじゃね?



241 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:35:10 ]
実行時にループしたらconstexprとは呼べない。

242 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:41:59 ]
実行時はすでに定数じゃないが、
しかし現状で、テンプレートでコンパイル時再帰の定数ができる以上、
constexprも再帰できてほしかったなぁ。

243 名前:240 mailto:sage [2008/08/02(土) 14:47:06 ]
>>241
N2235には変数を引数に取る例も載ってる。
実行時も使えるよっていうメリットを残しながら、
再帰できるようにするのは可能だと言いたかった。

244 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 15:31:10 ]
>>243
仮にそうだとしても、再帰するconstexpr関数がどうせ実行時評価しかしないなら、constexpr付ける意味が無いのでは。

245 名前:240 mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 17:39:31 ]
>>245
可能かどうかで言えばまあ可能なんだろうな。

N2235も「今はまだそのときじゃない」って感じだし。

247 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 20:36:23 ]
constexprは「実行時にも使いまわせる型厳密なマクロ」だよな。
お世辞にもコンパイルタイム関数実行とは呼べない。

248 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 21:55:46 ]
再帰がやりたければtemplate使えばいいって考えがあったから
constexprは再帰禁止にしたのではないかと思う。

249 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 23:39:28 ]
C++の拡張の目的としてあげられている
ユーザー定義型に組み込み型と同等の待遇を与える
っていうのを実現するのには今のconstexprで十分っていう判断だと推測

250 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 23:56:41 ]
テンプレート引数は小数使えないしな・・・。



251 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 01:54:32 ]
俺は>>245の愚案には反対。
constexprの狙いから外れすぎ。


252 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 04:05:47 ]
浮動小数点演算テンプレートを作ればいい

253 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 11:50:11 ]
コンパイル時のものと実行時のものは明確に区別して欲しいな
両方使えるとか紛らわしい

254 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 12:06:56 ]
>>253
D言語なんかは現状ではどの関数がコンパイル時実行できるかさっぱりだけれども、今後関数属性のpureで解決するようだねぇ。

255 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 12:08:49 ]
マクロとテンプレートとinlineとconstexprの関係でパニックになる初心者続出の予感

256 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 13:59:53 ]
commonlisp よろしく
#eval_when (<評価するタイミング1> <評価するタイミング2> ...) {
<評価する式>
}
みたく、しちまえよw


257 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:48:23 ]
すっきりしないねぇ。標準委員会に入って考え抜くと、これが最もエレガントな解と思えるようになるのかな。
おれがC++が好きだったのは、Modern C++にもあったけど、
各目的で用意された諸機能が、有機的に相互作用(ハーモナイズ)しあって、
1+1=2以上の機能体系を生み出してたところが、実用的でかつアーティスティックで好きだったんだ。
おれが入門したころの、templateがあってRTTIないくらいのころのC++は美しかった。

258 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:10:05 ]
昔はよかった
K&Rの頃のCが一番だと思っている

259 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:19:46 ]
D言語マンセー

260 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:36:26 ]
ここでC++0xの文法があーだこーだ議論するような奴がD言語使うと、
自分で言語仕様を拡張したい病にかかるからやめたほうがいい。



261 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:43:18 ]
>>257
互換性やメリット、デメリットの狭間に立って考えると良い線じゃないの?
既に巨大なC++の仕様を拡張するのは常にデメリットが大きいし
互換性を考えると不要なものも捨てられないし

262 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:47:13 ]
互換性か…嫌な言葉だな

263 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 22:45:51 ]
>>260
ありすぎて困るww

264 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 22:59:52 ]
とすると、そろそろ寿命なんだね。
C++がぐんと存在感伸ばしたころ(おれがC++始めたころ)はC++の青年時代。
引きしまってたし、かといって機能が少ないわけでもないくて先駆的機能たくさんあった。
今は余計についた贅肉自体にもフォローしなくちゃいけなくて悪循環。
(後継の人たちが)どうがんばっても老廃物が老廃物を呼ぶ。
初代ガンダムは筋が通ってておもしろかったけど、
それみて育った子供達が作った後継のガンダムはちっともおもしろくないのと同じ。

265 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:15:28 ]
寿命なのはそうなんだろうけど、後継がサッパリ出てこないから老兵が頑張るしかないんだよな

Java?論外ですわ

266 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:22:19 ]
Dの出番ですね

267 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:32:25 ]
言語はともかく、処理系がいまいちな気がするのは偏見だろうか>D

268 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:33:04 ]
>>266
個人が趣味で作ってる程度のものをC++やJavaと同列に扱うのはどうかと思う

269 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:33:23 ]
俺的にはC++0xでやっと「使える」様になってきてこれからな感じなんだが・・・
template無い頃のC++はこりゃダメだと思ってたよ

270 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:48:18 ]
>>268
今でこそ標準化されてるけどC++だって昔は似たようなものだったよ。



271 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 00:01:36 ]
最近はもう、言語も大きな会社がバックについて
結構な規模の開発体制でやってないとまともなものできないんじゃないか。
Java も .NET も企業主体だし。

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

285 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 21:50:20 ]
原文に「須らく」もないね。

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

287 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:19:46 ]
教養があるだけの話

288 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:37:35 ]
自分で言うか。

289 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:53:40 ]
須らくの使い方は中高で習うだろ

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

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



291 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 12:42:20 ]
だからエスペラント語をだな、

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

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

294 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 16:23:20 ]
そこでイド語をだな、

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

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

297 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 12:01:38 ]
つ #pragma
つ memorize

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

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

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

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

C#に乗り移ろうかな。

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

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



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

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

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



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


305 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:54:06 ]
>>303
君には縁のない世界だって事よ。

306 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 15:45:35 ]
>>299
メチャワロタ
うまいこと言うねw

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

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


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

309 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:24:06 ]
いやいやここはunlambdaで

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




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

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


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

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

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

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

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

317 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:42:32 ]
>>316
それは>>296とは関係ないけどね

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

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

319 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 16:46:10 ]
>Cでnoaliasが排除されて以来
え?C99のrestrictは?

320 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 16:50:10 ]
restrict 忘れておった orz



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

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

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

324 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:23:27 ]
ttp://gcc.gnu.org/projects/cxx0x.html

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

325 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 23:51:55 ]
>>323
assertかよw

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

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

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

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

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

329 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 03:35:34 ]
>>326
仕様を勘違いしてます。

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

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



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

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

からじゃないのか?


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

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


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

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

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

336 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 14:40:37 ]
>>335 がいいこと言った!!


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

338 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 10:44:05 ]
無理じゃないお

339 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 11:28:32 ]
文脈によるんじゃないんですかね?

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

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

340 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 11:42:20 ]
長いけど>>338と同じこと





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

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

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

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

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

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

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


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

347 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:44:30 ]
えーと…… D…?

348 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:46:40 ]
Dwwwwwwwwww

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

350 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:55:37 ]
Ocamlとか?



351 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:56:46 ]
Solaris、Windows、Linux + FreeBSD、Mac、Haiku OS

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


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

353 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:01:45 ]
Javs厨の寝言来ちゃった

354 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:02:53 ]
GCを使わされる時点でDもJavaも論外

355 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 19:08:11 ]
DってDelphiのことじゃないよね

356 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 19:14:06 ]
そうだよ

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

358 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:46:24 ]
dn.codegear.com/jp/article/38392
C++Builder 2009はC++0xサポートするってさ

俺は買ったことないけど

359 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:51:00 ]
そいつはすげぇ!

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

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



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

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

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

363 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:42:36 ]
ヘッジがM$に移籍したのが痛いよな

364 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:43:46 ]
>>360
0xF年までおk

365 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:59:01 ]
Comeauがどこまで実装するか楽しみ

366 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 22:15:19 ]
0x200f年までok

367 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 22:17:58 ]
0xff0f年までおk

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

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

370 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:33:32 ]
ああ、なるほど



371 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 mailto:sage [2008/08/17(日) 07:49:49 ]
自己解決
N2081に書いてあった。

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


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

376 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 15:15:42 ]
void*を渡すならいらない。

377 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 18:51:22 ]
tyep safe な printf まーだー?

378 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 22:34:35 ]
ばらでぃっくなアレを使うんじゃ

379 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 23:55:53 ]
つboost::format

380 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 01:03:01 ]
こんなの見つけたけど次回ってもう今日だな。
ttp://d.hatena.ne.jp/faith_and_brave/20080516/1210935359



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

382 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 09:34:19 ]
細かい議論が多くて面白いですね

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

384 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 21:35:59 ]
関数の型と言えばsignature

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

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

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

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

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

389 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 14:56:36 ]
つusing TO = FROM;

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




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

383どういう意味?

392 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:09:39 ]
関数呼び出しせずに関数名を渡したら関数の型になるんじゃないの?

393 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:17:41 ]
当たり前。スルーで。

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

395 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:22:28 ]
いや、ポインタじゃないだろ?

396 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:22:58 ]
当たり前。スルーで。

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

398 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:51:58 ]
存在しなかったら関数呼べないだろwwwwwwwwwwwwwwwwww

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

400 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:28:00 ]
>>397
坊やにはまだ早いよ。
C++03を学びなおしてきな。

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

わかんなくなってきた

403 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:36:41 ]
>>402
スレチ

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

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

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

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

407 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:55:20 ]
待て、やっぱり変だ

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

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

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

409 名前:not 408 mailto:sage [2008/09/04(木) 22:05:19 ]
その引数の型矯正ルールが8.3.5.3な。
とりあえずC++0xはまだ早いんじゃないのかね?

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

dotchi?




411 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:24:47 ]
調べた

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

412 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:28:55 ]
俺がこっそり望んでいたsealedは入りませんか?

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

413 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:29:39 ]
D&Eに継承の禁止の仕方載ってる

414 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:31:15 ]
3.

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


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

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

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

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

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

420 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 08:42:21 ]
>>419
×関数を入れたら
○関数呼び出しを入れたら



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


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

423 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:42:50 ]
つ 「式の型」

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

>>416が気になるからage

425 名前:デフォルトの名無しさん mailto:age [2008/09/05(金) 18:28:06 ]
ageてないw

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

427 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 21:21:04 ]
sizeof(0 / 0) は警告が出るな@gcc

428 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 21:57:58 ]
0除算だからな

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

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

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



431 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:22:30 ]
自意識過剰の変な奴…

432 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:36:46 ]
美少女中学生スレたるこのスレにはふさわしくないな

433 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:45:09 ]
美少女中学生の話は↓でやれ。ここでするな。
pc11.2ch.net/test/read.cgi/tech/1191754720/

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

435 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:49:36 ]
>>434
va_argって知らないの?

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

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

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

439 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:27:23 ]
大丈夫、苦労するのはライブラリ実装者だけだから

440 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:31:14 ]
>>437
> 何じゃこりゃすげぇと思ったんだけどな〜

かわいいねえ。



441 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 22:53:23 ]
美少女中学生がいるな・・・

442 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 23:35:28 ]
auto以外は普通の利用者には関係ないね

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

444 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 00:30:05 ]
おまえDスレにいるだろ

445 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 00:34:07 ]
可変テンプレートは型リストの構文糖衣でいいのに

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

447 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 02:43:39 ]
D?
ああ、C++とJavaの悪い所取りした哀れな言語ね

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

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


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

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

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

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




451 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 05:10:05 ]
だったらこれ認めるようにすりゃいいじゃないか…

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

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

453 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 05:14:15 ]
見慣れない以外の欠点が無いならどうでもいいかと

454 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 05:57:38 ]
コンストラクタとかどうなんの
もしかしてこう?

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

オェェェェ

455 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 08:47:11 ]
N2582 って通りそうなん?

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

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

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

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

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

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

458 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 13:31:32 ]
LL違うwww

459 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 13:44:26 ]
C++ がそっちの意味の LL なわけねぇww

460 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 13:59:07 ]
そのうち、Perl みたいに $ とか @ とか出てきそうだw



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

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

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

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

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

465 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:02:29 ]
それを言ったらC++のHPは(ry

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

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

467 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:21:57 ]
>>463
と、変換関数な

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

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

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

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

470 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 18:13:16 ]
ttp://cpplover.blogspot.com/2008/09/c0x.html



471 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 18:23:39 ]
n2582はどうなってんの?

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

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

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

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

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

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

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

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

// Wikipediaのラムダの例を改変
// 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) };

476 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 20:03:43 ]
日本語の教科書なら速攻でεπιστημηさんが書いてくれると思う。

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

479 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 20:52:46 ]
却下

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



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

482 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 21:58:42 ]
_Functionでいいよもう。

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

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

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

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

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

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

487 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 22:57:19 ]
できなくはないけど難しいからツールが発展してこなかった

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

489 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 01:06:05 ]
むしろなんでそんなにfunctionなりなんなり、記号ではなく言葉でないと嫌なのか。

490 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 01:09:22 ]
記号でもいいけど、卑猥なAAみたいな記号は厭だ。w



491 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 01:16:57 ]
記号でもいいが今回のは悪趣味
センスのかけらもない

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

493 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 01:27:20 ]
cpp_0x_reserved_word_function でいいお

494 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 01:42:10 ]
キーワードにも名前空間が必要かww

495 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 02:26:53 ]
using keyword function = _Core::function;

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

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

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

498 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 12:31:06 ]
西暦20xx年とかいうと安っぽいSFみたいだ

499 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 12:32:23 ]
おっとロックマンの悪口はそこまでだ

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



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

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

503 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 21:44:04 ]
>>497
0F年まであと7年もあるから余裕かと

504 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 21:54:44 ]
>>503
それは八進数リテラルだ

505 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 22:04:05 ]
先に2000をHexにしろよw

506 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 22:18:42 ]
ヲイラが生きている間で勘弁して下さい ><

507 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 22:23:14 ]
C++くらいのインフラになると変な変更される方が怖い。

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

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

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



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

512 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 01:29:14 ]
待て待て、enableがデフォルトとか困る

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


514 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:33:49 ]
#ifdef ガードでどうにでもなるんでは?

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

516 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:56:34 ]
ifdefなら平気じゃん。

517 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 10:00:00 ]
アルファギークの大半がLL言語に移行したというのに

なんなのこの体たらく

518 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 10:07:39 ]
↑ブログ読みすぎのバカ


519 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 10:15:46 ]
>>516
iostream使いたい時は具体的にどう書くの?

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

520 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 10:22:24 ]
標準iostreamの中身を

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

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



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

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


523 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 11:01:28 ]
iostream.hを思い出したぜ

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

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

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

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

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

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

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

530 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 14:25:05 ]
スレ違いです。




531 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 14:51:30 ]
コンパイラ生成のデフォルト・コンストラクタ

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

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

534 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 15:28:24 ]
こうしてまたC++は狭く深くなるのであった

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


536 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 15:44:40 ]
>>534
懐は広く入口は狭い
巾着みたいなもんだなw

537 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 16:19:13 ]
入り口閉められて出られなくなるんですね

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

539 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 16:59:01 ]
>>536
名器ですね。わかります。

540 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 18:25:38 ]
>>537は童貞だな
いや、あるいは膣痙攣の被害sy



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

542 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 23:58:09 ]
>>532
Stroustrup が入門書を書いたみたい

543 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 23:58:49 ]
びょーん・すっぽすっぽ

544 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 02:06:49 ]
D言語って来ないの?

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

545 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 02:28:58 ]
VisualStudio並のIDEが出来たら行くよ

546 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 04:04:49 ]
GCを簡単に取り外す方法が用意できたら行くよ

547 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 09:15:40 ]
>>544
JavaとC++があるから。
俺様言語は必要ない。

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

549 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 09:27:02 ]
他に大した情報元もないって言ってた気がするんだけど。

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

550 名前:デフォルトの名無しさん mailto:活気付けにage [2008/09/19(金) 09:28:45 ]
まあこの板の中ではレベル高いほうだろw
残念ながら英語だと読む気が激減する人が多いと思われます

ところで0xって10進法じゃなくてry



551 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 09:41:25 ]
2ちゃんのスレに全力でレスする奴もおらんだろ。
上の方に「誰も指摘しない、俺は規制で書き込めない」って
ブログのURL張られていたけど、w付きのおふざけレスにはレスしないよー

552 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 12:20:36 ]
まぁ、何か恥かいたときに「本気出してないからだ」って
自分に言い聞かせられる状態を常に保って書くのが2chだしな。

553 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 12:32:15 ]
いや、俺はリアルで全力出せない分全力でレスして全力で恥をかくぞ

554 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 17:57:47 ]
確信度によって態度変えるのが皆のため

555 名前:デフォルトの名無しさん [2008/09/19(金) 20:34:41 ]
twitter.com/cpp_akira/statuses/926725424

556 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 20:50:19 ]
cpp_akiraさんもう何がしたいのか分からなくて痛々しくなってきてるからやめて。

557 名前:アキラ mailto:sage [2008/09/19(金) 21:20:31 ]
また誤解されるのはイヤなので書いておきます。

548-551の話は、私のことではなくhitoさんのことですよね。
なのでTwitterでは、そんなこと言ってない、というようなことを書きました。
それと、555は私ではありません。

558 名前:デフォルトの名無しさん [2008/09/19(金) 21:20:56 ]
>>556
cpp_akira より晒し続けてるバカのほうが痛々しいし心配だ。

559 名前:558 mailto:sage [2008/09/19(金) 21:21:32 ]
あ、すまん age てもうた。

560 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:25:03 ]
>>557
>>555 みたいなのは相手をするだけ調子づくだけだから、シカトこいたほうがいいよ。
それが >>555 みたいなヤツの為にもなるし。相手にすると双方、馬鹿を見ることになるよ。



561 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:31:08 ]
Twitterで誰が何やってるとか、いちいち構うなよ

562 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 22:02:30 ]
>>555より>>548だろ、痛々しいのは。


563 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 22:07:18 ]
同じ人じゃね?w

564 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 22:11:14 ]
お前らもっとレベル高い話しろよ。
人の事なんてどうでもいいだろ?C++0xの話をしろC++0xの話を。

565 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 22:27:11 ]
じゃ、話題でも振るか。
late_checkは必要悪なんだろうか。

late_check {
//以下、スレ違いの話題も可

566 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 22:31:20 ]
}

567 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 23:07:44 ]
>>565
ないとどうにもならん。

N2719を読んで鬱。
俺にmove semanticsは使いこなせるだろうか…

568 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 23:35:32 ]
そんなキモチワルイ構文よりプロパティをですね

569 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 00:30:49 ]
わちゃー! late_check!
なんだこれは

直感的に拒否反応が出たけど
でも今はしっかり飲んじゃってるんで理解できないや

570 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 00:34:50 ]
また性懲りもなく「xxxは僕です」ごっこやってんのか
ウザいを通り越してイタいぞ

はてなだかツイッターだかしらんが村から出てくんなよ
ガキが



571 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 00:41:03 ]
ここは C++0x を語るスレなんであって、C++0x を語る人を語るスレではないのでそこんところよろしく。

572 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 09:29:42 ]
美少女中学生を語るスレでもあるぞ

573 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 09:44:10 ]
違いますやめてください迷惑です

574 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 11:48:28 ]
hitoに触れるなよ
人間性に問題がある奴なんだから

575 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 12:13:55 ]
人間性に問題ないプログラマなんているの?
C++やってるやつなんて特に

576 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 12:28:41 ]
それでも >>570 みたいな匿名で粋がってるだけのチキンと一緒くたにはされたくないです!><

577 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 12:31:55 ]
そこでデレて!

578 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 13:10:49 ]
みんな好き…

579 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 13:50:34 ]
またアキラか

580 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 15:40:33 ]
>>575
開き直るなよ屑hito



581 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 15:44:10 ]
for(;;);

582 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 23:54:38 ]
0bの話しようぜ!

583 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 00:27:12 ]
>>582
それは2011年になっちゃったってこと?
それとも2進リテラル?

584 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 07:23:11 ]
オービー?

585 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 18:47:31 ]
いいえ女子中学生です

586 名前:アキラ [2008/09/23(火) 13:57:11 ]
これだから2chは・・・

587 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 14:46:22 ]
はいはい偽物

588 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 14:55:37 ]
美少女中学生の人気に嫉妬

589 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 14:58:09 ]
スレッドスコープ変数とかあるのかな

590 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 15:19:17 ]
スレッドとは何かを言語で規定しなきゃならなくなるからなぁ
無理だろ



591 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 15:26:28 ]
>>590
そこはもう済んでると思うよ。

592 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 16:17:30 ]
済んでるの?
スレッド関係はライブラリにするんじゃなかったっけ
あったとしてもスレッドの寿命に合わせて管理されるヒープ変数を保持するテンプレートクラスとか
そんなんだろ

593 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 09:08:21 ]
>>592
最低でも、
www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/
のタイトルくらいは眺めてくれよ。paper本文は読まなくていいから。

あと、
www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2705.html
www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/sd-1.htm

595 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:54:28 ]
この世にはスタックとヒープしかないっていうCの潔さが好きだったのに…

596 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 01:39:28 ]
>>595
getenv(3)やstdio.hの事も忘れないであげてください。

597 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 05:46:44 ]
N2763からnamed lambdaとblock-local functionが取り除かれている。
残念だ。

599 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 14:08:10 ]
finalとか追加されんのか

class hoge [[ final ]]
{
}

sealedが欲しかった俺としてはうれしいが文法が・・

600 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 14:26:37 ]
finalとconstって、どう違うんだ?
継承不可ってだけ?



601 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 14:54:22 ]
属性が後ろに付くのがダサイ

602 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 15:07:13 ]
じゃあDつかおうぜ

603 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 15:27:20 ]
なぁにconstメンバ関数と一緒さ。

604 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 15:30:11 ]
まあ、Cの時代から属性は後ろに書くものだったからなあ…

605 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 15:43:30 ]
他が前にたくさん付き過ぎなんだよ

606 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 16:13:54 ]
遂にconceptが草稿に入った

607 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 16:33:48 ]
いまさらどうした?
ドラフトが出たのは九日も前だぞ。

608 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 17:04:23 ]
後ろに付くのはいいけど[[]]が激しくダサい
wikiのリンクみたい

609 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 18:47:15 ]
Microsoftが頑張ってC++/CLIのと似た構文にしてくれればいいのに、とVC++使いは思う。

610 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 18:51:21 ]
なんだかんだ言ってC++/CLIの記法は悪くないよな
まぁ、使う気はないんだが



611 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 21:38:43 ]
洗練されているって感じがいいんだよなC++/CLIの文法は

612 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 01:43:41 ]
しがらみがないってだけじゃね

613 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 01:51:44 ]
しがらみがないおかげでグロ構文が必要ないことは素晴らしいことだ

614 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 01:59:57 ]
[&]

615 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 02:07:57 ]
spaced keywordなんて最悪のグロだ。頭おかしいと思う。

616 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 04:08:17 ]
C++/CLIよりはManaged C++の方がマシだな俺は。

617 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 07:55:21 ]
泥団子lisp

618 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 12:53:24 ]
>>616
属性に関してはどっちも同じ構文だぞ。

619 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 12:55:43 ]
public ref class Hoge sealed

620 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 18:59:55 ]
C++でGCサポートしようと思ったらああいう方法しかないよなぁ



621 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 19:16:10 ]
C++/CLIはチルダだったっけ

622 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 19:35:54 ]
ハット。結局、構文を整理し直したら C++/CLI になった、なら馬鹿馬鹿しい話だな

623 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 11:09:57 ]
いいところは一緒になってもいいよ。
プロパティは止めて欲しいけど。
メタなスロットアクセスフックにして欲しい。
move semanticsみたいにね。

624 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 23:03:46 ]
>>623
>メタなスロットアクセスフックにして欲しい。
>move semanticsみたいにね。
kwsk

625 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 01:20:43 ]
最終ドラフトが採択されたそうですよ

ttp://yebo-blog.blogspot.com/2008/10/c0x.html

626 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 03:57:35 ]
結局ラムダのウンコ構文はそのままか…

627 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 10:43:23 ]
まだまだ変更される可能性があるから、いったいどこから最終なんて言葉が出てきたのか疑問。

628 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 11:25:50 ]
completeを最終と訳してしまったんではないかな。
feature-complete、C++0xに入る機能は全てレビュー出来る状態になった
「全て揃った公開ドラフト(complete public draft)」が出来た。
herbsutter.wordpress.com/2008/10/28/september-2008-iso-c-standards-meeting-the-draft-has-landed-and-a-new-convener/

629 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 13:58:50 ]
所でconcept gccみたいな産廃じゃないまともな処理系ができるのはいつですか?

630 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 14:11:38 ]
規格が制定されてから五年後ぐらいには、まともな処理系が登場すると思ってるんだけどね。



631 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 00:42:51 ]
>>629
ヒント:自分で作る

632 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 00:45:14 ]
すでにC++のコンパイラは一人の天才の手の負える仕事ではなくなっているわけだが。

633 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 01:03:00 ]
じゃあ発想の逆転で、C++インタープリタを作る。

634 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 01:46:43 ]
LLVM/clang のひとたちががんばってくれないかな...
Apple に買収されたから C++ にはあんまり興味ないのかな。

635 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:05:09 ]
>>632
仕様が決まってる言語処理系の実装に天才なんて不要
時間さえあれば経験豊富な凡才一人で完成するだろう

636 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:18:37 ]
アホなのかな、この子は?

637 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:28:52 ]
アホだな。

638 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:43:33 ]
エロい会話禁止

639 名前:デフォルトの名無しさん [2008/11/02(日) 05:33:25 ]
C言語コンパイラなんか天才なら8時間で作っちゃうよ。
最適化までは無理だが。

640 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 05:37:11 ]
天才じゃないだけあって説得力が無いな。



641 名前:639 mailto:sage [2008/11/02(日) 06:11:01 ]
30年ほど前、3歳のときに実際に作ったからそう言ってるの。
正確にはコンパイラジェネレータを8時間で作って、あとは1ヶ月かけて自動生成したんだけど、
いまどきのパソコンなら数分で完了するよ。

もちろん全ての仕様を網羅してるわけじゃないし基本ライブラリもないけどな。
最初のコンパイラだから。


642 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 06:12:08 ]
もうちょっと面白くならないものかな。

643 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 06:20:10 ]
もうちょっとひねりが欲しかったね
期待外れと言わざるを得ない

644 名前:639 mailto:sage [2008/11/02(日) 06:33:00 ]
>>642-643
つまり天才を否定するわけだな。

645 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 07:42:26 ]
神童も大人になればただの人...どころかただの馬鹿と化してしまったわけですね、わかります。

646 名前:639 [2008/11/02(日) 07:58:08 ]
> 大人になればただの人
いえいえ
完成品を渡して翌日には殴られて記憶喪失ですよ。
しかも殴られた理由が、「次はTRONを1日で完成させろ」って言われて拒否したから。

647 名前:639 mailto:sage [2008/11/02(日) 08:00:56 ]
要するに人身売買暴力団が仕切ってる限り日本に技術は育たない。
パチンコのゴト師だとか中国スパイに暗号技術者が殺されたりしまくってるでしょ。

648 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 11:16:52 ]
久々にやねうらおみたいのを見た

649 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 11:38:33 ]
面白さがみじんもないな

650 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 12:20:06 ]
本人は面白いと思ってるんだから、そっとしておいてやれ



651 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 18:43:11 ]
まともな処理系になるかどうか分からないけど、
VC++2010のCTPに0xの機能が一部入ったようだ
blogs.msdn.com/vcblog/archive/2008/10/28/visual-studio-2010-ctp-released.aspx
blogs.msdn.com/vcblog/archive/2008/10/28/lambdas-auto-and-static-assert-c-0x-features-in-vc10-part-1.aspx

652 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 20:43:55 ]
メジャーなC++コンパイラの最新版やプレビュー版で実装されてる機能(主なもの)
・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が正式に出るまでどれだけ実装されるかな

653 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 20:58:28 ]
一般的とは言えないかもしれないが、

・Comeau C++ ( ttp://www.comeaucomputing.com/43101features.html )
static assertions
auto type specifier
extern template
後、細々したもの。

654 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 21:47:35 ]
一番大事なautoを実装してるのはメジャー所ではVCだけかよ…

655 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 21:51:03 ]
ほかはdecltypeがあるからいいじゃない。

656 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 22:07:54 ]
#define demi_auto(X, Y) decltype(Y) X = Y;
...こんなマクロが流行るんですね、わかります。

658 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 22:27:39 ]
>>657
既にBOOST_AUTOが切り開いた道

659 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 22:36:53 ]
autoとdecltypeってどっちかが出来たらもう片方もすぐ出来そうだけどな(効率は別にして)
一番目立つ機能だから変なマクロが流行る前に最優先で実装して欲しい

660 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 22:39:51 ]
demi って中二病っぽいね。



661 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 22:41:04 ]
美少女中学生は中二が一番いいよぜ?

662 名前:657 mailto:sage [2008/11/02(日) 22:43:22 ]
>>660
悪かったな。

663 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 22:45:06 ]
decltypeの読み方は
「でっくるたいぷ」
でよろしいですねッ!

664 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 22:45:16 ]
demicup

665 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 23:46:55 ]
>>659
decltypeはsizeofの変種でめっちゃ簡単。
autoは宣言/定義を解釈するコードを書き換える必要がある。
最悪トップダウン/ボトムアップを入れ替える必要あり。


666 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 00:01:35 ]
式の型が分かったら、
そのサイズを計算せずに、
その型のまま返すだけだからね。
sizeof → decltype

667 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 00:51:07 ]
だからVCがベータにもならないのに、いきなりautoをサポートしてるのに驚いたんだがな。
普通decltypeが先だろと。

668 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 01:11:42 ]
GC入るって本当?

669 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 01:13:30 ]
autoはC++/CLIがらみで追加を計画していたと推測してみる。

670 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 01:21:21 ]
C++/CLIの記法というか、MSがここまで評価されるのも珍しいなw



671 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 01:40:42 ]
昔は知らないんだが、VCの方がgccよりもテンプレートのサポートが優れていると、
あの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.



672 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 02:07:33 ]
そうかautoって難しいのか
auto検出したら内部で657のマクロみたいな置き換えすりゃいいだけかと思ってた

673 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 04:20:31 ]
>>671
確か、VC++が標準対応売りにしだしたのはVS2002の辺りから。
ひどかったのは、VC6からVS2002の間が開き過ぎたせい。

674 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 04:58:18 ]
2002 も結構ひどかったけどな。4年も待ったのにそれかよって感じで。
そして 2003 で一気に改善されて、2002 のアカデミック(無料アップデート対象外)を買った俺涙目。

675 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 05:54:15 ]
4年どころじゃなくない?
VC6って96年だった気が。
C++の標準化の1つの節目が98年なんで、VC6が対応しているわけもないという。

676 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 08:26:56 ]
今もバグフィックスが遅れているから、
boostなんかVC++パッチの嵐だよね。
testが一番通ってるのもVC++なんだがw

メジャー・バージョンアップで適合率トップ、
マイナー・バージョンアップではノロノロで追い抜かれる、
の繰り返しだね。

677 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 09:02:31 ]
まあ開発スタイル的にそうなるのが必然だろ
gccなんかと比べると特に

678 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 09:05:31 ]
開発スタイルよりも、バグであっても、自社のものに依存しているものが多いから、
簡単にフィックスできないって事があるね。

679 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 09:09:46 ]
boost が Comeau 非対応なのはなんか理由があったんだっけ?

680 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 10:48:12 ]
メンテナンスするひとがいないだけでしょ



681 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 12:29:23 ]
conceptを実装するのが一番しんどいイメージが


682 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 13:36:54 ]
現状の型のセマンチクスを変更しないからそうでもないような
あ、conceptとか入れたらlookupの挙動が変わる?


683 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 13:40:55 ]
どこかのサイトに書いてあったけど、
VCはconceptを実装するのに一年はかかるとか

なぜかはわかんね

684 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:10:28 ]
一年で実装できたら大したものだ。
五年はかかるぜ。

685 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:13:52 ]
俺なら8年で実現してやる

686 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:14:49 ]
俺なら3年かけてから挫折する自身あるぜ

687 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 17:34:29 ]
>>683
C++03やC++/CLIが使えなくなるわけじゃないから、
MSにとってそんなに優先順位の高い仕事じゃない。

コンパイラだけでライブラリはそのままじゃアレなんで、
ライブラリやらないといけないし、
独自ライブラリの部分のconcept化をどうするか考えて、
設計しとかないといけない。concept化やらない部分も、
やる部分との整合を考えないといけないから。

g++は規格部分+独自拡張だけだから身軽。

規格に全て書いてあるわけじゃないしね。
Issues Listにあるようなことを実装しながら考えないといけない。


688 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 17:53:09 ]
>>682
現行のコードは変わらないだろ。

689 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 22:35:59 ]
続・VC++10はいろいろ実装されない
ttp://d.hatena.ne.jp/faith_and_brave/20081105/1225875809

最低だ

690 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 22:38:40 ]
initializer_listよお前もか



691 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 22:43:13 ]
>>690
>>689にはinitializer_listのことは書いてない気がするんだが

692 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 22:43:22 ]
中途半端な物を実装されるよりはましじゃないの
まだ仕様の方がちゃんと決まってないのに無茶言うな

693 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 23:00:14 ]
上流設計の遅れを現場に押しつけるのイクナイ!

694 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 23:09:30 ]
下手に実装したら、数年後VC6の悪夢が再びやってくること間違いなしだな。

695 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 23:49:08 ]
VC10の寿命がVC6並に長くなる理由が
ないので、それは大丈夫じゃないかな。

696 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 08:36:45 ]
constructor delegationにmember initialization、
どっちも後から付けやすい機能だから、
次のアップデイトに入るんじゃないか?

697 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 09:35:36 ]
サービスパックでだすような変更じゃないと思うんだが。

698 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 09:40:00 ]
それを考えるのは美少女中学生だな

699 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 19:58:17 ]
本格対応はVC11待ちか・・

700 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 20:44:14 ]
サービスパックで対応するかどうかはまだ分からないとvcblogの人が言っていたな



701 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 22:05:43 ]
【プログラム】C++ 12010年に新バージョン"C++0x"へ - ガベージコレクタなど導入(08/11/12)
pc11.2ch.net/test/read.cgi/pcnews/1226494816/

702 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 22:25:39 ]
あれ?ガベージコレクタ入るのん??

703 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 22:43:07 ]
C++0x2EEAか。

704 名前:デフォルトの名無しさん [2008/11/12(水) 22:54:20 ]
C++0xの0xとは実は16進数のことだったんだよって
公式に言い訳しないの?w

705 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 23:14:17 ]
0xの時点ですでに16進数ぢゃない

706 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 23:54:54 ]
C++0xFFFFFFFF だお

707 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 00:03:23 ]
BOM付けてくれ。

708 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 07:40:03 ]
>>704
それは言い訳というよりは、むしろ愚直な反応というべきかも。

自分達からはその件について何も言わず、誰かに突っ込まれてから
「え? どう考えても16進数でしょ? アナタ何だと思ってたんですか?」
とか返すよりはw

709 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 19:20:17 ]
なんで2010年の10進数で下二桁とってそれを16進数にするんだよw

2010は、16進数で 7DA な。 C++Dx ならまだ納得できるがw

710 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 21:06:44 ]
そんなことよりGC導入って本当?
見送られたんじゃなかったっけ?



711 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 23:03:40 ]
3.7.4.3

712 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 23:17:04 ]
本格的に使えるようになるのは0f年ごろかな

713 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 00:19:50 ]
これってコンパイラは現存するの?

714 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 00:22:57 ]
いったい何をいってるんだ?

715 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 00:42:28 ]
0xコンパイラは絶滅したよ

716 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 10:48:00 ]
未来に戻れ

717 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 11:01:04 ]
0x80xだな
西暦2048〜2063年までには

718 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 21:09:22 ]
もういいよ

719 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 21:28:13 ]
0xネタはもういいよ
もっと面白い話題にしようぜ
ユーザー定義リテラル採用で0b厨歓喜とか

720 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 21:37:48 ]
俺、wwwwで一進数リテラル作ろうと思うんだ…



721 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 23:06:53 ]
1: w
2: ww
3: www

10: wwwwwwwwww

なぁ、0は?

722 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 23:09:43 ]
0: w
1: ww
2: www
3: wwww

723 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 23:12:34 ]
頭悪いな

724 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 23:15:43 ]
素直にwWの二文字を使って2進数にしたほうが読みやすいと思うんだ。
夢はないけど

725 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 23:23:02 ]
すまん。連投してしまった。

728 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 00:32:17 ]
>>722
よくやった。わかりづらい。
さて次の議題だが、マイナス値はどうする?

729 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:20:14 ]
>>728
0: w
1: ww
-1: www
2: wwww
-2: wwwww

730 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:28:36 ]
またひとつ変態のためのオモチャができるわけですね



731 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:30:25 ]
凶悪すぎるw

732 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:43:58 ]
wとWでマイナス2進法を使って表せば任意長の整数が表せるな

733 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 04:31:33 ]
>>728
そこでboost::lambdaでチャーチ数ですよ。

734 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 06:18:25 ]
int w, h;
なんてのがコンパイルエラーになるワケww?

735 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 08:41:16 ]
vで0、wで1を現わすとして2進数を実装するとこんな感じなのか。
"wvvvwvvwvwww"w // == 0x897
Vで2、Wで3を現わすとして4進数とか。
"WwVvwW"w // == 0xd87

737 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:19:23 ]
-2進数とかワロスww
この話題に触れたのはクヌース先生の説明を読んで以来だぜw

740 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:42:35 ]
どんどんわかりづらくなってるwww GJ!w



741 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 11:01:48 ]
インタプリタ書けば別言語を埋め込むことも出来るよな
"+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.\
------------.<++++++++.--------.+++.------.--------.>+."BF
=>"Hello world!"

夢が広がりんぐ

742 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 11:05:53 ]
コンパイルタイムに評価できないと意味なさげ

743 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 11:16:43 ]
仕様全然知らんのだけど、
ローマ数字をコンパイルタイムで数値変換とかは無理?

744 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 11:19:15 ]
constexprって再帰もループもできないんだろ?

745 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 11:21:08 ]
引数にコンパイル時定数しか取らないんだからあらかじめ計算できそうなもんだけどな
operator""の中でグローバル変数使う可能性があるから無理なんだろうか

746 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 11:23:52 ]
>>744
再帰にしない代わりに同じ内容の関数をたくさんつくれば、
有限ステップの計算ならできるんじゃね。

747 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 13:13:28 ]
boost::protoを使ってbrainfuckを実装する作業に戻るんだ

748 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 14:41:54 ]
>>741
operator "" BF("abcdef")は、
operator "" BF<'a', 'b', 'c', 'd', 'e', 'f'>()と等価だから、
必要な分だけ特殊化しておけば大丈夫。

749 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 15:19:29 ]
C++厨はすぐにTMPしようとするから困る。

750 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 15:23:50 ]
>>749
素直にTMP厨と呼べば?



751 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 15:26:01 ]
C++はD言語の爪の垢でも煎じて飲めば良いのになぁ>コンパイル時文字列操作

752 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 15:48:44 ]
今度はD厨か。

753 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 15:57:39 ]
Dといえば以前はDelphiだったのにな・・・

754 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 18:48:31 ]
D厨は関数のコンパイル時実行で無限再起でも起こしてコンパイラを落としていればいい。

755 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 19:41:29 ]
コンパイルタイム無限再帰で悩むのはC++、
コンパイルタイム無限ループで悩むのがD。

756 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 19:54:33 ]
そろそろ文字列mixinを導入して本格的にマクロを捨てようじゃないか

757 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 00:13:59 ]
importディレクティブマダー?

758 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 18:34:26 ]
mixinなんてD臭いキーワード嫌だ

759 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:36:27 ]
late binding指向のmixinなんかC++に入るわけがない。

760 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 11:50:31 ]
>>19



761 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 17:57:57 ]
後置単項の+はC++の演算子じゃないから>>19は構文エラー

762 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 01:13:42 ]
後置+++はC+++の演算子だよ。

763 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 22:15:49 ]
C# は # という演算子を作るべきだった。

764 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 22:17:46 ]
C や C++ にすらあるというのに

765 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 22:55:25 ]
でもC/C++の#演算子は前置単項だからな

766 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 22:57:28 ]
使ったことないな

767 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 23:01:27 ]
ASSERT のようなマクロを使う時に
引数をエラーメッセージに表示する時とかによく使う。

768 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 23:02:28 ]
使う時に、じゃなくて、作る時に、だ。

769 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 23:28:01 ]
プリプロセッサ演算子だな

770 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 21:58:51 ]
ぷろぷりせっさ



771 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 09:12:03 ]
ぷるぷるそっさ と空目

772 名前:デフォルトの名無しさん [2008/11/24(月) 19:19:49 ]
スレッドとメモリモデルに関してはどこを探せばいいですか
C++0xで決まるのかどうかもわかってないレベルですが

773 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 19:20:31 ]
>>772 >>1

774 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 21:24:43 ]
C++0xのラムダ式は再帰できますか?

775 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 21:30:15 ]
C++2003でも不動点演算子となるような関数オブジェクトが定義できるんで
こういうのを0xでも実装すればかのうだと思います

776 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 10:09:21 ]
>>774
VC++blogに0xのラムダを使った再帰の例が出てたよ

777 名前:デフォルトの名無しさん [2008/11/30(日) 11:56:57 ]
                    /    ..::::::...ヾ,-┐:::::..  ヽ、
                   /::::::::    :::::::::::::::..ヽ|、::::::::...  ヽ、
                 / ::::::::     、:::::::::::::::::...ヽ::::::::::::..  ヽ
                 / :::::   人、 | ヽ、_:::::::::::::: |:::::::::::::.  |
            ,イ´   |  :::ト、 |  `'-,r‐=,、ヽ、 ::: |::::::::::::::  |
          rv' l´    ヽ、:.| r-、     p ヽ `l ,ヘ:::::::::::::::::   |
           | |  |     ヾヽ、 ハ     ヾ_ノ .| |' .|::::::::::::::::::  |      ラムダっちゃ♥
'´ ̄ ̄`ヽ、、_   | |  |       ヽ、l ゞ    ー   | レ':::::::::::::::::::  |
 ̄      ` r-L l  ',        |` 、       ,' |::::::::::::::::::::::  |
       _rヾニ `ヽ ',       ヽ、 r‐-ァ   /::|::::::::::::::::::::::::..  |
       ヾゝイ´ ,/  .',          ヽ、ゝ' _,.-;ノ:: |::::::::::::   ::::.. |
:..         ト ´ /....  'ヽ,、_     >r' /:: /:::::::::::::     :::  |
         〉  .|:::::::::::......    `ー-‐'´,-/ /::::: / `ヽ、:::        |
:....    .:::::::::::|   |:::::::::::::::::,、-r―'''´ ̄ ,.-‐'´:::. /   |:::::....   .  |
::::::::::::::::::::::::::::::::|   ',:::::::::::::∧ヾ V/―/:::::::::::  /     |:::::::::::.......:::.  |
::::::::::::::::::::::::::::::::|    ',:::::::::::ト kl /三/::::::::::  /      ,':::::::::::::::::::::::  |
::::::::::::::::::::::::::::::::|    ',:::::::::|ヾヾ|、 /:::::::::   ,イ      ,':::::::::::::::::::::::::  | |
::::::::::::::::::::::::::::::::|    ',/ヽ__ヾ、|::::::   ∧/      /::::::::::::::::::::::::::  |.|.|
::::::::::::::::::::::::::::::::',    !  /    ヾ:: ∠__/      /::::::::::::::::::::::::::  | ||

778 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 12:04:27 ]
N2554: The Scoped Allocator Model (Rev 2)
ってあるけど、これ地味にいいね

組み込みでもSTLコンテナとか使いやすくなる予感

779 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 23:24:37 ]
そもそも組み込みではSTL自体が提供されていないことも珍しくなく
STLPortがコンパイル通るのも夢のまた夢だったり

780 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 00:18:37 ]
>>778
メモリアロケーション関係はいいのが多いね。
>>779
Embedded C++(笑)




781 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 18:32:39 ]
組み込みって標準入出力ないんでしょ?
cin,coutとかどうするんだろ

782 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 18:38:57 ]
そういうとこでは<iostream>などが無くても良いことになっている。
フリースタンディングとかでググれ。

783 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 21:19:00 ]
>>781
そういうことは初心者スレで

784 名前:デフォルトの名無しさん [2008/12/07(日) 01:44:06 ]
C++のISO 標準仕様の文書を無料で手に入れたいんだけど、転がってるところ知らない?
JIS のHPにいったらPDFで閲覧できたんだが、こいつはスキャナかなんかで読み込んだのを
PDF化したものらしく、ろくに検索もできないんで、ほとんど使えない。

785 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 01:56:24 ]
draft + 規格名 + filetype:pdfでググって。

786 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 02:09:00 ]
>>784
ありゃひどいよな…。
検索できない電子文書とかただのバイト列だわ。

787 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 02:16:54 ]
無料じゃ手に入らない。金を払え。

788 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 02:18:44 ]
>>784
なんで ISO の規格が見たくて JIS に取りに行ってんだ?
ISO のやつなら >1 のページにあるドラフトと Issue リスト見ればおおかた情報は揃うし、
検索もできる。

789 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 04:29:07 ]
だいたいJIS規格のアレをまともに読んでいる奴はこの世にいるのか?
訳した奴でさえ、多分意味分かってないんじゃないのかアレ。

790 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 06:26:03 ]
何で売っているものを無料で手に入れようと思うんだ?



791 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 06:28:42 ]
この御時世に規格書を売るってのが変だと思うんだが。
C++0xの規格もやっぱり有料なのかな。

792 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 08:06:29 ]
>791
公的標準化機関の制定する規格書で無料のものの方が少ないんじゃね?
運営費も必要だし。全額寄付だと公平性に問題がって話になるし、全額税金だと
ある程度は受益者負担でって話が出てくると思う。

と思ったけど結構高いな、おい。
現行 C++ で JIS だと PDF がまだないけど、冊子で \17,325。PDF できても同額になると思われる。
ISO だと CHF 370,00 で 3万弱か?
ANSI だと $30.00 なのに。
一時期 $15 で売ってたはずでその時に買ったから高いという意識があんまりなかった。

793 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 11:28:46 ]
JISの規格票の値段はページ数に比例します。
恨むならでかい規格作った方を恨んでください。

794 名前:デフォルトの名無しさん [2008/12/07(日) 12:38:07 ]
CHFてどこの国の通貨単位か当てっこしようぜ。
おれはチャイニーズフランだと思う。


795 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 12:58:53 ]
>>794
Confoederatio Helvetia Franc
コンピュータ技術者ならお馴染みのフォント名が実はあの山国のラテン語名だったのね。

796 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 16:16:41 ]
>>792
ISOって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に入るんじゃなかろうか。

797 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 16:21:06 ]
すまん。TR1じゃなくてTechnical Report on C++ Performanceだった。


798 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 19:15:35 ]
>>797
そいつはずっと前から >1 のリンク先でダウンロードできる。

799 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:13:11 ]
C++0x の初期ドラフトは C++03 に近いからそれでいいんじゃね。

800 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:23:32 ]
みんなちゃんと金だして買えよ。俺はISO版とANSI版とJIS版を買ったぞ。
そこまで揃えろとは言わんけど、せめて一つぐらい買ってやれよ。
こんなC++の新規格追いかけてるようなプログラマなんだから、みんないい給料貰ってんだろ?



801 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:45:17 ]
そもそもその金は誰の懐に入るの?

802 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 23:43:29 ]
>>800
ISOとANSI、二つ必要?

803 名前:802 mailto:sage [2008/12/07(日) 23:45:19 ]
ちなみに俺はISOの奴、
INCITS+ISO+IEC+14882-2003.pdf
だけ持ってる。古いのもあるが、最新はこれだけ。

804 名前:800 mailto:sage [2008/12/08(月) 05:43:34 ]
>>801
それぞれの規格をとりまとめてる機関の運営費になってるハズ。
>>802
内容的には同じだから要らない。
ISOのほうが先行して発売してたから買っちゃったけどISO版は一番高いくせに糞。
ttp://ml.tietew.jp/cppll/cppll/article/10268

805 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 06:50:05 ]
g++ 4.4にautoの実装と新しい関数宣言の構文来てるね。
あまり使い方わかってないけど、適当に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

806 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 07:47:42 ]
やっぱりきもいな。

Dだと、
 typeof(T*T) f(T)(T x) { return x*x; }
 auto f(T)(T x) { return x*x; }
でいけるから、C++ももうちょっと頑張って欲しかったのに。

807 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 08:01:47 ]
しばらく*iな理由を考え込んでしまった……

808 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 19:32:33 ]
>>803
それANSIじゃないの?
ここで買えるやつだよね。

ttp://www.techstreet.com/cgi-bin/detail?product_id=1143945

購入検討中

809 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 06:39:50 ]
>>807
iがイテレータだからだよな
パッと見だと分からないね

810 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 08:31:16 ]
んなわけねーべw > 考える、分からない



811 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 03:55:43 ]
インクリメントされるint型がポインタで渡されてる(´・ω・`)???
って、一瞬なるよ。

812 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 08:09:01 ]
iじゃなくてitにでもしておけばいいな。

813 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 08:29:41 ]
>>811
ならねえよ。

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だなって分かる。

814 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 10:40:45 ]
そんなのできないだろ
コンセプトマップ貼り付けられる組み込み型ってポインタだけでしょ?

815 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 11:25:20 ]
>>805はイテレータの名前がiになってるから違和感あるんだな
あまりイテレータをiって名付けてるソースはないと思う
itとかiteとかiterとかならよく見るが

>>814
んなこたない。組み込み整数型も関数型もいけるはず。

816 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 11:36:51 ]
そもそもループ変数がiなのはiteratorから来ているんじゃないの?

817 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 11:37:56 ]
intだろ……、と思わずマジレス。

818 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 11:40:12 ]
indexじゃなかったか?

819 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 11:40:52 ]
intだろうとiteratorだろうとループ変数で使うならiだなぁ
スコープが狭くて使用頻度が高ければ1文字は基本ですよねー

820 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 12:30:30 ]
オッサンがマジレスしちゃうぞー



821 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 14:04:54 ]
数学の積分で使うiはindex?

どっちにしてもiとかjとかnという変数を見たら整数だと思うよ
FORTRANerじゃないけど

822 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 14:13:26 ]
よくわからないけどintegralでは?

823 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 14:16:34 ]
頻度が高いからこそ二文字変数にしてインクリメンタルサーチで引っ掛けやすくすると言うこともあるが。

824 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 14:55:42 ]
>>816
iotaからきてるはず。
だからC++0xには
void iota(Iter first, Iter last, T value)
なんて関数が<numeric>に入るんでしょ。


825 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 15:03:31 ]
C++スレ見てたから、なぜitoaが?
卵から鶏が・・・とか思ってしまったんだぜ

826 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 20:52:23 ]
え、素直に、FORTRAN の最初の整数値変数のiから来てるんだと思っていたが
算術周りは後付でしょ

827 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 20:59:50 ]
大本は数学で行列や数列の要素を書くのに下付き文字でa_ijとか書いてたのだろ
1800年代からの習慣だ

828 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 21:06:31 ]
それはそんなに古くない習慣だと思うが

829 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 01:56:50 ]
>>814
ConceptG++で動いているコードだよ。

830 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 01:27:12 ]
ユーザー定義リテラルのサフィックスに使えるのって'_'+小文字で始まるものだけ、で合ってる?
_で始まらないのサフィックスは予約されてるし、identifierには違いないから
'_'+大文字や__でを含むのもダメなんだよね?



831 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 01:51:40 ]
'_'+小文字の識別子はファイルスコープで予約されているのだが。

832 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 02:03:03 ]
>>830
literal operatorかliteral operator templateとして定義されている識別子ならOK
www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2800.pdf

833 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 17:24:49 ]
>>831
嘘はよくないな

834 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 18:00:24 ]
コンセプトよくわかんないから質問していい?

concept B<typename T> {/*...*/}

concept D1<typename T> : B<T> {}
concept D2<typename T>{ requires B<T>; }

D1とD2って何が違うの?

835 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 19:18:36 ]
refinementのばやい、concept_mapを定義すると、
refine関係のあるconceptでも、concept_mapが自動生成されます。


836 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 20:01:36 ]
つまり、D1の場合は

concept_map D1<Foo>{/*...*/}

だけでconcept_map B<Foo>も自動で作られるけど
D2の場合はそうならない

で合ってる?
てことはauto conceptの場合は全く同じでいいのかな

837 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 21:45:15 ]
そうです。auto(以下りやくのところは節立てして書いてあります。
implict conceptがどうしたこうしたと。
仕様書から読み取るのは結構大変なんで、
六人記名の紹介論文を熟読することをお勧めします。
とはいえ、酔っぱらってて、チャックしないで書いてるから間違ってたらゴメンネ。
上のは14.9.6だとあてずっぽうで書いときますw

838 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 03:18:02 ]
d.hatena.ne.jp/faith_and_brave/20081224/1230109605
"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() のようなごく自然なコードが
不正となってしまう。

839 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 08:55:41 ]
今の記述で十分。
m17nしたければgettext()使えばいい。

840 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 11:34:01 ]
>>839
たとえばファイルが開けなかったときの例外を表示するときには開こうとしたファイル名が
表示されてほしいんだけど、投げる側で what() にファイル名が入るようにしてたら
gettext() に支障が出るんじゃない?



841 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 20:28:14 ]
>>838
この人らは何者なの?
最終ドラフトにこんなに要望したって通るわけないだろ
これ以上禿に日本の悪い印象与えるのやめて

842 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:31:50 ]
誤字の訂正とか真面目な部分もあるけど、
std::string、char*をUTF-8前提にしろとか言った奴は頭悪すぎ。
>>840
そういうことをwhat()に押し付けないで。

843 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:51:16 ]
>>841
機械振興会館でやってるから、情報規格調査会のWGに集まった人たち、って
ところだね。なんか変な香具師が混じったんだろ。

844 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 23:07:00 ]
what 内で表示すればいいんじゃね。

845 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 23:51:41 ]
>>841
C++0xに関する作業はもうISO/IEC JTC1のWGへ移ってる。
ここでは上がってきたドラフトに対して各国の代表 (national bodies) が
コメントを出し、それを受けて手直しして、最終版 (FCD) を作り上げる。
そしてそれを national bodies による投票に掛けて、通ればISO/IECの規格として成立する。

日本は情報処理学会というところがnational bodyとして出席していて、
>>838はそこの関係者。

846 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 00:02:35 ]
そうか、正式な日本代表なのか

あんなのが日本代表の正式な意見書になるのか…

847 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 00:34:41 ]
ここの5.4.7に名簿が
ttp://www.itscj.ipsj.or.jp/meibo/MeiboIndex.html

848 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 00:37:52 ]
最終版はちゃんとまとめられると思うよ。
国際規格に対するJISの貢献は結構大きいよ。
本家WGに参加する日本人はまだ少ないけれど。

849 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 00:39:22 ]
>>842
「そういうこと」って何?
捜査対象ファイル名の表示を what() でやらないとして、ほかにどうするの?

850 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 00:45:44 ]
C系の言語規格の立場としては、
そういうのはローカルプラットフォームの規約や
コーディング規約でやってねってことになっているんじゃない?
少なくともMBSについては。
// WCSだとwstringパスに対するfstream APIが増えたけれど。




851 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 00:56:44 ]
>>850
完全にアプリ側だけで使うものならそれでもいいんだろうけど、
std::exception は標準の例外として bad_alloc やら ios::failure やら
stdexcept のやつらを同じ方法で扱うためのインターフェースとなるべきだろう。

そうでなければ、毎回 bad_alloc, ios::failure, ... の catch を分けて書け、とでも言うの?

852 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 01:05:51 ]
>>842
無理だろjkって空気だったよ、あの場でもさすがに。結局、コメントには残ったみたいだけど。

853 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 01:17:17 ]
wchar_t と Unicode がごっちゃになってる Windows オンリーな人なんだろうなと思う。

854 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 01:45:01 ]
>>851
std::stringにマルチバイドキャラクターストリング入れて悪いわけじゃないから、
やりたい奴は勝手にやればいい。ただそれだけ。


855 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 01:56:50 ]
>>854
だからさ、それじゃ「std::exception の what() を表示する」っていうコードが書けないじゃん。

今のドラフトじゃ
throw std::runtime_error("実行時エラー");
throw std::runtime_error(u8"実行時エラー");
の両方が黙ってコンパイルできてしまうし >838 にある "may be ..." にどちらも
違反しない。複数のライブラリを使ってたりすれば同じプログラム内で両方使われてる
可能性だって出てくる。 catch (std::exception const&) {...} 中でどうすりゃいいんだよ、
って話。

856 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 02:01:02 ]
>>855
標準の枠内で書きたければそうすればいいし、
枠からはみ出る必要があればそうすればいい。

> だからさ、それじゃ「std::exception の what() を表示する」っていうコードが書けないじゃん。

問題ない。表示されるかどうかは、
取り出してからどう扱うかと環境によるってだけ。



857 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 02:07:43 ]
>>856
> 標準の枠内で書きたければそうすればいいし、

「標準の枠内で書く」ということがどういうことか定まらないのが問題なんだろ。

> 問題ない。表示されるかどうかは、
> 取り出してからどう扱うかと環境によるってだけ。

「○○だと困る」って話をしてるのに「問題ない。○○ってだけ」とか、もうね。

858 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 02:10:43 ]
定まってる。
charには何を入れてもいい。


859 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 02:17:20 ]
>>858
「何を入れてもいい char の列を表示するコード」、ってバイナリダンプとか?

860 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 02:20:07 ]
>>838
localeとfacetで出来るよ。




861 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 06:31:00 ]
>>842
「真面目な部分」として「誤字の訂正」をあげるようなヤツに「頭悪すぎ」とか言われたくないなw

862 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 07:31:16 ]
変なのが沸いてるな・・・

863 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 08:49:40 ]
what()のメッセージに付記入れるなら__func__にも付記欲しいな
人が読めるようにとかオーバーロードやテンプレート実体化ごとに区別付くようにとか
縛りがないとどうせマングリング名になるだろ

864 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 17:09:44 ]
和製の処理系とか見たこと無いんだけど。
JISにおけるC++規格って誰が使うの?

865 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 17:17:38 ]
富士通が処理系出してたよ。
templateも結構まともだった。

866 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 17:33:23 ]
日立もつくってますね。
boostもサポートされているようです。


867 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 17:45:13 ]
ほぇ〜、意外。
ぶっちゃけGCCからフロントエンドパクればいいだけじゃんとは思うんだけど。
なんか自作する理由があんだね。

868 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 17:55:49 ]
大型やっているところなんでも揃えとかないといけないから。
あれがないって事になると顧客を失う。

869 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 00:40:53 ]
pc11.2ch.net/test/read.cgi/tech/1219719677/
こっちで話題になってるんですが"default constructed"って何なんでしょう
詳しい人いませんか

870 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 00:46:57 ]
default constructorによるconstructのことだろ。



871 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 01:01:42 ]
クラスはそれでいいんですけど
"default constructed"された非クラス型が
value initializedされるのかdefault initializedされるのかが問題なんです

872 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 01:58:58 ]
POD 型の場合、0 初期化されるの? されないの? って問題だな。

873 名前:デフォルトの名無しさん [2008/12/27(土) 02:51:38 ]
これってさぁ、基底クラスにObjectは採用してくれるの?

874 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 02:52:54 ]
JavaのObjectクラスみたいな全クラスの暗黙の基底クラス?
するわけがない

875 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 08:59:56 ]
>>864
あ、NECもSXシリーズのためにコンパイラ作ってましたね。
スパコンのベンダはだいたいC++のコンパイラを作っている、と。


876 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 10:16:00 ]
>>873
void*でエエがな。リフレクションならtype_infoを継承してリフレクション情報
を混ぜたクラスをtypeidで返すように各ベンダがすればいいだけだし。
関数テーブルが標準で乗るような設計はC++の理念に反する。

877 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 14:53:09 ]
>875
SXC++はtemplateが哀しいほど使えないぞ
complex<>も遅くて話にならないし

878 名前:デフォルトの名無しさん [2008/12/27(土) 15:12:12 ]
Objectが基底クラスじゃないからライブラリや設計が面倒くさいのに・・・
templateで無理やりぶん回すこともなくなるのに

879 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 15:26:31 ]
>>878
あんまりプログラミング言語のこと知らないんだね。

880 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 15:43:41 ]
>>878
キミObject型を何につかってんの?
現C++はSmalltalkやObjective-Cの様にObjectクラスが
存在しないとオブジェクト生成すらままならないという訳じゃないんだけど。



881 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 15:49:43 ]
むしろC++はノイマン型アーキテクチャを直接叩ける言語にしては、
異常なくらいプリミティブ型へのサポートも厚い言語。
登場した時は恐れ入りました感があった。

今流行りの言語ではプリミティブ型コンテナの
ボクシング/アンボクシングが盛んだけど、
そのきっかけの一つになったと思っている。

C++は今のやり方を貫いて欲しい。

>>880
Objective-Cは、プリミティブ型のことは知りません、
Cで取り扱ってくださいって態度。

882 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 15:49:46 ]
Smalltalk ならともかく、他の言語で単一継承モデルを採用している理由はなんなのかな
多重継承時のトラブル対策のみ?

883 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 15:59:16 ]
interface/protocol があると多重継承はあんまり要らない気がする

884 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 16:01:19 ]
>>881
SymbianやAndroidなど組み込み機器用のOOPとして現役だしね。
>>878みたいなことしても、客が逃げていくだけで何のメリットもない。

>>882
実装継承以外がinterface, trait, conceptになっただけで、
今は事実上多重継承ばかりかと。

885 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 16:10:08 ]
てか、Objective-Cとか知ってる人間からすると、
実装無しで継承って(笑)と思ってしまう。
interfaceなんかはあくまで、型システムによって機能しなくなった
メッセージングを補完する為だけの苦肉の策で、本来の継承とはかけ離れたよに思う。


886 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 16:15:54 ]
>>884
Mixinは実装多重継承との関わりがあると言っていいんじゃないの?

887 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 16:16:12 ]
>>872
されない
struct foo {
 char bar[1000000]
}
が自動的に初期化されたらいやだろう
デフォルトコンストラクトは文字通り「何もしない」ので不定値が入る

888 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 17:05:41 ]
Objective-Cとか知ってる人間(笑)

889 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 17:09:20 ]
>>882
多重継承は仮想関数テーブルが複雑になって実装が面倒だからじゃね?

890 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 17:14:00 ]
>>888
そうか?見識が広がっていいと思うぞ。
C++とは真逆の言語だからね。





891 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 17:38:32 ]
>>889
invokeinterfaceやmixinでも同じだよ。

892 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 18:00:09 ]
>>891
問題は仮想継承辺りの扱いかもね。

893 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 18:04:36 ]
いい加減exportの扱いどうにかならんか?
0xなるんだから委員会も、もう少し強制するなりしろや。
コンパイル速度が遅くてかなわんぞ。

894 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 18:10:27 ]
exportは実装に見合うだけの利益はないよ。
コンパイル時間が一割ぐらい早くなるかもしれんが、exportによって、
今までできなかったことができるようになるとか、そういうことは一切ないから。

895 名前:875 mailto:sage [2008/12/27(土) 18:35:24 ]
>>877
実際に使ったことはないのですがw
情報ありがとうございます。
まあ、日立、富士通、NECといったスパコンベンダは
C++コンパイラを作っているのは事実、ということで。


896 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 18:58:54 ]
>>887
引用スレに書かれている通り、foo() の書き方だと0初期化だよ。その互換性の話をしているんだと思う。

897 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 19:26:09 ]
>>894
 そんなにみみっちいかなぁ。
 GCCのpragmaでやってるような、翻訳単位ごとにテンプレートのインスタンスが
発生するという事態は改善できるだろ。それから、ヘッダーの見通しもよくなるし、
STLの内部実相の為にベンダーが用意した__imp__comperなんて関数も取り込まなくて
済むようになる。(ファイルスコープが効く)
 まぁ、実装が一つしか無いから机上の空論ではあるけどね。

898 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 19:34:04 ]
class Parent
{
public:
int Method(int);
};
class Child:Parent
{
public:
using Parent::Method;
};
って感じのprivate継承とか
static using
{
 struct
 {
  int a,b;
 };
 char c:
};
みたいな無名共同体。
int (Class::*member)=0;
の様なメンバー変数に対するポインタ(メンバー関数では無い)
なんて、使ってる人いる?むしろ使ったことある人いるか?

899 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 19:38:46 ]
private継承は使うだろ普通に
無名共用体はC++ではあんまり使わないかもしれないけどCではよく使う

900 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 19:40:03 ]
上に関しては、そんな書き方初めて見た。
それprivate扱いなの? 書き忘れ?



901 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 19:50:43 ]
>>900
C++のclassはアクセス指定を省けば
基本private。structはその真逆。

902 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 19:58:21 ]
なるほど、そのルールは継承にも適用されてたのね。。

903 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 20:22:20 ]
メンバー変数に対するポインタは、
自作インタープリタ上のオブジェクトを
C++のクラスに結び付けるテンプレートを書いた時に使ったことがある。


904 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 23:43:57 ]
メンバ変数に対するポインタは
リストの prev/next のどちらにも適用できる処理を書く際に使えたりする。

905 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 02:18:43 ]
いよいよ09年なわけだが

906 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 03:41:14 ]
今年中に纏まるとは思えないのだが。

907 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 03:59:11 ]
日本限定なら09年度という便利な言葉が使えるんだが。

908 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 04:04:08 ]
それでも猶予は4ヶ月しか増えないのだが

909 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 06:57:41 ]
いや、そもそも0x年まであと27年もあるわけだが

910 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 07:08:47 ]
C++0xa



911 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 09:10:41 ]
(++0x)
だからあと2年猶予があるぞ

912 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 09:13:14 ]
どうせ急いで制定してもC++プログラマの大多数は飛びつかないな・・・

913 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 10:13:30 ]
とりあえずautoだけでも早く使えるように頼む

914 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 16:07:46 ]
いやいやunique_ptrを

915 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 16:14:38 ]
スレッドの概念が入るだけでありがたい

916 名前: 【豚】 【282円】 mailto:sage [2009/01/01(木) 23:19:47 ]
variadic templatesが使えるようになるのはいつですか

917 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 23:25:07 ]
2011

918 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 07:47:47 ]
>916
gcc 4.3 以降を入れれば今すぐにでも。

919 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:38:53 ]
const int n1 = 10;

constexpr int n2 = 10;
って何が違うの

920 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:42:53 ]
右辺が整数定数なら差はないんじゃね



921 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 13:49:48 ]
constexpr って導入する意味あるの?


922 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 13:58:07 ]
constexprな関数の導入に意味がある。

923 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 14:25:05 ]
constexpr constructor凄く便利。

ダラダラと逐次的な初期化コードや
それを含む初期関数を書く必要がなく、
データを宣言的に書ける。

924 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 21:38:33 ]
>>923
kwsk... constexpr って(有る程度複雑な)計算結果が定数として扱えるように
なるとしかわかってないんですが、それがデータが宣言的にかけるとは
どういうことでしょう?

925 名前:923 mailto:sage [2009/01/04(日) 23:00:49 ]
日本語訳もあるからググれ







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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