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


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

C++0x 3



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

wiki
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/


17 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 21:54:28 ]
boostのsharedポインターと比べて、GCって重いの?

18 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 22:00:00 ]
あれって「ベーム」って読むのか……

19 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 22:10:33 ]
>>17
ケースバイケース

20 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 22:14:10 ]
ぼえへむヽ(´ー`)ノぼえへむ

21 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 00:19:53 ]
GC はあまり言語仕様に入れて欲しくはない。
標準ライブラリにあるのは別に構わんが。

C/C++ は色んな環境に使えることが肝なんだろうし、
そういうのは強制するもんじゃなくて
選択肢としてはありますが強制ではないですよってものであってほしい。

22 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 00:24:30 ]
強制するしないと、言語側かライブラリ側かは別の問題だよ。
個人的には「強制しない」「言語側」を支持する。

23 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 00:42:54 ]
gcnew みたいなやつか。
まさに C++/CLI だけど、あの珍妙な文法を見ると・・・。

24 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 00:59:21 ]
C++/CLIは考え方としては悪くないと思う。でも確かに文法設計のセンスは悪い。

25 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:07:33 ]
Foo<Hoge^>^
      ↑笑うなよ!



26 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:09:14 ]
今や Unicode が普通なんだから、もうちょっとマシな文字を使えよ、ってかw

27 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:10:43 ]
なんなんだろうな、あれは。
C++界隈で相当に有名な人が設計していて、
目指す方向は悪くないのに。
やっぱり言語設計は別物なんだな。

>>22
俺も言語側に何かないと今出てる以上のものは難しいと思う。
けど最低限のもので、汎用に使える聞こうにして欲しい。
まあ禿がいる限りそう言うものしか出てこないだろうけども。

28 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:12:33 ]
Pascalの時代は、^を↑と表示するシステムがあったらしいが…

29 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:13:45 ]
>>26
Foo<Hoge※>※

30 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:16:12 ]
Foo<Hoge/>/

31 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:27:29 ]
Foo<Hoge\>\
Foo<Hoge@>@
Foo<Hoge!>!
Foo<Hoge*>*

32 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:39:01 ]
* に対応する記号としてはやはり / だな・・・。
積つながりの & は既にアドレスや参照で使われてるし。

33 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:42:56 ]
Foo<Hoge/>/
ちょっとXMLっぽいw

34 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 10:28:02 ]
>>26
m17n界隈にはcharacter set independenceとかISO 2022に執着してる
アンチUnicodeの人がまだ生きてるし、変換表地獄でリアルに困ってる人もいるから、
EBCDICを気にしなくていい環境でもASCIIの範囲をはみ出すのはやめた方がいい。
特にメタ文字に使うような記号類は化けやすいし文字幅問題も出てくるから。

35 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 10:50:56 ]
女子中学生の話題でもちきりですね



36 名前:デフォルトの名無しさん mailto:age [2008/03/08(土) 12:35:01 ]
gcc4.3キター
gcc.gnu.org/gcc-4.3/cxx0x_status.html
Status of Experimental C++0x Support in GCC 4.3

Rvalue references N2118 Yes
Rvalue references for *this N2439 No
Variadic templates N2242 Yes
Static assertions N1720 Yes
Declared type of an expression N2343 Yes
Right angle brackets N1757 Yes
Default template arguments for function templates DR226 Yes
Extern templates N1987 Yes

C99 Features in C++0x
__func__ predefined identifier N2340 Yes
C99 preprocessor N1653 Yes
long long N1811 Yes

もちろんg++起動オプションでオンにしたときだけ。
gcc.gnu.org/gcc-4.3/changes.html

37 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 12:48:43 ]
こんせぷとまっぷはマダー?

38 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:01:56 ]
Right angle brackets N1757 Yes
うおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお

39 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:26:47 ]
ケータイからだとさっぱりわからん
詳しく

40 名前:デフォルトの名無しさん mailto:age [2008/03/08(土) 16:29:48 ]
携帯からでも読んでワカラン奴は必要ないということ。

41 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:34:38 ]
右辺値参照 N2118 Yes
*thisの右辺値参照 N2439 No
可変個引数テンプレート N2242 Yes
静的アサーション N1720 Yes
式に対するdecltype N2343 Yes
山括弧閉じの件 N1757 Yes
テンプレート関数のデフォルトテンプレート引数 DR226 Yes
Extern templates N1987 Yes

42 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:35:26 ]
DR226キター!

43 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:36:26 ]
>>38
ktkr

44 名前:デフォルトの名無しさん mailto:age [2008/03/08(土) 16:38:50 ]
結局、Proposed resolution (revised October 2002)でアクセプトされたのかな。
www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226
draft読まないとな。ディフォルト引数便利だし。

45 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 17:50:46 ]
>>6
相手は誰だ…
うらやましすぐる



46 名前:デフォルトの名無しさん [2008/03/08(土) 18:43:27 ]
ローアングルブラジャー!?(;゚Д゚)ポロリもあるよ!!

47 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 00:34:38 ]
最後の書き込みがブラジャーだと哀れなので保守

48 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:09:10 ]
Javaのクロージャが、
制御文やループ文のブロック仮引数使えて面白いんだが…

withLock(lockVar) {
// do something
}
void withLock(Lock l, {Lock => void} b) { ...

for foo(T i : aCollection) {
// do something
}
void foo(C<T> c, {T => void} b) { ...

49 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 00:05:23 ]
ラムダ式はN2550でだいたい決まりかな
<> が [] になって、中にキャプチャ変数並べられるようにしたと
return は省略できないぽい?

50 名前:デフォルトの名無しさん [2008/03/26(水) 00:09:48 ]
おまえら最新ドラフト来てるなら知らせてくださいよ

www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2588.pdf

51 名前:デフォルトの名無しさん [2008/03/26(水) 00:12:15 ]
しかしラムダを導入するために新しいキーワードを入れる気はサラサラないんだな

52 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 02:27:35 ]
識別子に利用できるトークン列を割り当てると、
下方互換性がなくなるからね。
あまり奇怪な記号列も困るけどラムダ式は俺的にギリギリセーフ。

あとconceptのexportは取り下げられたねw

53 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 02:56:22 ]
コンセプトのexport?
まさかテンプレートのexportと同じように、
別の翻訳単位のコンセプトを参照する機能?
そんなのあったんだ。そりゃはいらないだろうなぁ

N2550を、今読んでいるんだけど、文法がものすごくキモいな。
本当に新しいキーワードがほしい。
新しいキーワードさえあれば、
どこでlambdaを使っているか、メモ帳ですら検索できるのに。




54 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 03:27:16 ]
俺も素直にキーワード導入した方がいいと思う。
検索のやりやすさが全然違う。

55 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 04:26:40 ]
N2550を読んだのだけれど、lambda-parameter-declarationって、
もしかして省略できる?
つまり、

[](){}() ;

と同じ意味で

[]{}() ;

は可能?

しかし、邪悪なコードだ。




56 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 07:11:36 ]
ラムダ用に新しい記号を導入してくれれば・・・

57 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 11:20:09 ]
そんなに互換性を気にするならひらがなでも使えばいい。
std::for_each(v.begin(), v.end(), ら(int x) {std::cout << x;});

58 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:15:33 ]
λでいいじゃん。

λ.....トボトボ

59 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:30:25 ]
#define lambda []
#define closure(captures) [captures]
こんなんほしいかもな。

60 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:31:44 ]
>>55
文法のところにはっきり opt と書いてあるだろ。

61 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:02:17 ]
$ 使おうぜ

62 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:21:48 ]
盲点なような気がするが、\ を使えばいい気がする。

63 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:36:11 ]
よくない

64 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 20:23:14 ]
inlineとか使えそうだけどな

int n = 10;
auto x10 = inline [n] (int a) { return a * n; }

65 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:04:17 ]
inline キタ━━━━━━(゚∀゚)━━━━━━ !!!!



66 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:47:25 ]
そこでvolatileですよ

67 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:55:47 ]
export でどうだ

68 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:57:59 ]
extern だな。

69 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:58:59 ]
inline は正直結構イケるんじゃないかと思った。

70 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:01:07 ]
#define Lambda

71 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:02:11 ]
書いても書かなくてもいいタイプのマクロは害悪にしかならない。
構文に影響を与えるタイプのマクロも混乱を招くしかない。
しかし元の文法からして微妙。
どうすればいいんだ。

72 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:43:51 ]
おまえらもうあきらめろw
100回くらい使ってれば慣れるよきっと

73 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:44:27 ]
自分はいいんだ。問題は一見さんとかに説明するとき。

74 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:42:10 ]
「100回くらい使ってれば慣れる」って説明すれば良いのでは?w

75 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 05:49:53 ]
decltype(x) lambda(x) { return x; }



76 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 07:40:59 ]
美少女中学生にバイブをプレゼントした時みたいな反応だな

最初の抵抗感から最終的な快感への淫靡なプロセスをたどるわけだ

77 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 10:58:46 ]
いや、その形状がドン引きするような感じだって話なのではw


78 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:49:13 ]
というか美少女中学生にバイブにしろ何にしろ何かをプレゼントする機会なんてあるのかよ。

79 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 13:39:31 ]
あるか、ないか、ではなく、つくるんだよ。迷惑だろうけど。w

80 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 19:36:34 ]
プレゼントではなくセクハラです。

81 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 20:01:37 ]
何イッとるんだこのスレは

82 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 20:11:06 ]
女子中学生にラムダを教えるにはどうすればいいのか検討するスレです

83 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 21:25:26 ]
女子中学生にランダバを教えたい

84 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 23:25:53 ]
ランバダのことか。

85 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 23:27:34 ]
>>83-84フイタ



86 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:16:53 ]
しかしあのラムダの構文は邪悪すぎると思うのだが ...
旧キャスト並に邪悪だ。

87 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:21:24 ]
何が邪悪ですか?
旧キャストとはCスタイルのキャストのこと?
だとして、構文が邪悪?

88 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:23:29 ]
おい誰か lambda introducer に inline 強制しろって提案出してくれよ。
こういうときに、えぴなんとか通せばいいの?

89 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:35:49 ]
本来その手の提案とか defect report とかは comp.std.c++ が窓口なんだけど、
今年に入ってからトラブってるらしいんだよなあ。他の人はどうしてんだろ。

90 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:41:35 ]
とりあえず proposal のところに書いてあるメルアドに投げとけばよいような?

91 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 07:53:48 ]
いや、やっぱ [&] (const employee& e) {e.salary()=...}
とかいう構文は邪悪でしょう...

92 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 09:39:32 ]
だから、どう邪悪なのか説明してくれんと頭の悪い漏れには判らん

93 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 11:27:58 ]
個人的には一つのまとまりとして見づらい構文はやめて欲しいなぁ。

94 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 13:27:49 ]
キーワードがあるほうが単純に検索できて良いと思うな。
そういう意味ではCスタイルキャストのいやらしさと似てる。

95 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 14:24:31 ]
そんなに検索したいなら/*lambda*/[〜とでも書けばいいだろ




96 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 15:22:33 ]
美少女中学生のグンゼのおばんつにおかんがマジックで名前を書いている状態か!

97 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 21:31:48 ]
for も if も検索しにくいけどね

98 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 21:46:43 ]
lambdaが検索し易くなければならない理由も判らなければ、
検索しにくい事がどう邪悪なのかも判らん
もっと判り易く説明してくれ

99 名前:デフォルトの名無しさん mailto:age [2008/04/07(月) 21:48:48 ]
関数適用だって検索しにくいしなあ
関数適用が検索し易くなければならない理由もないけど

100 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 22:29:38 ]
>>97-99
なんか必死だなあw
どちらかといえば探せたほうがいいかな、という程度の話なんだけどね。
関数の先頭とかも検索しにくいわけだから、構わんといえば構わんか。
あとは美観の問題だね。

101 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 22:39:50 ]
>100
その程度の話なら別にいいんだけど,
邪悪だなんて穏やかでない言い方してるから
なんか構文的に問題があるなら教えてくれ、ってだけなんだけど

102 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 22:41:37 ]
ここで言ってる邪悪というのは美観の問題じゃないかな。
構文の問題とかはさすがにないんだろ、偉い人が考えたんだから。w

103 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:13:22 ]
いや、どう考えても邪悪な類のコードだろ

104 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:17:11 ]
goto は何にでも使えるから邪悪なように、
使い回すにしてもどれを使い回すか結構考えないと、
goto と同じくらい邪悪になってしまう。

105 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:19:39 ]
ラムダ式の何がどう邪悪なのかもうちょっとkwsk



106 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:21:28 ]
レベルの低い奴は無視しろ

107 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:50:42 ]
おっぱいの標高が低い美少女中学生ならみっちりねっとりお相手をお願いしたい

108 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:51:44 ]
括弧が続いて読みづらい

109 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:57:24 ]
コンビネーションですむのにそうしないところがラムダ式の存在の邪悪さ

110 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:59:44 ]
それを言うならコンビネータじゃなかろか?

111 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:05:07 ]
何か勘違いしてるんじゃないか?
コンビネータもλ式の一種だぞ。

112 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:08:03 ]
単に [&] という三文字の並びがキモイ

113 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:10:44 ]
俺は >>112 だな。難しいことはよくわからん。w

114 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:12:54 ]
キモいよな。

115 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:18:39 ]
エディタのマクロで保存時にλを[&]に変換すれば桶



116 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:24:35 ]
白スクを着てひざを抱えつつこっちを見てにっこりしている美少女中学生にしか見えない

117 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:27:35 ]
ついにC++も AA 言語になってしまうのだなあ

118 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:40:30 ]
新しい刺激に慣れるのに時間が掛かるタイプの人がいるのですね

119 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:52:29 ]
いじりまわせばくせになる!!!!!!!!!!!!!!!!!!!!!!!!!

120 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 01:01:22 ]
Perl とかいつまで経ってもキモいし。

121 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 01:09:38 ]
美少女中学生のアレはキモくないぞ

122 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 01:10:04 ]
同じシンボルでも$とか@とか[]とかの付けかたで参照する変数が違うからなー

123 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 01:16:09 ]
つける下着で印象が変わるわけだな

124 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 02:02:33 ]
今<>のパース失敗してるみたいに
[&]とoperator[]が絡んでおかしなことにならねえかな

125 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 02:03:22 ]
"λ" が使えない処理系ではtrigraphとして "[&]" で代用しても良いというのなら許す



126 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 02:45:24 ]
autoでもわかるように、どうあっても予約語増やす気は無いんだろう

127 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 02:49:24 ]
おまえらはもうboostのラムダつかってなさい

128 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 03:03:30 ]
__TheLambdaExpressionKeywordOfC++0xとか絶対かぶらないようなキーワードにすればいいのに

129 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 07:31:32 ]
_Lambda をキーワードとして採用し、
#define lambda _Lambda を行うヘッダファイル lambda を用意すればいい。

130 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 08:31:41 ]
美少女中学生の全裸ランバダ

131 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 08:36:47 ]
>>129
それなんて _Bool ?

132 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 13:16:48 ]
美少女中学生と lambda がいい具合に入り乱れててワロタw


133 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 14:23:30 ]
ここまで来ると lisp 系言語の () の方が可愛く見えるな > lambda


134 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:27:05 ]
この先も予約語増やさずに変な記号の組み合わせや予約語の転用でどんどん機能増やしていくんだろうか
C++2xくらいでは酷いことになってそうだ

135 名前:デフォルトの名無しさん mailto:age [2008/04/08(火) 19:43:39 ]
オペレーター定義可能なHaskellに比べたら



136 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 20:06:52 ]
C++の将来は墓穴掘ってユーザーからサヨナラされそうだな

137 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 20:10:45 ]
既にもうマイナな言語だから大丈夫。今でも使ってる好き者たちなら付いてくるさ。w

138 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 20:19:48 ]
2029年か。想像できんな。
妄想してみるか。

・十分にハードウェアが高速になったとして、とうとうC++にもevalを導入
・メタプログラミングや賢いマクロを積極的に仕様に盛り込むことで、新たな文法を定義可能
 例えば、LispやPerl、Pythonはおろか、Brainf*ckやWhitespaceまでもがC++としてコンパイル可能
・現実世界で、本当にほしいライブラリが標準規格に盛り込まれる(XMLとかUnicodeとか)
・Bjarne Stroustrupがフサフサになる

C++以外の妄想
・宗教戦争は終わらない:言語、OS、コンパイラ、エディタ
・既に64bitが主流になり、32bitコードは16bitコードなみの扱いを受けている
・メモリを数十GB確保することは当然である
・そのようなハードウェアでも、最新の3Dゲームはまだ遅い
・96DPIより高いDPIのディスプレイが使われている。

139 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 20:31:44 ]
関数型言語が主流になっているだろうな

140 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 20:57:47 ]
>>138
2029年までC++は現役でいられるんだろうか?…
寧ろ、現役であることのほうが問題だとも感じてしまうのだが、C++0x仕様策定の経緯を考えると
僅か数年のライフサイクルの為にそんなことしないとも思えるわけで…
まだCPUが8ビットでOSなんか載ってなくて、アセンブリでがんがってた時代を顧みると、
既に量子コンピュータは無理としても量子マイコンみたいな4キュービットマシンがあったりしてw

そういやtime_tが32ビット符号付なLinuxディストリビューションが2038年にオーバーフローする件、
Y2Kのような事は起きないんだろうな
それまでにtime_tは64ビットは当たり前だったりするだろうし、CPUのレジスタやアドレス空間が
512ビット幅だったりしてねw
メモリはTBは余裕なんじゃないの?
15年くらい前は4MBとかだったのに15年程度で1〜2GBが標準だし
HDDなんかがTB越えてEBとか新たな単位がデファクトスタンダード化してたりして
妄想楽しかったわ

141 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:09:01 ]
>>138
・GCは本当にC++標準になるか?
・CRTPの果たす機能を、より一般的でかつ抽象的な機構で実現できないか?
・daemon method, accessor hook

142 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:12:28 ]
>>140
2038年問題は考えてたけれど、2029年には早すぎると思って入れるのをやめた。
人間が騒ぎ出すのは、大抵、問題がひっ迫してからだから、数年後に迫らないと、
本格的に議論されないと思う。

Y2Kのようなことはおきるね。32bitコードはそこらかしこで動いているだろうから。
一体誰がコンパイルしなおすの?

というか標準規格厨としては、POSIXのCライブラリは嫌い。
ANSI CやC99とは微妙に違うし。
というかそもそもCライブラリ自体が古いから、使われなくなってくれれば、うれしいんだけどなぁ。

>CPUのレジスタやアドレス空間が512ビット幅
というか本音を言うと、本当に64bitに移行できているかどうかも怪しい。
最悪、いまだにWindowsは32bit版が発売されているということも。

>HDDなんかがTB越えて
HDDに置き換わるものは、やはり20〜30年ぐらいじゃ無理かな。

143 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:27:47 ]
>>141
mixin だな。今の C++ に足りないのは。

144 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:29:44 ]
conceptはmixin風に使えるけど、
access controlがないのが痛いね。


145 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:31:58 ]
>>142
まあY2Kと同じで大した問題は起きないだろうな。
と油断しておけば、いろいろ問題が起きて楽しめるかも。w



146 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:36:25 ]
>>142
冷静に考えると、CPUのアドレスバス幅を512bitなんかにする恩恵は殆ど無いね
64bitでも十分なアドレス空間があるし
確かに、32bitCPUのライフサイクルは長かった、というか今も64bitコアを64bitとして使ってる
OSは全体からすれば少数だろうし

CはもうC++のサブセットでいいんじゃないの?
今もC++コンパイラがオプションでCコンパイル出来るけど…
よりOOP色、AOP色強くなればなるほど、C標準ライブラリを使用することへの危機感はでかくなる
だろうし…
POSIX俺も好きじゃないし、なんやかんやいいつつも、ISOベースでいいとおもってるし
直近じゃC++0x、boostの幾つかを標準ライブラリとしてstdネームスペースに取り入れるようだし
それはコンパイラとしては歓迎されるのかも?
新コンパイラ出たところで、2038年問題とも絡んで古いコードは存在し続けるわけで、古い
コンパイラを使うだろうから新しいライブラリを使用するのは暫く様子を見ることになるんだろうし

32bitのソースなど、下手すりゃポインタ変数のサイズ=4バイトと決めうちのコードもあるから
リコンパイルだけじゃ済まなそう…
アライメント違反も出そうだなあ

とはいえ、プリプロセッサが2029年まで残ってるんだろうか?
今の俺の脳味噌ではプリプロセッサが無いと大変に困るわけだけど…
EffectiveC++なんかに指南される
 #define FOO "foobarfoo"
よりも
 const char* const FOO = "foobarfoo";
を使え、これは分かるが、
#if/#ifdefが無いのは困るし、マクロ定義が使えずにインラインというのもそれはそれでデバッグログ
出すときに困る…

147 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:39:05 ]
2038年問題はスレ違い

148 名前:デフォルトの名無しさん mailto:age [2008/04/08(火) 21:40:01 ]
namespace階層入れて欲しいなあ。
stdがどんどん増えるのは好ましくないと思う。

149 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:49:59 ]
>>144
もうちょっとkwsk

150 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:56:36 ]
>>148
> stdがどんどん増えるのは好ましくないと思う。

わからなくはないが、STLの大半がコンテナであるうえに、stdというネームスペース名を考えると、
確かに新しい標準ライブラリは異なるネームスペースに入れて貰いたいという気もしなくもない
ついでに、マクロに C++0x 対応コンパイラなのかどうかを判別するマクロ用意して欲しいんだけど、
既にそれは予定済みだったりしてw

151 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:59:10 ]
C++ にはヘッダファイルってものがあるから
気軽に using できない。
そう考えると、あんまり標準ライブラリの階層深いと
ダルくなると思う。

152 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:08:51 ]
>>150
__cplusplusの値が増えているんじゃないの?

153 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:16:47 ]
>>151
それそれ、頼むからヘッダファイルで using namespace std; とかしないで欲しい!
だが、今のPRJではそこら中にあるんだよね…
そんなに std::string とか std::vector って書くのがめんどくさいのかね

>>152
それもそうだw
__cplusplusなんて値を意識しないもんなぁ extern"C" くらいにしか使わないからw

154 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:42:46 ]
美少女中学生を namespace 俺の姓; で囲んでバラ色の生活をだな

155 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:49:26 ]
ADL対策でstlの中にも名前空間を作っていけないとやっていけないんじゃないのか?



156 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:23:08 ]
>>151
単純にスタティックなオブジェクト言語の限界だと思うんだが


157 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:47:46 ]
>>151
ヘッダも今や階層化されてるし。
>>156
そんなの関係ないねえ

158 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 00:30:10 ]
>>157
> そんなの関係ないねえ
どんな意味で関係ないんだろ? >>151, >>156
> ヘッダも今や階層化されてるし。
このことを問題にしてるんじゃないのか?


159 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 00:45:23 ]
皆の見解をまとめると、これからはD言語の時代ってことか。

160 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 01:54:30 ]
それはない

何だかんだ言ってもここ20年間はおおむねCとC++の天下だったし、
それはこの先も変わらないだろうな

161 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 03:09:07 ]
関数型言語に取って代わられるだろうと予想する。
オブジェクト指向やC++にはスマートさで限界を感じる。

162 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 04:26:18 ]
まさか
LISPが誕生して50年になるけどその間に関数型言語が主流になったことなんて一度もないだろ

163 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 04:44:38 ]
>>162
ほんとにそうよね。

まあ、最近よく言われてるのは、
宣言型とか手続き型、静的とか動的の垣根がなくなっていくってのかな。

あとは、1つの言語で全部書くんじゃなくて、
多言語混在開発な方向に進んで行ってる。

というのを考えると、やっぱり C++ には限界を感じるんだけど。

164 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 07:18:34 ]
For me, easily the biggest news of the meeting was that we voted lambda functions and closures into C++0x.
・・・・・・・・・・・・・・・・・・
by Sutter
なぜlambdaやclosureに拘っているのかもわからん。
MSはF#に本腰を入れてるようだけど。
いずれにせよC++色々取り込みすぎて記述レベルに難があるとは思う。


165 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 07:48:48 ]
>>161
D言語はpure関数とかを導入して、関数プログラミングを取り込む方向で動いてるみたいだね。

www.digitalmars.com/d/2.0/accu-functional.pdf
どうなるかわかんないけど。



166 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 07:55:09 ]
ついおこづかいでアクセサリーを買い込みすぎてしまう美少女中学生

167 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 08:29:09 ]
>>166 美少女中学生以外は眼中にないのか?


168 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 08:57:25 ]
>>164
わからん方が鈍いと思うけどね。

169 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:15:35 ]
>>168
schemeをやってきた俺は勝ち組だがな。C++はのλはモドキだ。

170 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:25:40 ]
馬鹿丸出しだな。

171 名前:デフォルトの名無しさん mailto:age [2008/04/09(水) 09:30:06 ]
記述レベルに難がある
モドキ
だけじゃなくて、具体的に言わないと。
愚痴書くスレじゃないから。

172 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:32:05 ]
やっべー、薄っぺらいことがばれてもうたwww
でもテンプレートの可読性の低さは難だろ。キモ構文のオンパレード
それでもあなたはC++に期待しますか?

173 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:39:49 ]
メタをテンプレートで実現するのは難アリ。

174 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:45:09 ]
>>171
例えばscheme処理系は言語の機能として構文拡張が可能。
C++は言うに及ばず。

175 名前:デフォルトの名無しさん mailto:age [2008/04/09(水) 09:53:56 ]
Schemeと比べてああだこうだ言われても。
Schemeのプリミティブは強力だけど、
Schemeだって得意じゃないことは一杯あるし。

C++のclosureは、Javaの奴みたいに、
コントロール拡張について考慮されてないのが寂しいですねえ。



176 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 10:53:42 ]
>>175
>C++のclosureは、Javaの奴みたいに、
>コントロール拡張について考慮されてないのが寂しいですねえ。
もうちょっとkwsk

177 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 11:23:44 ]
jazoon.com/download/presentations/1680.pdf

178 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 11:25:27 ]
range-based for-loopと絡めたいね。

179 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 12:31:24 ]
>>162
まるでLISPが関数型言語みたいな言い方だな。w

180 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 13:17:07 ]
自分の知識がきっちりしていることをひけらかすだめだけの
細かい突っ込みは痛々しいよ。
その「句点のあとのダブリュー」に突っ込むくらい虚しいことだ。

181 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 13:17:51 ]
美少女中学生が丸出し!

182 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 13:35:51 ]
いい加減中学生から離れろ。

183 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 13:38:14 ]
そうだそうだ。中学生なんてババアだろ。

184 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 14:50:27 ]
>>180
あやふやな知識じゃ自慢できませんものね。w

185 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 15:14:33 ]
自慢というか、自爆。



186 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 16:44:56 ]
美少女中学生の初めての自慰はダイソーバイブと相場が決まっていてな

187 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 17:39:48 ]
つまりUnlambdaサイコー!ということですね
わかります

188 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 21:42:03 ]
>>177
遅くなりましたけれどありがとうございます.
finally 周りを省略するための使い方は, scope guard 系の技法に
lambda expression を組み合わせれば C++0x でもおよそそのまま転用できそうですね.
Listener に Event 設定したり, thread function の設定に使うのは
C++ だと lifetime の問題が出てくるのでそのまま転用するのが
難しい局面が出てくると思いますけれど,
これはコントロール云々とは直接は関係ないですかね.

189 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 15:51:50 ]
>>138
Dスレから来ました
> Brainf*ckやWhitespaceまでもがC++としてコンパイル可能
DでBrainfuckをDの関数としてコンパイルするサンプルはもう作ってみたよ。
C++でもテンプレートプログラミングが変態的になればできると思う。
メモリ管理がうまくいけばJavaあたりはC++で直接いけるような気がします

190 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 16:11:46 ]
Dか。
Dはやねうらおが一時期信者だったので敬遠してたんだが、
今は離れたみたいだし、ちょっと遊んでみようかな。
流行るとは思わないけれど。

191 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 11:57:20 ]
>>190
「誰々が信者だったから〜」
なんともくだらない理由だなww

192 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 12:15:17 ]
Rubyはまつもとが××信者だったから〜

193 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 12:50:57 ]
生理的に駄目なやつっているだろ

美少女中学生の生理なら駄目じゃないぞむしろ大歓迎

194 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 18:00:43 ]
製作者がGPL信者だったから敬遠しますた

195 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 18:02:33 ]
それは実害があるからしゃーないが・・・
坊主憎けりゃ袈裟まで憎いとか俺には一生分からない感情だろうな。



196 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 18:30:23 ]
「誰誰が信者だったから〜〜」
「坊主憎けりゃなんとやらか」
「でも今日は気にしないよ」
「あー、"今朝まで憎い"ってか」

197 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 18:43:42 ]
まつもとはいいかげん他言語を煽って目立とうとするのはやめてほしいんだが
煽りの内容もお前が言うなレベルの低次元なものだし・・・

198 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 19:10:56 ]
子供っぽい美少女中学生はどこが坊主?

199 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 19:27:21 ]
結局 Python に落ち着いた漏れ.
でも最近は仕事じゃPHPばっかりで萎える.

200 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 20:40:51 ]
まぁ標準みたいなもんだし

201 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 23:00:49 ]
C++0xはC++1xになるのだろうか…

202 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 09:07:38 ]
0f までいけるからまあ大丈夫だろ。

203 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 09:27:12 ]
07までだろ…

204 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 11:47:56 ]
それは盲点だった

205 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 11:50:32 ]
いいかげん0のプリフィクスで8進数リテラルっての止めて欲しい
誰も使わない上に紛らわしい

pythonを見習って止めるべし



206 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 11:51:15 ]
つ 互換性

207 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:32:37 ]
パーミション設定するときに使うべ。

208 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:51:09 ]
そうだな
パーミションは3ビットだから8進使うと便利だな

209 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:55:54 ]
そのために8進表記があるんじゃないのか

210 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:59:15 ]
別にパーミションのためにあるわけじゃないぞ。

211 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 15:00:11 ]
for all 3bit user

212 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:04:49 ]
それより2進表記を作ってくれ 0b0100110101010 みたいな

213 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:08:27 ]
読みづらいから D みたいに区切りを入れられるようにしてくれ。

214 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:27:33 ]
>>212
これ良く書かれてるんだけど
0xdcとかが11011100とかに見えないの?
実に不思議だ

215 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:28:57 ]
TMPで2進表記をする有名なサンプルがあってだな・・・



216 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:34:12 ]
>>214
「実質ゼロ時間・ゼロ労力」でできるのはせいぜいその辺の変換+αくらいで、
その程度ではまるで不便だから「よく書かれる」んだろう。

もし「0xdcが11011100に見えないレベルの人が」よくこの要望を出しているのだと考えているなら、
勘違いで自分を相対的に持ち上げすぎ。不思議っていうか、君が不思議ちゃんだよw

217 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:36:42 ]
頭の中で変換可能ならリテラルの表記は10進のみでおk
という話しになってしまうな

ただ二進数だと桁が多くなるから区切りがないと返って可読性落ちるな

218 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:40:15 ]
>>216
どういうこと?
16進と2進は直接4桁ごとに変換できるから2進表記はないんだろ?
そしてそれをほとんどができるから
よく書かれるってのは皮肉で書いたんだけど

219 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:40:54 ]
皮肉っていうのはおまえいつもそれ書いてるなって意味

220 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:02:42 ]
俺は脳内で変換できるから、5進数でも大丈夫

221 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:04:05 ]
16進でいいだろってのは釣りなんだから相手にしないでおけ。

222 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:28:35 ]
C系言語使うつもりなら
・2進 <-> 8進 <-> 16進の変換
・0xF*0xFまでの16進九九
・文字定数 <-> ASCII値
・主要な2^n値の10進表記(n=1〜16,20,24,30,31,32,40,63,64あたり)
くらいは身につけてるのが常識だし、マナーだと思ってたが
最近はそうでもないのか

223 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:30:39 ]
身につけるのが常識である事と、
そのままでいいこととは別の話だろ?

224 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:34:33 ]
そんなのまで言語側で面倒見るべきではないと思うぞ
九九を知らない奴が家を設計できるようになることが良いこととは思えない

225 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:34:38 ]
0b0100110101010
こんなのぱっと見て長すぎて分かりにくいし
たかだか16個のビットパターン覚えられないって方がネタだろ



226 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:38:18 ]
>>222
この辺、本当にそう思うならちょっと披露して欲しいと思った。
・8進16進変換
普通の人は、2進を介在させないと難しいと思う。
・16進9x9
必要になるケースがレアすぎる。
・2^nのnが40とか64とか。
nが16以下なら普通に言えるけど。nが32でさえ桁数が多すぎて普通は無理。

227 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:38:20 ]
D みたいに自由にアンダースコア入れれるようにすればいい。

228 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:38:45 ]
>>222
そんな化石言語使いません。

229 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:39:30 ]
マクロとか書けるけどな。
でも、できるなら言語的にサポートされてほしい。

230 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:40:18 ]
0b001101000101ならすぐ0x345とわかるけど
これを0b1101000101とか書かれると困る
0bの後に続く数は4の倍数個に制限するべきだが、導入されたとして多分そうはならないだろ
だったら有害なだけ

231 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:40:59 ]
いや32なら簡単だろさすがに

232 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:41:41 ]
>>231は思いっきり勘違い

233 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:42:55 ]
>>230
D ではこう書く。

0b11_0100_0101

234 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:43:18 ]
特にメモリが4Gに迫って色々あったり2038年問題の影がちらつきだしたこのご時世に
2^31と2^32の10進値も知らないコンピュータ技術者がいるなんて信じたくない

235 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:44:27 ]
だから、概数を覚えていることと全桁そらで言えることは違うって。



236 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:45:06 ]
およそ40億としか覚えてなかった
1048576までなら覚えてるけど

237 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:45:36 ]
20億代と40億代だと覚えておけば、
細かい値が必要なときだけ電卓でポンでいいだろ。
無駄な事覚えるのはタダのバカ。

238 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:48:05 ]
約21億と約43億としか覚えてないなぁ
けど2^24は16777216って覚えてるな

239 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:48:14 ]
>>234
2^10 = K
2^20 = M
2^30 = G

で十分だ。

240 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:49:04 ]
>>238
俺も 16777216 は覚えてるな。
何か覚えやすい並びだしな。

241 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:50:18 ]
>>239
Gってのは文脈によって1073741824・1047586000・1024000000・1000000000を意味する可能性がある
全然十分ではない

242 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:51:08 ]
>>239
2^10=1024も知らないとか冗談だろ?

243 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:51:51 ]
1024 は流石に知らないと恥ずかしいな。

244 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:53:29 ]
>>241
例えば伝送速度は1k=1000、メモリ容量などは1k=1024換算だ。

>>242
んなもん覚えてるわ

245 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:53:37 ]
2^31=2147483648は結構覚えやすいと思うんだけどな
万の区切りで48が2回出てくるし偶数桁目に4,4,3,4って調子よく並んでるし



246 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:54:10 ]
>>241
文脈だって、馬鹿じゃね

247 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:54:58 ]
2^8 = 256
2^10 = 1024
2^15 = 32768
2^16 = 65536

これはおさえとかないと確かにマズいな

248 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:56:38 ]
データ容量でキロを1000メガを1000000と解釈するのは記録メディア業界だけ?

249 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:56:51 ]
0xFFFF = 65535
これで覚えてる

250 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:58:21 ]
>>248
メディア業界でも会社によってメガが1000000だったり1024000だったりするから困る
(1048576であることはまずないけど)

251 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:58:28 ]
てかC++0xのスレだよな?

252 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:59:21 ]
いつまでも0bなんて粘着に持ち出すゆとりのせいで荒れたじゃないか

253 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:04:49 ]
0bを導入するメリットがあるとすればフラグを表す定数なんかで
#define FLAG_A 0b00000001
#define FLAG_B 0b00000010
#define FLAG_C 0b00000100
#define FLAG_D 0b00001000
#define FLAG_E 0b00010000
#define FLAG_F 0b00100000

なんて表現ができて初心者がフラグの定義の仕方を直感的に理解できるくらいか?
それ以外のメリットが思いつかん・・・



254 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:06:21 ]
#define BIT(n) (1u << (n))

#define FLAG_A BIT(0)
#define FLAG_B BIT(1)
#define FLAG_C BIT(2)
#define FLAG_D BIT(3)
#define FLAG_E BIT(4)
#define FLAG_F BIT(5)

とかの方が分かりやすい

255 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:07:07 ]
0b literals considered harmful



256 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:10:50 ]
Gauche使え

257 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:12:27 ]
そういう思い込み書き込むスレじゃないからw
マ板行けよ

新しい関数型の記法です。->を使う。
www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm

typedef int IFUNC(int);
IFUNC* fpif(int);
 ↓
auto fpif(int)->int(*)(int)

template <class T, class U> decltype((*(T*)0)+(*(U*)0)) add(T t, U u);
 ↓
template <class T, class U> auto add(T t, U u) -> decltype(t+u);


258 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:17:28 ]
コンパイラの都合臭がする記法だよな

259 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:19:27 ]
constexpr long operator prefix"0b"(const char *literal_string){
  long n=0;
  for(; *literal_string; literal_string++){
    n = (n << 1) + *literal_string - '0';
  }
  return n
}
こういうのが出来れば0b厨もおとなしくなるのに

260 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:21:37 ]
なんか盛り上がってると思ったら、記憶力自慢の子が来てたのか。w

261 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:21:55 ]
typedefの何が気に食わなくてこんなキモい構文を

262 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:36:31 ]
こういうのを見るとC/C++って下品なプログラミング言語だと思うよな。

263 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:37:58 ]
>>262
そこがいい。下品な俺たちにぴったりなのだ。

264 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:50:37 ]
>>261
templateの例はtypedefじゃきついだろ。

関数型表記の無理やり感がついに破綻しましたね。

265 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:51:05 ]
>>260
というかその人達、これだけ会話が続いてもまだ
「16種類のビットパターンを覚えられないから0b表記を欲しがっている」
と思い込んでるのが痛い。



266 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:58:44 ]
>>265
ごめん、違うの?

267 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:59:45 ]
>>266
違うに決まってるだろ。
その記憶力でちゃんと日本語を覚えような。

268 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:04:25 ]
ごめんなさいバカなのでわかりません
0bには16進のビットパターンを覚えられないゆとりのため以外にどのような利点があるのでしょうか

269 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:06:34 ]
最近のGCCは独自拡張で0bを持っている。

270 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:07:39 ]
>>268
バーカバーカ

271 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:09:47 ]
>>268
保守性の向上

272 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:10:36 ]
0bでは保守性向上しないだろ・・・

273 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:12:12 ]
他の言語に採用されてる事に関しては疑問を持たないのかね

274 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:18:02 ]
何を言おうと標準化委員会に却下された時点で0b厨の敗北は決定している

275 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:20:56 ]
>>271
0bの方が読みやすい、だから保守性が向上するんだ!という主張ですね?

つまり0xを読めない奴でも保守できるようにするための機能ということですから
16進のビットパターンを覚えられないゆとりのための機能という意味ですね
解答になってないですね

「16進のビットパターンを覚えられないゆとりのため」以外の理由を教えて下さい
この馬鹿な私に教えて下さい



276 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:21:57 ]
>>274
こういう下品な理由こそが C++ に相応しい

277 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:22:32 ]
>>275
君は馬鹿というより単純だと思う

278 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:24:26 ]
面倒くさいから
「ゆとりと仕事する(或いは保守をやらせる)かも知れないから」
でいいんじゃね

279 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:24:42 ]
>>275
一行目と二行目の間に凄い飛躍があるなw

280 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:26:55 ]
>>279
0xが読めるなら0xだろうと0bだろうと保守性は変わらないんですから
0xが読めない人にのみ意味のある保守性の向上ということですよね?

普通に読めばそういう意味になると思いますが
どのような飛躍があるのか教えて下さい
単純な私に教えて下さい

281 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:31:06 ]
読める人でも分かりやすさに差があるし、
2進で書くか16進で書くかによって
コードに込められた意図に差が出ることだってあるだろ。

282 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:31:06 ]
>>280
「読める」と「読みやすい」の違いは判る?

283 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:31:27 ]
そもそも16種類のビットパターンすら覚えられないような奴が
73種類もある(しかも多くは多重に意味のある)C++の予約語を覚えられるわけがないから
そういう奴は普通に考えてC++をいじるような仕事が出来るわけがないと思うんだが
0b入れたとしてもさ

284 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:32:20 ]
駄目だ、こいつ粘着だよw

285 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:32:53 ]
>>280
読みやすさなら圧倒的に16進だろ
0bには別のメリットがあるに決まってるじゃん馬鹿なの?



286 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:33:16 ]
16進テトリスとかやったことあるけど、
やりづらいことこの上なかったぞw

287 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:33:17 ]
>>283
本当に単純なんだね

288 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:33:36 ]
>>281
そんな意図はコメントやドキュメントに書くべきであって
リテラルの形式に勝手にそんな暗黙の約束を置く方がかえって保守性下がると思うんだが

289 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:34:54 ]
じゃあ for とか while とかじゃなくて goto 使ってください。

290 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:35:29 ]
>>282
それはもちろんゆとりでも対応表を片手に一つずつ変換していけば読むこと自体は出来るに決まっていますから
今までの「読める」はすべて「読みやすい」の意味だと思って下さい
言葉が足りなくて申し訳ありませんでした

では改めて「16進のビットパターンを覚えられなくて0xを読みにくいゆとりのため」以外の理由を教えて下さい

291 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:35:33 ]
10進と16進の使い分けだってやってるだろ?
まさか意味も無く16進使ってるわけはないよな?

292 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:36:41 ]
>>288
Unixのchmodも10進数で書いちゃう人ですか?

293 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:38:17 ]
>>289
forが出てくれば繰り返しだとわかるけど
コード中に「0xAA」と「0b10101010」が説明なしに出てきて
一体どうやってプログラマの意図をくみ取ればいいんだ?
同じ数だぞ?

294 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:38:32 ]
chmodを16進で書くのも読みづらいな。
あれは8進で書くべき。
2進が欲しいってのも似たような理由だな。
2進の方が分かりやすい所では2進が使えた方がいい。

295 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:39:59 ]
2進が使いやすいとしたら4ビットせいぜい8ビットまでだろ
それ以上はかえって読みにくくなるし
読みやすさのためだけなら必要ないと思うんだけど



296 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:40:16 ]
>>293
例えば5ビットずつ情報を与えたい場合であれば、
0b11011_11101_01011 と書けた方がいいだろう。

297 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:40:52 ]
10進と16進の使い分けはそりゃあるだろう
おおむね「ビットに意味のある数」が16進でそうじゃない数を10進で書くよな

さて、2進で書きたい数というのは多分「ビットに意味のある数」だろう
16進とどう使い分けるんだ?

298 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:41:22 ]
5ビットずつってのは16ビットRGBを扱う際に出てくる。

299 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:42:18 ]
0bが却下されてる理由なんだったっけ
ビットオーダーが環境依存だからだっけ?
でもシフト演算子の << >> の方向にあわせて0bの記法をきめちゃってよさそうなのにな。

300 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:42:30 ]
そんな書き方16進数でもできないじゃん
これ_挟むの

301 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:44:22 ]
できるようにすればいいじゃん。

302 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:44:54 ]
RGB(なんたら)ってマクロでも使えばいいんじゃないの

303 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:45:41 ]
>>299
ビットオーダーって単なる値には特に関係ないんじゃないかと思うんだが。
つか、それ言い出すと16進数もやばいんじゃね?

304 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:46:26 ]
メモリ上にはそんな区切りはどこにも存在しないのに
勝手にそんなもの入れられるようにして何が嬉しいんだ?

305 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:46:53 ]
その釣りは流石に稚拙だ



306 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:49:16 ]
0x__________________1____________________________0________________________
とか書けるようになるんだろ
きめえ

307 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:54:26 ]
_ を連続させられないようにすればいいだけだろ・・・そんなの。

308 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:56:11 ]
>>307
お前はマクロ引数の反省を全く学んでいないんだな

309 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:57:08 ]


310 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:57:27 ]
個人的にはどっちでもいい。(特に欲しいとは思わないけど、入っても構わない)
おまえらの執着心には感心する。

311 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:01:14 ]
導入されてる言語があって、そこで別に不自由ないんだから、
導入されても別に構わんだろ。
使いたくなきゃ使わなきゃいいんだし。

312 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:01:32 ]
ここは変態言語らしく1〜36進数までサポートしようぜ

313 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:04:42 ]
>>311
そんなのはC++の標準団体に言えよ
とりあえずそんな消極的な理由じゃ話にならない

314 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:06:41 ]
委員会に却下された理由ってなんなの?

315 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:06:53 ]
そういえば85進数でIPv6書こうっていうRFCがあったな



316 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:07:25 ]
おお・・・驚異の1進数・・・
でも、便利そうな状況はありそうな気がするから困る。

const char hoge[] = "abcdefg";
size_t btof =    0u11111;

とか。

317 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:07:52 ]
等幅で見て

318 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:14:30 ]
一進数は便利だ
数えれば幾つかすぐ分かる

319 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:17:40 ]
#define unitary(s) (sizeof(s)-1)

unitary("11111"); /* == 5 */

320 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:18:36 ]
unitaryじゃなくてunaryか

321 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:18:48 ]
そこはこうだろ・・・

#define unitary(u) (sizeof #u - 1)

unitary(11111); /* == 5 */

322 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:23:46 ]
今でも8進数の数字に8や9が使えちゃうことだし
0b入れたとしても中で2や3が使えることになってカオスになりそうだからいらない

323 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:25:36 ]
エラーになるけど??

324 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:26:17 ]
コンパイラが親切なだけじゃないの?
規格上はおkだったはず

325 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:34:45 ]
octal-literal:
 0
 octal-literal octal-digit

octal-digit:
 0 1 2 3 4 5 6 7

と書いてあるが・・・。



326 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:36:29 ]
あれ?
昔の話だったかもしれん。すまん

327 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:46:32 ]
K&Rの2版で8と9は使えなくなったと書かれていたが。

328 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 10:18:06 ]
C89の仕様ができるまでは、
そのへんルーズな処理系がいっぱいあってなゴホゴホ

329 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 16:44:18 ]
ビットマスクには2進を使いたいじゃんね

330 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:25:44 ]
15年前にアセンブラからCに移った時は欲しくて仕方なかったけど、
リテラル書くって、要するにマジックナンバー書くってことじゃん。
ダメ。
マクロなり変数なり関数なり、名前を付けてそれ使いなさい。
だから不要。

331 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:28:58 ]
その理屈だと整数リテラルはすべて禁止だな

332 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:29:05 ]
マクロ/変数(定数?)/関数が返す値をどうやって書くかという話なんだけどな。

333 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:35:07 ]
1ビットだけならマクロ使って何ビット目が立ってるか書いた方が分かりやすいが、
複数ビットある場合は微妙かもしんないな。

334 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:44:01 ]
結局はこう書いてこう使うだろ
#define FLAG_HOGE 0x01
#define FLAG_FOO 0x02
#define FLAG_BAR 0x04
...

if(flg & (FLAG_FOO || FLAG_BAR)){
  ...
}

これが「#define FLAG_BAR 0b00000100」になったからって読みやすいとはとても思えないし
「if(flg & 0b00000110)」なんてのを書くようなら0b関係なく論外(「if(flg & 0x06)」だとしても同じこと)

335 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:46:55 ]
64ビットの2進リテラルはきもい



336 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:46:59 ]
もう想像力の欠如した粘着の相手はやめようぜ

337 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:48:50 ]
ここは想像力の欠如した粘着と
想像力がありすぎる女子中学生好きのスレ


338 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:52:09 ]
なんで || なんだよー

339 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:53:22 ]
「1ビット目と3ビット目と4ビット目と9ビット目と12ビット目が立ってるか判定するときに
if(flg & 0b100100001101)って書ければ便利じゃん?0x90dって書くよりわかりやすいじゃんじゃん???」
ってのが0b厨の希望ということですね

規格に意見する前にもっとましなプログラミングスタイルを勉強した方がいいと思いますよ

340 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:02:14 ]
面白いキャラ設定に興奮するのはいいけど、
相手より先に自分が興奮してると馬鹿にしか見えないですよ。

341 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:10:57 ]
なんか自分を規格を策定する側にいると誤解して、必死に規格の正しさを言い張ってる
お子ちゃまがいますね

342 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:12:17 ]
お前ら>>257にも少しは意見を寄せろ

343 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:12:59 ]
まだやってるのかよ

344 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:16:54 ]
こうまで論争の余地のある機能なんだったら
だったら入れるだけ入れて、使うかどうかは実装者に任せるのが
今までのC++のスタンスとして正しい

345 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:34:27 ]
>>257
typeof(T+U) add(T, U)(t t, U u);

Dだとこうかな。TやUがstaticなopAddのオーバーロードを持ってると上手く動かないけど。



346 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:38:58 ]
美少女中学生にオーバーライド

347 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:06:18 ]
議論の余地ないだろ
入れろって言ってるやつが16進数表記では自分は読めないって以外の理由を
いまだ示せていないし

348 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:15:29 ]
それが最大にして絶対的な理由だとなぜ気づかないんだ

349 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:15:32 ]
読める読めないのみ議論の論点だと言い張ってる馬鹿が議論を放棄してるだけ
読める読めないが論点だと言うのなら、10進数表記以外に16進数表記が必要な理由でも説明してみろ

350 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:18:00 ]
論点もなにもただのスレ違いだろ

351 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:18:54 ]
プログラミング言語の全ての機能は可読性のためにあるんだよ
それがいらないって奴はBrainfuckでも使ってろ

0bが入ったって少なくとも可読性が下がることはない
だったら入れるべき

352 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:19:43 ]
>>349
ありません。
16進数表記を必要としている人は、10進数を脳内で16進数変換できない頭の悪い人だけです。
だから俺は要りませんよ、16進数。

353 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:19:54 ]
16進数が必要なのはコンピュータが2進数だから
そのコンピュータを低レベルで扱おうとしたとき16進数で書けた方が
人間にとって読んだり書いたりしやすくなる

354 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:20:45 ]
>>349
16進数表記はビット演算のためです
そして2進数表記も入るとすればビット演算のためです
同じ機能は2つもいりません

355 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:21:02 ]
勘違いしてるようだけど10進数と16進数は変換できないぞ
16進数と2進数はできるけど



356 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:21:53 ]
じゃあ8進数が(ry

357 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:24:10 ]
自説を曲げる気のない人にどれだけ言っても無駄じゃない?
なんか恐ろしく単純な人みたいだし

358 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:25:21 ]
0bが欲しいって言ってるやつは0bと0xの変換が計算が必要な面倒な作業だと思ってるんだろうな

359 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:25:42 ]
>>354
単項の - があるんだから、二項の - は廃止したほうが良いだろうね。
そのほうがシンプルになるだろう。

360 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:26:26 ]
でなければ>>352みたいなことは書けない

361 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:26:35 ]
p-> なんて贅肉。(*p). だけでいい。
p[i] もいらね。*(p+i) だけでいい。

362 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:26:53 ]
>>358
0bが要らないって言ってるやつは単純な二元論者だから、シンプルな人生が歩めるだろうね

363 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:27:06 ]
10進と16進の変換は下位桁の状況が上位にずっと波及するから計算が面倒
2進と16進は(2進の)4桁ごとに変換が閉じるから楽ちん

こうですかわかりません

364 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:27:55 ]
徹底的に無視される8進数カワイソス

365 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:28:07 ]
素人にも理解できる問題は盛り上がって良いね。
そろそろ専用スレでも建てようか?



366 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:28:40 ]
しかも読みやすくなるならまだしも長ったらしくて読みにくくなるだけだし

367 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:28:44 ]
>>361
p[i]はマジで害悪にしかなってないからなくなった方がいいと実際思ってる
まるでCに配列が存在するかのような幻想を初心者に与えて混乱させる元凶になってるだけ

368 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:28:59 ]
区切り入れられるようにすれば読みやすいと何度言えば

369 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:29:42 ]
ただの荒しだろこいつら

370 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:29:53 ]
>>367
バカすぎる・・・

371 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:30:46 ]
それで読みやすくなるコードが既に誤ったコーディングスタイルだってことも指摘されてるのに

372 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:31:17 ]
権威主義に落ちてるのさ。批判的精神を失ったら、もう技術者としては終わりだ

373 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:31:55 ]
一人で両方の意見を書いてるマッチポンプ野郎が2人くらい来ている気がする

374 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:32:02 ]
[]がなかったら宣言ができなくなる

375 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:32:07 ]
>>371
定数を定義するする地点で使うことに問題は無いと何度言えばいいのだろうか。



376 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:32:39 ]
>>368
何の機能もない表現をプログラム本文中に入れるのは問題だと思う
本文中の記号はプログラムの動作に何かをもたらすものでなければいけない
(使われ方次第では無意味になることもあるとしても)

377 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:33:36 ]
>>376
それで読みづらくなるんだったら意味が無い。ただのバカだな。

378 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:33:53 ]
>>376
おまえ、改行と空白を敵に回したな

379 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:34:10 ]
コメントも敵に回してるな。

380 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:35:27 ]
>>377
何の意味もない記号なんてものが(コメント以外に)ある方がよほど読みづらいわ

381 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:35:50 ]
>>380
そろそろ苦しいから諦めろ。

382 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:36:01 ]
>>378
トークンを区切るという立派な仕事があるじゃないか
0bの中のアンダースコアはそれすらないんだぞ

383 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:36:12 ]
>>376
ぜひ作ってくれ。
全てのトークンがプログラムの動作に影響を与える言語。

384 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:36:26 ]
盛り上がってきたね。いいぞいいぞ。どちらも負けるな。もっとやれ。

385 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:36:37 ]
>>382
Dでそれが問題になってるという話は聞かない。
ただの妄想に過ぎないな。



386 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:39:04 ]
>>383
C++は全てのコメント以外のトークンがプログラムの動作に影響を与えうる(もちろん与えないこともある)言語ですよ

0bの_は「絶対に」プログラムの動作に影響を与えない
0bXYと0bX_Yが違う意味を持つということはいかなる文脈でも絶対にない
無意味だと思わないか

387 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:39:41 ]
上のほうで書かれてた5ビットずつのRGBってのもビット列自体に意味はないから
こんなの使う必要ないと思うんだけど

388 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:40:30 ]
>>386
別に?

389 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:40:50 ]
>>382
自明的にトークンを構成する文字の前後に冗長な空白を入れるのは禁止したほうが良いですね

390 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:42:16 ]
>>386
「違う意味を持つということはいかなる文脈でも絶対にない」トークン列なんて無数に考えつくけど

391 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:44:22 ]
変数名内の _ の使用も禁止。
全部英小文字のみにしろということか。

392 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:44:34 ]
唯一使えるとしたらアイコンかなんかのパターンを記述するとき
ソースを見ただけでどんなアイコンか見当付きやすいってことくらいかな

他になんかある?

393 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:45:09 ]
>>390
いやいや、そりゃあるだろうよ
でもそのトークン列で使われている記号はどれも、別のトークン列の中でなら区別に貢献する可能性があるわけだ

0bの中の_という記号は、それがどんな数値定数の中でも区別に寄与しない
機能自体が全く無意味なんだよ
あるトークンの中で無意味というのとは次元が違う

394 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:47:22 ]
>>393
トークン間(空白等)は良くて、トークン内は許せないとする論拠は?

395 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:47:40 ]
何でそれがダメなのか明確な理由が述べられていない。
さっさと言え。



396 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:47:49 ]
>>391
D言語と同じようにするならその問題はない。

397 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:49:48 ]
変数名に使える文字に _ を含めてる時点で
プログラムの見た目は非常に重要な要素だということを
言語レベルで認定しているようなもんなんだがな。

398 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:52:17 ]
>>394
トークン間の空白はあるとないとで全く意味が変わる可能性があるじゃないか

ab /*「ab」という識別子*/
a b /*「a」と「b」という2つの識別子*/

_はあってもなくても絶対に何も変わらない

0b11 /* 10進数で3という数 */
0b1_1 /* これも10進数で3という数 */
0b____1___1_________ /* どう入れてみた所で3という数は変わりはしない */

_によって意味が変わることはどんなプログラムにおいても存在しない
だから無意味なんだ

399 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:53:35 ]
>>397
abとa_bとa__bは違う識別子です
0b11と0b1_1と0b1__1は全く同じ意味です

400 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:53:36 ]
int ab = 0;
int a_b = 0;
int a_b = 0;

意味は変わらないな。

401 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:54:07 ]
>>398
何故無意味か説明できていない。
早く説明してくれ。

402 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:55:35 ]
>>401
0bの中の_にプログラム的に意味がある場合がもしあるなら教えて下さい

403 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:55:40 ]
>>398
空白だって連続している場所では意味を持たない、そうでない場所では意味を持つ
'_' だって数値リテラルの中では意味を持たない、そうでない場所では意味を持つ(識別子等)

さほど大きな違いがあるようには思えないのだが。

404 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:56:46 ]
>>402
動作に違いが無いこととその存在が無意味であることには乖離がある。
なぜなら、プログラムはコンパイラだけが読むものではないからだ。

405 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:57:28 ]
>>402
特定の文脈(この場合は0bの後)でのみ意味を持たないってだけでは?



406 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:57:55 ]
>>401
398の説明で理解してもらえないとすれば
プログラム中の記号に「意味がある」というのはどういうことなのか
あなたの考えを聞かせていただきたい
可読性とか動作に関係ないことは除いてね

407 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:58:40 ]
可読性に意味が無いと言う >>406 のプログラムは
たいそう汚いんだろうな。

408 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:59:51 ]
そもそも必要あるの?
0b001_110_011 なんてやるより
(AAA | BBB | CCC) とかのほうが分かりやすいと思うんだけど

409 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:00:42 ]
>>408
場合によるのでは?
極端なケースは上で出てきたアイコンのデザインとか。

410 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:01:42 ]
ビットだけで考えてる人がいるようだが、
Dでは2進数に限らず _ を入れられるわけで、
長い10進数に区切りを入れるのもアリだ。

411 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:02:30 ]
>>406
お前プロジェクトで人の話聞かないで周りに色々迷惑かけてそうだな
>>376から続いてる話なのにどうして「可読性に意味が無い」なんて馬鹿な読み方が出来るんだ?

412 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:02:46 ]
move semanticsのディープな話題が出たときには沈黙してるくせに
おまえらって奴は

413 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:03:30 ]
頭のおかしい奴が話を引っかき回してるようなので一回寝る

414 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:04:44 ]
>>412
ムズカシイ話はワカラナイもん

415 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:04:57 ]
>>410
そういや、お金の計算だと三桁ごとにカンマを入れるなぁ。
カンマの代わりに"_"を入れることができると。
int yen = 100_000_000;



416 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:05:26 ]
>>403
確かにそう言われてしまうとそうなんだが
識別子中の_とリテラル中の_というのは全く別の扱いになる機能で
一方は全く無意味というのはどうなのかと

417 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:05:43 ]
たまたま開いたら面白そうな話してたから参加してるだけ
普段はどんな話してるのか知らない

418 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:06:25 ]
互換性的にはどうなの
__1とかって識別子になったっけ

419 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:06:48 ]
>>418
途中にしか入れられないようにすれば問題ない。

420 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:09:45 ]
・・・まさか >>413>>376 なのか・・・?
・・・ゴクリ。

421 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:14:09 ]
もうC++0bにしちゃえよ

422 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:16:00 ]
実際そうなりそうで怖い。2011年。

423 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:26:43 ]
そんなに無意味な表記が嫌いなら一生マシン語でコード書いてろ

424 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:33:18 ]
プログラミング言語自体、
マシン語のシンタックスシュガーみたいなもんだからな。
あくまでみたいなもんだけど。

425 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:36:17 ]
>>412
美少女中学生の話も食い付き悪くてさみしい




426 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:58:02 ]
>>425 昔から知的で美人の大学生のおねいさんの方がいいに決まってるんだが...


427 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 21:19:59 ]
>>425
そんなオバサンの話されても。

428 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 21:29:25 ]
構成された美少女中学生そのものが意味なのだ

パーツのどこそこに意味があるだのないだのとあげつらってみても
それらが集合して美少女中学生を構成しない限り意味を成すことはない

美少女中学生の一部分だけ見つづけると観察者はゲシュタルト崩壊を起こす
0b論も同じこと
いくら論じてもこの美少女中学生の現時点の美少女っぷりにはなんの影響も与えない

繰り返す
構成された美少女中学生そのものが意味なのだ

429 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 22:04:51 ]
それは脳内美少女中学生ってことで FA?


430 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:08:55 ]
お前らバイナリバイナリうるせーんだよ。

#include <boost/static_assert.hpp>

template<unsigned int v, unsigned int n> struct binary_i{
private:
BOOST_STATIC_ASSERT((n % 10) <= 1);

public:
enum{ value = (n % 10) + (binary_i<v, n / 10>::value) * 2 };
};

template<unsigned int a> struct binary_i<a, 0>{
enum{ value = 0 };
};

template<unsigned int v> struct binary{
enum{ value = binary_i<v, v>::value };
};

std::cout << binary<1001110101>::value << std::endl;

431 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:13:32 ]
10桁までしか使えないじゃんか・・・。
もっといいマクロならそこら辺に落ちてる。

432 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:16:57 ]
最低128ビットくらいは使いたいんだけど

433 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:18:04 ]
0bでスレが加速するってどんだけスレ違いなんだよ

434 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:22:48 ]
文句があるならそのマクロとやらを使ってとっととこのスレから出て行きやがれ

435 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:31:21 ]
ここはconstexprを使った例を出すべきだろ…
C++0x的に考えて



436 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:39:07 ]
どんな底辺プログラマが書き込んでるんだ?

437 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:39:51 ]
boost の static_assert は式版のがないのがうんこだな。
#define BOOST_STATIC_ASSERT_EXPR(b) ((void)(char(*)[(b) ? 1 : -1])0)
くらい用意してくれないと constexpr で困る。
・・・って、constexpr の引数って静的な値として認識されるんだよね?

438 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 01:03:38 ]
>>437
式版の有る無しで何が変わるの?

キャストやカンマ演算子は定数式にはなれなかったような気がするし、
静的な式なら評価タイミングも関係ないし、あんまり意味が無いような。

439 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 04:35:03 ]
#define 0B_00001111 0xff

440 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 06:56:57 ]
そうなのか・・・。
じゃあ constexpr の引数をチェックできないの?

441 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 10:27:41 ]
>>440
メタ関数書けば?
外向きに一段 constexpr 関数かませば使いやすくはなるかも。

442 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 10:44:57 ]
>>432
2進数を128桁も書きたいというお前がマレw

443 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 13:28:45 ]
static_assert の式版とかいうやつを使って
具体的にどういうコードが書きたいのかもうちょっとkwsk

444 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 19:18:59 ]
式に置換するマクロで

#define TOHEX(n) (STATIC_ASSERT_EXPR(sizeof #n <= 9), 0x##n)

みたいなことをやってんだけど、
まあこれはそのまあ constexpr にするわけにゃいかんが、
constexpr の引数を静的にチェックしたいと思ってね。
typedef が constexpr の中に入れれるなら別に
BOOST_STATIC_ASSERT を使えばいいんだけど、どうだっけ?
無理なら return STATIC_ASSERT_EXPR(hoge < 10), hoge; みたいなことができれば
面白いなあと思ってね。

445 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:37:44 ]
いまさらだけど、0b の話って、
www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2378.pdf
が採用されたらさらに一般化されて解決されるんじゃないの?
誰も上で話に出してなかったけど ...



446 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:42:09 ]
ユーザ定義リテラルは誰か途中で書いてなかったっけ
つうか0bの話ししてる奴の大半はドラフトなんか読んでないんじゃね

447 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 23:38:21 ]
>>445
キモイ記法になるから組み込みにして欲しいって話だと思ってた。

448 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 00:21:30 ]
>>445
>>259を忘れないで。
たぶんこれのことだよね?

449 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 00:49:32 ]
>>259を理解できていたらここまでスレは加速しない。

450 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 01:23:02 ]
あれって入る見込みありそうなの?

451 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 01:23:26 ]
たぶん無理

452 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 03:11:10 ]
入ったとしても定義できるのはサフィックスだけだから
0bは無理なので厨はお気に召さないだろう

453 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 07:23:28 ]
別にサフィックス b でいいよ。

454 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 07:29:49 ]
#define b0 0
#define b00 0
#define b000 0
// ... 一つの数値に128通りの#define
// = 2^129個の#define

455 名前:445 mailto:sage [2008/04/15(火) 09:59:34 ]
すいません、アホな言い合いが続いていたので 259 を読み飛ばしてました。
でも constexpr って今の定義だとそんなに中にいろいろ書けないんじゃ?



456 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 18:47:23 ]
ループを手動でアンロールすればいいっしょ。

457 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 18:47:45 ]
ああ、配列アクセスしてる時点で無理なのか。

458 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:59:46 ]
N2378 と最新のドラフト読む限りでは
suffix しか無理ながら,とりあえず constexpr リテラル化はできるような?
>>259 みたいに for 文を使用 (して,かつ constexpr 化) することは
現在の提案ではできないみたいですけれど

459 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 00:27:15 ]
ようやくらしくなってきたが、未解決なのは変わらずか。

460 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 03:32:48 ]
constexpr unsigned char operator "b" (unsigned int value) {
 return (value % 10 != 0) | ((value / 10 % 10 != 0) << 1) | ...;
}

このくらいならできるのか?

461 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 07:28:12 ]
5bitしか扱えないけどね

462 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 07:36:04 ]
いつの時代の住人だ

463 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 11:24:41 ]
N2378 と N2588 に従うと以下のような感じになるとは思うんですが,
いかんせん以下をコンパイルして確認できる環境が存在しないので
間違いがある可能性が高いです.

template<char C>
unsigned long long binaryDigitToNum();

constexpr unsigned long long binaryDigitToNum<'0'>(){ return 0; }

constexpr unsigned long long binaryDigitToNum<'1'>(){ return 1; }

template<unsigned long long I, char C, char... TAIL>
constexpr unsigned long long binaryLiteralImpl()
{ return binaryLiteralImpl<I << 1 + binaryDigitToNum<C>(), TAIL>(); }

template<unsigned long long I, char C>
constexpr unsigned long long binaryLiteralImpl()
{ return I << 1 + binaryDigitToNum<C>(); }

template<char C, char... TAIL>
constexpr unsigned long long operator "b" ()
{ return binaryLiteralImpl<0, C, TAIL>(); }

普通の raw-form literal operator だと, '0', '1' 以外が来たときに
compile-time error を吐かせる方法がいまいちピンと来なかったので
variadic template form を使いました.

464 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 12:22:30 ]
しかし、この例をみるにつけても C++0x は変態ですね

465 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 19:32:22 ]
これはまだ分かりやすい方だろ。



466 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 21:30:21 ]
美少女中学生は変態さん。なんと制服の下で身体を縄で縛って学校に行っちゃうのです

467 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 22:31:32 ]
マジレスすると疲れるだけで全然えろくも変態でもない。

468 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 23:03:57 ]
>467は人生の勝ち組

469 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 05:34:54 ]
0b狂がいなくなったら誰もいなくなった

470 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 10:36:22 ]
mailing2008-03読んでるけど、
0bで馬鹿らしくなって>>257くらいしか書き込んでないw

471 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 10:53:04 ]
美少女中学生は空を見上げ待ち続けている…

472 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:20:10 ]
C++0xで2進リテラルを作成するスレを別に立てたらどうだ?

473 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:22:39 ]
糞スレたてんなよ

474 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 01:15:32 ]
>>473
読まなければ良いのでは?

475 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 01:22:22 ]
糞スレを立てると無駄なCO2を排出することになります



476 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 01:31:12 ]
俺様のゲップに含まれるメタンガスに比べれば無視できる量だけどな

477 名前:デフォルトの名無しさん [2008/04/23(水) 08:11:49 ]
美少女中学生が排出したメタンを肺いっぱいに吸い込みたい

478 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:33:53 ]
つ (美少女の)硫化水素

479 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 12:15:45 ]
お前らスレタイ0x100回読め

480 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 18:33:01 ]
スレンダーでタイツの似合う美少女中学生が俺の嫁

481 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 18:35:18 ]
256回読みましたがわかりませんでした

482 名前:デフォルトの名無しさん [2008/04/26(土) 22:18:03 ]
>>481
美少女中学生について語ってはならないとは
スレタイにもテンプレにも書いてないんだが

# 個人的には平面の方が好きなんだけどな


483 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:25:12 ]
C++0xは3次元あるいはそれ以上の次元を持つとはどこにも書いていないぞ。
まあ2次元とも決まっていないがな。
#ん、C++タンの出番だな。

484 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:27:23 ]
N2582
新しい関数宣言方法(ラムダ式と同じ形にする案)
[]foo(int x) -> int { return x; }

485 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:30:30 ]
[] は大変キモいので、こういうマクロを標準で提供して欲しい。
lambda とかいうヘッダファイルを用意して。

#define labmda []
foo(lambda foo(int x) -> int { return x; });



486 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:33:19 ]
typo したがキニシナイ

487 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 00:49:50 ]
[] にはもう既に慣れちゃった

488 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:30:50 ]
委員会のキーワード忌避は強迫観念レベルだな

489 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:33:59 ]
それほど既存のソースが多すぎるのさ。
そこはしゃーないと思う。
でも、C99 の #define bool _Bool みたいに
互換性を保ちつつキーワードを導入するテクはもっと使ってもいいと思う。

490 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:48:53 ]
無名関数のおかげで無名構造体にコンストラクタとデストラクタを搭載できるようになりました!
大勝利ですね!

491 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 04:06:37 ]
一方ロシアはコンストラクタをthisで定義できるようにした。

492 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 11:12:49 ]
なんでlambda expressionのlambda-return-type-clauseって、
->を使うんだろ。
コロンじゃだめだったのかな。
たとえば、普通の関数も統一しようぜっていうN2582も、
こんな風に書けるのに。

[] func() : int
{
  return 0 ;
}

493 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 11:35:23 ]
#define : ->
は無理だったっけ ...

494 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 11:44:20 ]
>>492
見た目が違うだけじゃんw

495 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 13:33:02 ]
 [] main(int argc, char* argv[]) -> int
 {
  //...
 }




496 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 18:35:05 ]
>>492
コロンはコンストラクタの初期化子と競合しそうだな。

497 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 18:38:20 ]
コンストラクタでは戻り値の型がないから大丈夫じゃね。
文法的な紛らわしさに関してはまああるかもしれないが。

498 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 18:46:28 ]
ECMAScript4ってそんな感じじゃなかったっけ
いやだなぁ

499 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 19:30:15 ]
function func() : int { return 0 ; }
だったか。ECMAScript4は文法キモすぎて見たくもない。
いつのまにかコンストラクタの初期化子まで採用してるし。

500 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 19:35:51 ]
テンプレートもあるよ!
function func.<T>() : T { return new T(); }

501 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:35:43 ]
ぐはぁ

502 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:42:16 ]
しかしなぜ->なんだ
Haskellかよ

503 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 21:04:22 ]
プログラミング言語 Scala
pc11.2ch.net/test/read.cgi/tech/1205156417/

Scala違いだ移動しる・・

504 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:49:10 ]
returnでいいじゃんかよ
コンフリクトはないはずだ

[] func() return int
{
  return 0 ;
}

505 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:50:51 ]
なんかもうどうやってもキモいんだが。



506 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:52:00 ]
ラムダ式くらい 100% 型推論でやってくれ。

507 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:53:18 ]
そもそもどうしてラムダと形を合わせたいんだ
コピペのためか?

508 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:56:04 ]
関数型言語的には→なんだから、
->でいいんじゃないの?

509 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:58:39 ]
関数型言語的にどうかは知らんしどうでもいいが
C系言語的には->は昔からずっと間接参照演算子だ

510 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:13:55 ]
美少女中学生的には -> と [] はブラのホックの両端だから

511 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:26:17 ]
>>504
それ、俺も思っていたんだけど、
C++の文法としては、何か違和感あるよね。

ところで、@と$がC++の規格にないのは、何か理由があるの?

512 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:30:21 ]
[] int foo() { ... } で不都合があったから -> になったんだと思うが、
どんな不都合があったの?

513 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:50:13 ]
returnsのほうがいい

514 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:53:10 ]
>>512
(charからcharへの関数)を引数に取り(intからintへの関数)を返す関数
を引数に取り(charからintへの関数)を返す関数の型を、
C++03(「関数」は「関数へのポインタ」とする)とC++0xで書いてみてくれ。

515 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:58:27 ]
int (*(int (*(*)(char (*)(char)))(int)))(char) のことだよね?



516 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:10:24 ]
グロい

517 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:11:59 ]
まぁ現状十分汚い言語なんだから、
多少醜くなってもいいじゃん

518 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:14:30 ]
>>517
いいこと言うなあ。君のそのレスで俺の気持ちは吹っ切れたよ。

519 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:19:47 ]
[]([]([](char)->char)->([](int)->int))->([](char)->int)

520 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:22:09 ]
typedef char (*ctoc_t)(char);
typedef int (*itoi_t)(int);
typedef int (*itoc_t)(char);
typedef itoi_t (*ctoc_to_itoi_t)(ctoc_t);

typedef itoc_t (*answer_t)(ctoc_to_itoi_t);

こんな型何に使うかは知らんが、使うとしたら
きっと近くでitoc_t型やctoc_to_itoi_t型の変数も必要になるだろ
ならそんなキモい書き方しないで必要なものをtypedefで作るべき

521 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 06:35:41 ]
>>519の方がわかりやすいが?

522 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 07:06:50 ]
>>519
これは従来のアナルっぽい記法よりは読みやすいな

523 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 07:15:37 ]
>>511
いまさらtrigraphやdigraphの要るような記号追加するのもねえ…ってことじゃないかと予想

524 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 07:38:26 ]
>>523
そういう理由なのかなぁ。
しかし、trigraphやdigraphって廃止しても、それほど互換性の問題も無いんじゃないかなとおもったりするんだけど。
西側の、なまじ7bitで全種類の文字を表せちゃったので、悲惨なことになっている連中も、
結局使ってないみたいだし。

525 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 09:39:20 ]
>>521
まずそんなものを書く状況自体が無いな。
あっても >>519 も読みづらいから typedef 使うわ。



526 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 11:51:29 ]
C++でtypedefを禁止したらどんなカオスなコードになるか見てみたい

527 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 11:53:44 ]
>>526
template メタプログラミングがかなり出来なくなる気が ...

528 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 11:58:25 ]
>>526
decltype と auto を駆使することになる

529 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 18:05:21 ]
あーはやくautoが欲しい

530 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 19:02:48 ]
正直、auto 以外、いらん。初期化もまぁあればいいね、程度だし

531 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 19:46:54 ]
ここまでいじっちゃうともう新しく言語作った方が早い気がするしな。

532 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 19:51:44 ]
Cとの互換性をとりつつ拡張するのに苦労してんのにそんな事言うなよ

533 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 20:12:56 ]
互換性無視できる
ネイティブディレクティブとか作ろうよ


534 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 20:36:05 ]
もう互換性なんかとっくにボロボロなのに今更何を

535 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 21:37:43 ]
>>530
初期化指定子で初期化指定が完了するのは美しいと思わんか



536 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 21:54:12 ]
なぁ、これは俺の思い過ごしかもしれんのだが

ヒープ領域って誰が管理してくれるんだ?

ラムダ返されて、それ引数に関数呼び出して
関数の中でグローバルに束縛されて... ... ...

でも, らむだはデストラクションしないとまずいんだろ?


537 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:07:15 ]
関数を動的に生成してるわけじゃないだろ

538 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:17:48 ]
536 に便乗で聞くけど、
例えば C# の場合、ローカル変数を参照するようなラムダ式書くと、
クラスが自動生成されて、ローカル変数参照がメンバ参照に置き換わるんだけど、
そういう状態になった場合、デストラクタはどこで呼ばれるの?

ローカルスコープ内でしか使わないラムダ式ならいいけど、
例えば、「ラムダ式を返す関数」みたいなの作っちゃった場合。

539 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:21:56 ]
そんなのローカル変数のポインタ返してるのと一緒だろ
クラッシュしても自業自得で済まされる話
C++はプログラマを全面的に信頼する言語ですよ

540 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:24:33 ]
>>537
あんまマジにシンタックス見てないんであれなんだが

こんな感じの関数書くとするやん?
f(x, y) {
return [copy x]lambda(y){+ x; ...}
}
この場合, x はスタックじゃなくてヒープに取るしかないと思うんだ

で,
g(f(1), f(2)...)
とかな感じで, 呼び出したら?
f が返す関数に束縛されてる x がコピーされた領域は誰が回収するんだろ?

と、思った


541 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:01:43 ]
ん、よくわからん。
スタックじゃないの?

542 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:04:43 ]
alloca() を思い出した

543 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:08:10 ]
new [...] (...) {...}
はないの?よくわからんけど

544 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:23:24 ]
ラムダ式は関数オブジェクトのシンタックスシュガー
なので、単なる一時オブジェクトとして生成されると思う

545 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:24:34 ]
関数から返せないということか。
何かエセっぽいな。



546 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:28:11 ]
C的に考えると、それでいい気がする。

547 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:30:37 ]
折角だからカリー化とかしたいのになあ。

548 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:31:35 ]
ラムダキャプチャーを参照でなく値(コピー)にしたら返せる
関数オブジェクトと同じ
でも、戻り値の型を特定できないかも、新シンタックスで可能?

549 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:33:07 ]
カリー化は手動だな

550 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:33:48 ]
>>544
となると、>>543 みたいな、ラムダ式をヒープに取るような構文が必要じゃない?
(スマートポインタ使うにしても、まずはただのポインタが要るし。)

それか、ラムダ式から生成される関数オブジェクトが
適切な operator = を実装しててくれるなら別にどうでもいいことなのかな。

551 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:37:49 ]
>>550
あっても困らないけど、なくても良いと思う
ポリモーフィズムは必要ないし、必要なら従来の関数オブジェクトがあるし

552 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:13:58 ]
本物のC++プログラマは動的解決をしない。
本物のC++プログラマはコンパイル時に解決する。
コンパイラでできなければ、プリプロセッサでやる。
プリプロセッサでできなければ、それはやる価値が無いのだ。

553 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:16:03 ]
new を入れたのが間違いの始まりだったんですね

554 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:30:05 ]
プリプロセッサ(笑)

555 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:36:14 ]
タイトルはどうなるんだろう。
「本物のプログラマはJavaを使わない」
あたりかな



556 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:36:39 ]
本物のプログラマネタが分からないのは
流石に本物のプログラマとは言えないな。

557 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:45:50 ]
本物のプログラマがわからなければ、そのネタは理解する価値が無いのだ。

558 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 01:03:02 ]
>>555
間違いなく言語と環境をごっちゃにした反論が帰ってきそうなタイトルだなw

559 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:38:19 ]
conceptがまだドラフトに入らないのが気になる
一番楽しみなのに

560 名前:デフォルトの名無しさん mailto:age [2008/05/04(日) 00:39:07 ]
独立wordingの方でまだまだ直しが続いてる。

561 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 18:01:34 ]
ここで聞くか、Boostスレで聞くか迷ったんだけど、
Unordered associativeコンテナの、bucket関連のメンバってなんに使うの?
規格読んだだけだと、どうもよくわからないんだけど。
あるキーがどのbucketに属するかのインデックスを返されたとしても、
実際のbucket単位に直接アクセスする方法って無いよね?
普通に要素へのイテレータしかないみたいだし。
そのどのbucketに入れられているかってことが分かって、ライブラリを使う側の人間にとって、何がうれしいの?

562 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 19:14:44 ]
>>561
begin(i),end(i) で local_iterator を取得できたような。
ハッシュの分散結果をどう使うかってことなので、カスタムハッシュ関数次第
じゃないか? まあ通常はあまり使わないかも

563 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 19:23:03 ]
どっかのbucketにばっかり入っちゃうようなデータで、そのせいで遅くなるようなときに
調査するためじゃねえの

564 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 19:27:20 ]
>>561
詳しいドキュメント読んでないから分からんけど、たぶん同一 hash 値だったら
同一の bucket に入ることが保証されるはずだから、次のような使い方ができる。

次の問題を考える:
 二次元平面上の点が大量に与えられる。これを前処理して
 新たな点 p が与えられたときに p に最も近い点を求めよ。

こんなときに、最初の二次元平面上の点に対して、ハッシュ関数を
(x座標値/1000)×(y座標値/1000) なんかに設定したコンテナを用意すると
元のデータが結構ばらけていたら、「同一 bucket 内に入るデータを全部調べる」
みたいなアルゴリズムで結構効率的に解ける。

565 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 19:59:38 ]
おもろい



566 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 20:46:02 ]
>>562
本当だ。
引数を取るb.begin(b), b.end(b)があったのか。
local_iteratorは、あるbucket内の要素のイテレータとは。

しかし、>>564には疑問だな。
例えば、その点pのハッシュ値が、ちょうどbucket単位の境にあった場合、
点pに最も近い点は、別のbucketに入るんじゃない?
すると、隣接するbucketも調べないといけないよね?
少なくとも二つ、大抵の場合は三つ。

それに、規格にあるのは、
>Keys with the same hash code appear in the same bucket.
だけで、似たようなハッシュ値が同じbucketに入るとは規定してないし。
隣接するbucketに入るとも規定されてないよね。

あくまでハッシュという名称を使っているだけで、実装じゃないし。

567 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:01:51 ]
境界の違うハッシュを2つ使えば?
(x/1000)*(y/1000) と ((x+500)/1000)*((y+500)/1000) みたいな

568 名前:564 mailto:sage [2008/05/05(月) 21:33:30 ]
>>566
bucket の番号を用いる例のためだけに、アルゴリズムの細かなことを書くのは
面倒だったから、本当に方針だけを書いたつもりなんだけどなあ。


まず、点を含む領域以外も見ないといけないのはそのとおりで、
ちゃんとやるには、点を含む領域から近い順に探索することになる。
(それまでに見つけた最も近い点までの距離を覚えておき、
 見る必要のある領域を限定していく)

見る領域に対応する bucket の番号は、領域の座標値が分かっているのだから
領域座標 → ハッシュ を計算してやった後に ハッシュ → bucket 番号と取得する。
このとき、隣接領域で bucket 番号が隣接している必要はない。

詳しいことは、適当な計算幾何学の本を読んで欲しいところ。
こういうのはバケット法などの名前で知られている割と標準的な技法。

569 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:36:55 ]
えぴが陰毛茫々じゃないから
進みが遅いと思う

570 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:40:38 ]
>>566
いや、だから規格では、同じハッシュ値のキーが同じbucketに入ってるって事ぐらいしか、
規定されてないような気がするんだけど。
似たようなハッシュ値が同じ、あるいは近いオフセットのbucketに入っているかもしれないとは書いてない。
そりゃ、大抵の実装はそうなるだろうけど。


571 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:40:59 ]
間違えた、>>568

572 名前:デフォルトの名無しさん [2008/05/05(月) 22:01:44 ]
>>561
cpplover.blogspot.com/2008/05/c0xunordered.html

573 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:05:07 ]
>>570
似たような点を同じハッシュにするって話じゃないの?

574 名前:564 mailto:sage [2008/05/05(月) 22:10:03 ]
>>570
なんで似たようなハッシュ値が近いbucketに入る必要があると思うの?
そういう必要は無いですよ、と588で
> このとき、隣接領域で bucket 番号が隣接している必要はない。
と明記したつもりなんだけどなあ。


具体例で説明すると、たとえば 1000×1000 のメッシュに切って、
(x/1000)×(y/1000) % 100 をハッシュ関数として設定したとしよう。
ここに (10000,10000) の点 p が与えられたとしよう。
この点を含む領域に対応するハッシュ関数値は (10×10) % 100 = 0 だから、
ハッシュ関数値 0 に対応する bucket を持ってくればいい。
(点 p に対して bucket(p) を実行することが、この操作に対応する)

次に、この点を含む領域の左側の領域を調べることにしよう。
左側の領域の座標に対応するハッシュ関数値は (9×10) % 100 = 90
だから、ハッシュ関数値 90 に対応する bucket を持ってくればいい。
(p を左に 1000 だけ平行移動した点 q に対して
 bucket(q) を実行することがこの操作に対応する)

575 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:34:13 ]
で、0x関係あんのか



576 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:41:03 ]
>>574
関係ねーだろ10000回染んで来い


577 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:41:50 ]
そんなにdelete thisできないな

578 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 00:17:58 ]
>>570
つうか、一体何が疑問なんだ
同じハッシュ値のキーが同じbucketに入ってるって事が規定されてりゃ十分だろう
同じハッシュ値になるようにハッシュ関数を作れば同じbucketに分類されるんだから

579 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 05:45:07 ]
ああ、なるほど。
似たようなキーを同じハッシュにするのか。
それで(x座標値/1000)×(y座標値/1000)だったのか。

580 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 21:04:03 ]
レベルが高すぎてよくわからん

581 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 21:05:26 ]
そんなに高くないよ
情報系の学校入れば絶対習う程度

582 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 21:26:48 ]
学無くても考えれば分かりそうな。

583 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:06:41 ]
修学旅行での温泉の脱衣場の洗濯カゴみたいなもんだ
一つのカゴで一人の美少女中学生をイテレートできる
美少女中学生は控えめだから棚の下の方にハッシュされてるという寸法さベイベ♪

584 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:08:43 ]
下着がなくなってたりするんだな

585 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:54:27 ]
露骨なエロで興奮するあたり、それらが控えられた萌えに欲情する若者とは違うという部分がみえみえなスレだな。
勢力の足りないおっさんが無理にネタ振らなくても良いんだぜ?つまらないだけだから。



586 名前:デフォルトの名無しさん [2008/05/07(水) 02:20:45 ]
age

587 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 03:27:54 ]
>>585
つまらない。

588 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 09:42:13 ]
どうでもいいよ

589 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 03:55:48 ]
ここんとこ寒いね

590 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 04:05:16 ]
うんそうだね

591 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 04:34:23 ]
今までが暑くて相対的に寒く感じるだけ。
平年並みだろ。

592 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 21:41:35 ]
それだけ暑いのが続けば「平年並み」の気温も底上げされててもいいんだがなあ。

593 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 18:02:04 ]
平均気温は過去20年のデータで計算するから、20年間で急激に気候が変動してると追いつかない。
そんだけ温暖化が深刻ってこったな。

594 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 18:45:41 ]
strong typedef って入るんだったっけ?

595 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 19:32:54 ]
ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2141.html
これか?
入る見込みは無さそうだねぇ。

ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2565.html
>Not ready for C++0x, but open to resubmit in future

BOOST_STRONG_TYPEDEFでもつかっておけば。



596 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:20:55 ]
strong typedefってどういう物?
usingとかとは違くて?

597 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:41:23 ]
typedef元とtypedef先が別の型として扱われるというtypedef。

598 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:43:10 ]
C++09 になってんのか、もう。

599 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:58:14 ]
え、まじ?

600 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:12:18 ]
あ、いや、ちゃうわ。ごめん。

601 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:19:45 ]
>>597
それあったらテンプレートがまたワクワクするものになりそうだな

602 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:38:47 ]
数値型の暗黙の変換はC/C++の型システムの穴だから
strong typedef でまずその穴をふさぎたい

603 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:43:14 ]
そんなもん別に機能にしなくてもこれでいいんじゃないの

class AnotherType : public Type{
private:
 operator Type(); //実装しない
}

604 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:44:25 ]
そんなこともできるのか。それは欲しい

605 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:11:50 ]
intとかでもやりたいんでは



606 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 22:50:15 ]
実装あるもんなw

607 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 23:24:53 ]
もう#define int nanikaしろよ

608 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 00:05:38 ]
要するにこういうの作ればいいんだろ?

#include <iostream>

#define STRONG_TYPEDEF(base, name) \
template <typename Dummy = void> class name##_ { \
public: \
name##_() { } \
explicit name##_(const base& value) : m_value(value) { } \
base& get() { return m_value; } \
const base& get() const { return m_value; } \
name##_& operator=(const name##_& rhs) { m_value = rhs.m_value; return *this; } \
friend name##_ operator+(const name##_& lhs, const name##_& rhs) { return name##_(lhs.m_value + rhs.m_value); } \
private: \
base m_value; \
}; \
typedef name##_<> name

struct TestBase { void show() { std::cout << "Test" << std::endl; } };

STRONG_TYPEDEF(int, Hoge);
STRONG_TYPEDEF(TestBase, Test);

int main() {
Hoge a(1), b;
b = Hoge(2);
std::cout << (a + b).get() << std::endl;

Test t;
t.get().show();
}

609 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 07:37:07 ]
手抜きをするためのものなのに、メンバがコピーされないようじゃ意味がない。

610 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 10:29:55 ]
mailing 2008-05 きてるお

611 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 11:09:49 ]
^ω^

612 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:32:56 ]
>>610


613 名前:デフォルトの名無しさん mailto:age [2008/05/21(水) 12:37:34 ]
コンテナとかSTLがみんなconcept化されてる!

614 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:42:31 ]
ドラフトは N2606

615 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:48:01 ]
www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2601.html
がスゲイ




616 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 18:04:02 ]
C99と同じ感じになったりしないの?
現行のC++から、この仕様のC++にキレイに置き換わってしまう?
また、複雑難解怪奇な文法を覚え直さなければいけないの?

617 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 18:49:37 ]
>>616
GCCだけでなくVC++も実装してくると思う、現にTR1も対応しているし。
C99よりは広まると思う。

文法はどうしようもないな。現在でも複雑怪奇なんだから
今さら少しくらい増えたってどうってことないって構えをしたほうがいいかも。


618 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 18:50:26 ]
better C++03 として使う人が多そうな予感。
auto とかは使うけど・・・って感じ。

619 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 20:38:48 ]
ぶっちゃけC++が廃れる要因になるだけな気がしないでもない

620 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 20:49:42 ]
化粧を覚えたてでちょっと厚塗りしてみた美少女中学生のような感じだな
化粧のナイステクを見つけるのが先かこっちが見慣れるのが先かというところか

621 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:21:56 ]
今はネイティブで代わりがないから C++ 一択だけど、ObjCを綺麗にしたようなクラスベースの
言語があれば、もう C++ にこだわる気になれないなぁ。うんざりする

622 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:36:41 ]
Cに速度的な最適化を期待したのが間違いだったんだ。
やるならfortranを++すれば良かったのに。

623 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:38:00 ]
>>622
そこで Fortress ですよ

624 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:35:21 ]
>>621
だからD言語を使えと(ry

625 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:36:59 ]
>>623
あれは数値計算用途以外では使いたい文法でもないけど・・・
それ以前に、なかなか開発進んでなくね?



626 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:40:30 ]
>624
GC がいらない

627 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:09:24 ]
>>616
(ほぼ)今のままのコードで動く。

628 名前:デフォルトの名無しさん mailto:age [2008/05/21(水) 23:10:26 ]
>>626
GCありというか明示的メモリ管理なしのC++ってもの使ってみたい。
DとかJavaじゃなくて、まっとうなC++で。

629 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 00:25:00 ]
>628
だが、リソース管理は結局自前だろ
ファイナライザは入れないんだよな

630 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:45:13 ]
>>618
現行でC++03としても使えてない奴の方が多いからな
その辺はしゃーない

631 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:04:12 ]
サブセットでヘッダの要らない仕様を作ってくれないかな。
どうせ、プリコンパイルヘッダみたいな事やるんだから、
.cppをプリコンパイルして参照解決したっていいじゃん。

632 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:09:22 ]
そうやってサブセットのスーパーセットを考えてるうちに C# になってしまいました

633 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:12:52 ]
>>631
モジュールシステムを設計しなおすことになると思う

634 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:49:18 ]
仕様を作るのはいいけどさ、
とりあえずその前にほとんどのコンパイラベンダに言いたいんだが
export を実装してくれよ!

Comeau 以外どこか実装してんの?

635 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:51:43 ]
実装が大変な割に大したメリットがないからじゃないの



636 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:54:50 ]
exportの実装がめんどうになった時点で分割コンパイルなんてあきらめればよかったのだ

637 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:59:03 ]
extern inline なんかどこも完全実装できてないしな
Comeauでさえ

638 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:51:17 ]
>>615
提案しているのが Lawrence Crowl だし,ほんの一瞬とはいえ
本気にして「なんだ!?とち狂ったのか!?」とか思った俺涙目www

639 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 05:58:24 ]
>>638

ま、いつか入るかもな。競合は大丈夫そうだし。
16進浮動小数点数リテラルとか知名度低いのもあるし、こっそり紛れてても誰も騒がないでしょw

640 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:12:45 ]
ASCII外の字をプログラム本文に持ち込むことをあっちの国の人らが許すはずがない

641 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:20:22 ]
コメント文字列をプログラム本文とみなすかどうかだが
普通にやってるとチェコ語だかでパース失敗しなかったか?

642 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:26:27 ]
なんだそりゃ。
まさかチェコ語は、スラッシュやアスタリスクにまで独自の文字を割り当てているのか?

643 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 20:05:42 ]
チェコ語ということはutf-8か?
-Ku は当然付けてるよね。

644 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:06:45 ]
コメントに??付けるだけでおかしくなります

645 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:02:47 ]
もう APL になったつもりで変な字いっぱい使おうぜ



646 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:46:19 ]
トリグラフも迂闊に追加できないこんな世の中じゃ。

647 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:01:50 ]
つまりクアッドグラフが求められる時代になったということですね

648 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:42:00 ]
concept 使った for_each がこう提案されてる
auto がこんな使い方できるんだ

template<InputIterator Iter, Callable<auto, Iter::reference> Function>
Function for_each(Iter first , Iter last , Function f );

役立たずだった auto が大人気だ

649 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:46:41 ]
大人気で広まる

恐ろしい副作用が見つかる

カオス

の黄金パターンですね、わかります

650 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:04:34 ]
>>639
十六進浮動小数点数は、C99由来だから知名度低くても余裕で入るだろ、たぶん。

651 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:17:23 ]
concept のようなメタタイプを持つ言語がほかにあるんでしょうか?
Haskellのほかに
静的型付言語で

652 名前:デフォルトの名無しさん mailto:age [2008/05/24(土) 03:58:02 ]
>>651
conceptの型理論を書いた人たちがGってのを作ったよ。
他にはない。concept_mapみたいなglueがあるのは。

653 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 11:43:16 ]
conceptの一番の利点はコンパイル時のエラーメッセージ

654 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:39:46 ]
>>653
concept_mapを理解してないね。

655 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:41:52 ]
今度はコンセプトメタプログラミングの時代ですか



656 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:44:38 ]
自然な流れじゃないかな
ジェネリックス系としては

657 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:23:27 ]
そしてC++1xでは
コンセプトの型を規定するスーパーコンセプトが目玉機能になるんですね
わかりました

658 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:32:03 ]
滅多metaな超言語それがC++1x

659 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:10:08 ]
C++ 捨てて別言語使った方がいいんじゃね?
と、マジで思う今日このごろ


660 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:11:07 ]
そんなあなたにC++0x。 もはや別言語だから。

661 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:12:28 ]
まともなC++0x処理系ができるまでは暫く離れるのもいいだろうな

662 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:18:31 ]
C++3xで会いましょう

663 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:09:52 ]
namespaceスコープでアクセス制御が出来たらいいと思わね?

namespace hoge {
private: void priv();
public: void pub() { priv(); }
}
hoge::priv(); // error

664 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:20:34 ]
>>663
入れ子にした無名 namespace で代用できない?

665 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:44:37 ]
>>657
concept はコンセプトをパラメータにとることが出来るのでメタコンセプトは必要ないと思う



666 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:46:20 ]
無名にしなくても、boostの
namespace detail {
はそういうことやってるんだわな。
>>663はスロット単位でやりたいんだろうけど。

667 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:02:23 ]
>>654
「自尊心はあっても自信が無い」から、衝動で突っ込むけど説明添える勇気は無いんですね、わかります。

668 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:51:48 ]
整数のイタレータのサンプルコード見ればいいんじゃない? > concept_map

669 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:01:51 ]
autoとcenceptでC++も分かりやすい言語になるかなあ。

670 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:04:22 ]
ならんね

671 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:13:27 ]
そもそも、現行C++も分かりやすい言語にするために
突っ走ってきたという面が多かったと思う、D&E読んだ直後の感想。

しかし、現実はと言うと……。
0xも同じ道を辿るに違いない。

672 名前:デフォルトの名無しさん mailto:age [2008/05/24(土) 18:17:27 ]
>>671
> 分かりやすい言語にするために

皮肉とかじゃなく、そうは思えません。
やはりCとの互換性を抑えた上での、実行効率をメインに考えてきたと思います。

673 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:21:59 ]
>>665
kwsk

674 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:42:42 ]
Perl6 の二の舞になる、なんてことはないよな。あはは

675 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:42:58 ]
>>673
やっぱ出来ねえや
勘違い



676 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:09:08 ]
最近は使う人にやさしくなってきてるよね

つらいのはコンパイラベンダやライブラリベンダ

677 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:21:53 ]
ここまで巨大仕様になるともう新規参入とか不可能だよな

678 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 08:48:19 ]
GCCからforkすればいい。

679 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:55:43 ]
現行の auto って型名のかわりに
auto i = v.begin();
みたいな書き方をする以外に使い方ありますか?

680 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:07:49 ]
型名の現れうる場所全てに現れて
福音と混沌をもたらします

681 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:05:28 ]
>648

682 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:13:09 ]
自動変数の宣言

683 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:13:47 ]
使うだけの人間としては規格の議論より処理系がいつできるかの方に興味がある

684 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:57:30 ]
規格書いてる奴らが作る訳じゃないからな
2020 ぐらいじゃね?

685 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 09:04:38 ]
だが実装可能性ぐらいは考えて欲しいんだぜ。



686 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 15:41:55 ]
もう委員会が「完全準拠のコンパイラを最初に作ったチームに賞金」でいいだろ。
商用コンパイラとかだとその賞金が売り上げを下回るっていう可能性もあるから、
MSの無償配布してるものと同じ様なライセンスでなければいけないとかいう条件をつけてさ。
そうすれば販売方法を確立できない個人でも目指す事ができるし、万が一先を越されてしまっても
その場合は販売すれば良い。

687 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 15:53:55 ]
C++03の下位互換性から考えると、exportも必須なわけか?
そんな非現実的で理想を追求した完全準拠のコンパイラは、まず実用にはならないと思われる。

688 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 18:07:34 ]
外部テンプレートなんかさっさと規格からぶち殺して
貴重な予約語exportをもっと他の有意義なことに使えるように努力すべき

689 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 19:47:46 ]
>>686
個人でやれるような範囲の話ではない

690 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:16:07 ]
MSがバイナリインデックスの並び順で特許取っててそこをCOMに使ってるから無理
テーブルを先頭に持ってくるんだったか程度のもの

691 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:22:03 ]
特許なんてそのうち切れるさ

692 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 22:23:11 ]
vtblを頭に持ってくるって話?
ABIだと思ってたが、特許なのか?

693 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 23:46:26 ]
>>684
Conceptは、Douglas Gregorが規格も処理系(ConceptGCC)も書いてるよー。


694 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 00:25:18 ]
そのGCCではあのクソ気持ち悪いラムダ式とかもコンパイルできるのかい
だったらちょっと試してみたい

695 名前:デフォルトの名無しさん mailto:age [2008/05/29(木) 06:43:01 ]
これはconcept branchだから、
他の新標準機能は入ってないよ。
gcc.gnu.org/projects/cxx0x.html
lambdaはgcc headで実装始まってるはず。



696 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 08:49:35 ]
>>686
2100頃までC++は生き残るわけですね分かります

697 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 11:46:02 ]
std::*Integralが、
std::*IntegralLikeになってやがる。
FloatingPointLikeってなんだよ
// Revision 1の頃から変わっていたのか


698 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 13:39:48 ]
C++0xはそろそろJavaの時のような誇大広告を始めて盛り上げるべき。

699 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 13:52:25 ]
どんだけ人集めてもmove semantics見たらみんな引くって。
大衆には見向きもせずプログラミング言語の実験室として頑張っていただきたい。

700 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 14:03:10 ]
もはや C++ 自体が大衆向けじゃないよな。
でも、必要としている一部の人間のために頑張って頂きたい。w

701 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 14:05:12 ]
まずはまともな処理系を、話はそれからだ

702 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 14:11:26 ]
Move SemanticsとかVariable TemplateとかConceptとか、
ライブラリを書く奴のための機能だから、
一般ピーポーが覚える必要は無いんじゃない?

とは言ったものの、どうやって実装しているか分からないと、
俺としては、使う気にならなかったりするから微妙だ。

STLヤベー、超便利ー。

イテレータとか関数オブジェクトとか分からん。勉強するか。

いわゆる、STLの解説本とかではまともに説明されてねー。何コレ。

テンプレート解説本なら詳しく載ってる。やっべ、スゲー詳しい。面白れー。

Boostたのしー。

あれ、当初の目的って何だっけ?
STL? デザインが貧弱すぎじゃね? あれって。


703 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 16:25:03 ]
素人の人たちに受けのいい機能も少し追加されたんじゃない。
auto とか。

704 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 16:26:10 ]
conceptだってコンパイル・エラー見やすくなるしね。


705 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 04:01:49 ]
今回は入門者のためにもなる改良がたくさんあるとどこかで聞きました



706 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 14:58:46 ]
c++であと10年は持つのかな
すでにフォートラン化しはじめてる?

707 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 16:44:53 ]
当分、いろんな意味でC++を越える言語は出てこないだろうな。

708 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:08:45 ]
export イラネ
予約語から外してほしい

709 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:23:20 ]
export の実装って結局二度以上同じソースをコンパイルしてるだけだからな
prelink 工程というのがあってそこで全部解決するまで再帰的にコンパイルしつづける

関数がインラインにならないという効果はあるがそれ以上の利益はない気がする

710 名前:デフォルトの名無しさん mailto:age [2008/06/05(木) 21:53:24 ]
>>706
FORTRAN 77とは全然違う。
FORTRAN 77は数値計算の世界では現役のまま陳腐化した。
C++0xは現役のまま最先端を走り続け、プログラマを置き去りにし続けてる。

711 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:55:37 ]
置き去りかよw

712 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:04:19 ]
道を踏み誤りつつあるマッドサイエンティストみたいなもんだな

713 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:04:26 ]
exportは後々autoみたいに役に立つ日がくるのでほっといてやってください


714 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:53:05 ]
>>710
> C++0xは現役のまま最先端を走り続け
「他言語に出来ることが出来ないので悔しい」
って、入れた機能がほとんどじゃないかい?


715 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:53:25 ]
>710
Fortran2008は結構強烈だぞ?



716 名前:デフォルトの名無しさん mailto:age [2008/06/05(木) 23:00:35 ]
>>714
conceptはHaskellだけじゃない、似てる機能があるのは。
しかもそれは後から分かったことだし。
traitsを置き換えるために生まれた。

move semanticsだってかなり狂ってるしね。
明示的なメモリ管理がある言語で導入するとは。

717 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:50:13 ]
C++ はあまりお作法がない言語だったと思っていたんだが、今は作法が大杉って困る

718 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:03:11 ]
意味が不明瞭だ
お作法って具体的にはどういうこと?

719 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:01:23 ]
>>713
registerもいつか役に立つ日が来るのでしょうか?

720 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:06:07 ]
>>715
Fortran2008のco-Arrayなんて、
Crayの実装の後追いじゃないですか。
C++0xなんて規格が独走状態ですよ。
一緒にしないでください、失礼です。

721 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:45:38 ]
>>718
俺のエスパー能力を駆使すると、パラダイムをお作法と訳してるんじゃねーの。
禿げ曰く「C++はマルチパラダイム言語だ」と。
パラダイムがないつーか、ひとつに縛らない言語だがな。
パラダイムが何も無いのがすばらしいなら、ifとgotoだけでいいじゃねーかと。

722 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:09:13 ]
規格を崇拝するお前らに楽しい問題。

class string {
public:
  string(const char*);
};

void f(string, string, bool = false); // 1
void f(string, bool = false); // 2

void g() {
// どちらの関数が呼ばれるか。
  f(“Hello”, “Goodbye”);
}

俺はできなかった。
まあ、Overload Resolutionの厳密なルールを暗記してるわけじゃないし。
答え:ttp://blogs.msdn.com/vcblog/archive/2008/06/05/some-c-gotchas.aspx

これをもうちょっと人間的にするために、
なにかプログラマが優先順位を指定できるような機能はつくれないのかな。

723 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:39:20 ]
暗黙的に呼ばれる変換コンストラクタに依存するのはよくないってのは有名な話じゃね。
だれしも一回は引っかかる罠だけどね。

724 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:49:35 ]
その辺いじくるとスマートポインタが軒並みぶっ壊れるから
触れないし触らない方がいい

725 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:52:57 ]
つ f(string("Hello"), string("Goodbye"));





726 名前:デフォルトの名無しさん [2008/06/06(金) 18:45:45 ]
正直ついていけてません。すみません orz


727 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:38:40 ]
>>719
もしかしたら、&の使用を制限する目的に使えるかもしれない。
例えば、register int foo して func(& foo) したらエラーになるとか。
で、参照渡しができるのなら、ポインタの使用を禁止できることになる。
# 意味が違いすぎるなw


728 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:37:33 ]
俺も最近まで register に & を付けれないと思ってたけど、
C++ では付けれるらしいよ。

729 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:42:27 ]
もうラムダ式のキーワードにregister使ったらいいじゃん
どうせ予約語の意味なんてメチャクチャなんだから

730 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:42:58 ]
何度も言うようだが inline がいいと思うお

731 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:45:01 ]
却下されたんだろそれ

732 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:47:45 ]
やっぱり解析が凶悪になるからか。

733 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:20:43 ]
>>731
だれか提案したの?

734 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:45:36 ]
ここの誰かが突撃してはいはいワロスワロスされた

735 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:57:33 ]
キチガイ度で言えば現状もどっこいどっこいだと思うだけどな。



736 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:32:07 ]
最初から頭の使い方が足りなくて狂ってるとしか思えないのと
考えに考えた末に発狂するのとでは筋が違うと思う。

737 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:42:24 ]
オーバーロードは罠が多いから・・
特に特殊化と混じったりするとわけわからん

738 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:54:55 ]
>>734
それどこで?
comp.std.c++ と comp.lang.c++ と流し読みしてるけど、とりあえず見覚えが無い。

739 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:11:13 ]
inlineも規格化前に勝手な独自拡張でクチャクチャに使われてきた経緯があるから
あまり触れたくないよな

740 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:41:12 ]
inlineってどうするの?

m = inline (auto x, auto y) { return x > y ? x : y; } (10, 20);

とか?

741 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:23:44 ]
無名関数をinlineと呼ぶのはすげえ違和感がある

742 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:35:49 ]
__lambdaとか_Lambdaでいいからキーワード追加してくれよ。
適当に#defineして使うからさあ

743 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:21:55 ]
別に _Lambda だろうが [&] だろうがいいけど
とりあえず #include <lambda> をくれ。

744 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:07:30 ]
C++03 の extern inline って C++0x にまだ残ってる?

745 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 15:24:25 ]
>>722
でどっちが呼ばれるの?

ふつーに考えて1でしょ?
(ブーッという音が聞こえてるようだ)




746 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 15:31:18 ]
失礼、答えつけててくれたんだね。。。
んで、pointer-to-boolなんて知らなかったので、さらに調査中。
昔はほんとにC++好きだったんだけどな。今は規格がぎしぎししてるね。

747 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:31:18 ]
その馬鹿げた変換を何とかするためのnullptrだが
全然何ともなってないといういつものパターンなんだろ

748 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:25:05 ]
もうポインタと整数
整数とbool
は互換禁止にすべきだな

やりたきゃ明示的にキャストしれと

749 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:27:18 ]
if(smart_ptr)が出来なくなるとブーたれる奴らが強硬に反対するので無理です

750 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:17:32 ]
それは暗黙的変換とは関係なくね?

751 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:18:01 ]
NULL と比較しろよ・・・。
ただ、if (T* p = dynamic_cast<T*>(q)) { ... } がやりたいので
無くなると困る。

752 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:47:28 ]
「さらば、式の中でも変数を定義できるようにして進ぜよう!」

753 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:45:57 ]
なんでよりカオスな方向に解決するんだよw

754 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:27:43 ]
オカス!?美少女中学生を!?

755 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 23:42:09 ]
>>751
は?C++でNULLなんて使うなよ。0を使え。



756 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 23:48:56 ]
これからはnullptrだろ常考

757 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:34:52 ]
nullptrなんて意味ないよなぁ
どうせ変数に入れたら0と区別付かないからやりたい放題なのに

758 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:41:26 ]
>>755
NULL をどう定義するかは処理系定義で、
整数変数に代入しようとした時に警告出してくれるように
定義してくれてるかもしれないというのに
何で 0 なんて使わないといけないのか。

759 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:42:55 ]
>>758
Effective C++ を100回読め

760 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:49:27 ]
NULLを0以外でdefineしてるC++の処理系なんてものがあったとしたら
今すぐ叩き壊した方がいいよ

761 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:58:26 ]
C++では、マクロを使わない事を推奨されている。なのでNULLよりも0を使う方が綺麗。
もちろん、C++はある程度「綺麗」なスタイルを提示しながらも、そうじゃないスタイルを拒絶することはしない。
better Cとして、例外を使わなかったり、templateを使わなかったり、NULLを使っても良い。
ただし、それが推奨されているわけではないことは覚えておくべき。

762 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:08:51 ]
>>760
g++ は __null で定義されているが・・・。

763 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:35:32 ]
NULL 使ってる人は毎回 cstddef あたりを #include してるのか?

764 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 03:00:50 ]
>>761
enum{NULL = 0};

765 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 03:03:49 ]
<template T>
T *NULL(){
 return 0;
}



766 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 07:04:54 ]
NULLより0ってのは、
Effective C++以前のC++ FAQの時代からの常識。
>>759
情けない…このスレに来るのは十年早いよ。

767 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 07:20:10 ]
>>763
NULL は結構色んなヘッダファイルで定義されてるので
cstddef をインクルードするまでもないことが殆ど。

768 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 07:24:44 ]
Effective C++ と C++ FAQ の説明内容に違いはあるの?お爺様

769 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 07:28:50 ]
相変わらず破綻してる言語だな

770 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 07:29:45 ]
>>765
それだとメンバへのポインタに対応できない気がする。

771 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 08:42:09 ]
定期的に低レベルの話題で荒れるな

772 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 08:50:23 ]
>>767
実際のコンパイルでエラーになるまで対応するヘッダをインクルードしないってこと?
ライブラリの実装に依存してそうでイヤじゃない?

773 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 09:37:26 ]
>>771
低レベルの質問にはよく答えられる低の高くらいのレベルの人が多いんですよ。
おいらも含めて。w

774 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 10:47:54 ]
低の高っていうと
エントリーモデルの中で頭一つ出た商品みたいで所謂人気商品ってイメージ

775 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 11:16:08 ]
ある意味正しいな。
今は、プレミアム系商品の人気が高くなっている辺りも含めて。



776 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:01:46 ]
C--

777 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:27:35 ]
>>776
廃れたね。
JVMもCLRもなければ主流になったかも知れないのに。

778 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 16:32:19 ]
>>772
規格でどのヘッダがNULLを定義してるか決めてあるでしょ。

779 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:05:26 ]
>>772の言っているのは、
使うなら、定義されてるヘッダを必ず明示的にインクルードしないと、
コンパイル通っても、実装依存なコードだってことでしょ。
実際多いよね、そういうコードは。
実装上の都合による孫インクルードに依存しているコード。

780 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:37:45 ]
>>779
多いね。
うっかりやることもあるので、ちゃんと警告するシステムが欲しい。
(あるのかな?)

781 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:43:48 ]
NULLはプリプロセッサマクロだから使うなと言う舌の根も乾かぬうちに
#includeの話題で盛り上がってるあたりC++の病巣がよく表れている

782 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:45:27 ]
#include を使わずに済むしかけを入れて欲しかったな>C++0x

783 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:50:06 ]
シンボルだけを読み込む機能は確かに欲しいが、
いまさらC++に入れるくらいなら俺はDを使うわ。

784 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:52:09 ]
標準ヘッダーファイルの拡張子を無くしたときにやるべきだったな

785 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 18:46:50 ]
>>784
標準の拡張子無しのヤツはヘッダっていうんじゃなかった?
自分で作ったらヘッダーファイルだっけね。




786 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 20:53:48 ]
ヘッダはファイルである必要は必ずしもないという実装者を挑発するルールです

787 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:00:08 ]
Windows使っている俺は、実際のファイル名をヘッダ名と同じにしないでくれと思っている。
具体的に言うとファイル名に拡張子ほしい。<ios>でios.hppを探しに行くような感じで。
拡張子のないファイルは扱いが面倒臭い。

関連付け以外にも、色分けなどのために拡張子で種類を判別するエディタの多いこと。

788 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:19:21 ]
ヘッダファイルにエディタへのヒントとして、ファイルタイプを書くか、
副次ストリームに書く。
エディタはそれを読んで判断。

789 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:41:22 ]
ハードリンクでも張っとけばいいんじゃない?

790 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:15:03 ]
副ストリームって最近冷遇されてる気がするなあ

791 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:17:46 ]
><ios>でios.hppを探しに行くような感じで
でも結局iosのファイルの中身は
#include <ios.hpp>
だけだったりするんだよね

792 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:29:30 ]
0xが正式に導入されたら、今ある入門書って買い換えなきゃいけない?

793 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:31:43 ]
入門レベルなら大して変わらないかと

794 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:38:16 ]
「対して変わらない入門書」なんてものは悪書としか言いようが無い。
C++標準化後にどれだけ旧態然とした入門書が悪影響を与えたか。

795 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:54:23 ]
正式導入されたとしても、
結局 VC++ が無視したら広まらないんだろうな。
C99 みたいに。



796 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:56:17 ]
既にTR1入れてるぐらいだし、比較的早めに0x対応するのではないかと楽観視している

797 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:58:18 ]
STLの書き換えがダルそうだよな
俺らは使うだけだけど

798 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:00:01 ]
どうせ書くのはdinkumwareだろ
MSじゃなくてさ

799 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:00:45 ]
まあ TR1 くらいなら特にコンパイラいじる必要もないから簡単に入れれるけど、
言語仕様に手を入れるのはどうなんだろうね。
VCEE の C++ の力の入れ具合が 2005 で微妙だったのが(デフォでは Platform SDK なし)
2008 で微妙に改善されたので(デフォで Windows SDK あり)
もしかしたらやる気があるのかもしれない。

800 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:16:03 ]
>>799
TR1だってispodとかコンパイラに手を入れないと無理なのもある。

ところで、もしVC++がExpressだと0x使えないって言われたら
喜んでStandard買いそうな気がしてならない。
そんときゃg++で我慢すればいいはずなのに。

801 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:16:59 ]
で、結局入門書は買いなおしたほうがいいんだな?

802 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:19:50 ]
しばらくは取って付けたような入門書ばかり出るんだろうけどね。

803 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:20:53 ]
入門書なんてvarとshared_ptrあたりをさわるので精一杯じゃね

804 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:22:39 ]
var じゃなくて auto じゃね

805 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:23:59 ]
autoとヌルポは絶対教えるだろ。
あとはinitializerでのコンテナ初期化と範囲forとか



806 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:27:12 ]
どうせ数ページ書き直しただけで「C++0x対応・全面改訂版」とかって帯付けて売るんだぜw

807 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:29:05 ]
欄外に「新しいC++の規格ではこのように書くことも出来るようになりました」って注釈つけて終わりにしたりな

808 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:31:26 ]
D&E 2015年版が出るなら絶対買う。

809 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:43:26 ]
地味だけどlong longは間違いなくとり上げられる。

810 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:48:09 ]
>>799
けどC++/CLI蹴られたし、ISO C++からは離れるかもね。

811 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:53:26 ]
>>809
型の種類と値の範囲の表をちょっと増やすだけだもんなw

個人的にはUTF文字列をまともに扱って欲しい

812 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:58:03 ]
美少女中学生にしてみれば下着の種類が増えるだけだからな
外に出るときの見た目は変わらない

813 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:48:21 ]
対応したコンパイラって、すぐ出るのかな?

814 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:49:30 ]
gccとか既に一部対応してるから、規格になることには全部対応してるんじゃね?

815 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:53:42 ]
ふむ。
gccぶち込んでみるかな。



816 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:54:49 ]
139 名前:デフォルトの名無しさん[sage] 投稿日:2008/06/11(水) 20:50:38
どうでも良いが個人的にまつもと氏に0xに改善されても尚C++が問題外かどうかを訊ねたい。

817 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 21:31:56 ]
>>816
もっとだめと言うに100万ペリカ

ところで初心者向けと言えば、やっぱりテンプレート絡みの
エラーメッセージがまともになるという1点においてコンセプトが
一番簡単にアピールできる機能だと思う。
コンセプト自体は、入門書で取り上げられるような内容ではないだろうけど。

818 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 08:16:26 ]
禿は0xむけに第4版出すんだろうか

819 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 10:28:13 ]
第4版よりD&Eの第2版がほしい

820 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:25:24 ]
D&Eの続編書いて欲しいな。別の本で。
>>693のGregorとか。
一人で大幅な改訂してる暇はたぶんないだろ。
WG21 papers、かなり名前出てくてるからな。

821 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:26:54 ]
Wikiを読んでいると、「うざくなって?」って、思えてきたのですが、
そんなことない?

822 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:32:27 ]
日本語でおk

823 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:20:39 ]
美少女中学生が携帯で書き込んでいるようだな

824 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:13:20 ]
>>823
ぼっぼくと付き合ってくださいっ!

825 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:01:42 ]
>>824
文脈的には>>821が美少女中学生だと思う

TC++PLやD&Eの続編って書く予定ないのかな と思って禿のページ見に行ったら
なんかいまC++の入門書書いてるみたいだね



826 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:30:15 ]
VCって、どこまで対応させるのかな〜?

827 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 20:21:40 ]
>>825
おお、それは期待したい

828 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 20:21:56 ]
テンプレートだって未だにまともになってないのに
そこにコンセプトなんか追加したらどうなることやら

829 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:22:58 ]
「もう美少女中学生とかどうでもいいだろC++0xの話をしろよ」と書き込もうとしたけどやめた。

830 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:24:03 ]
やめろよ

831 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:31:25 ]
「もう美少女中学生とかどうでもいいだろC++0xの話をしろよ」っていう書き込みを見て「やめろよ」と書き込もうとしたけどやめた。

832 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:33:18 ]
C++0xは美少女中学生萌え言語ですよ?

833 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:35:17 ]
C++0xと美少女中学生には全く関連性がありません!
両者が結びついているかのような書き込みは控えてください!迷惑です!
ここはC++0xのスレッドです!C++0xの話をしてください!
美少女中学生の話がしたければどこかよそでやってください!

834 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:39:31 ]
えぇーまじでぇー


835 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:55:11 ]
C++0xなら美少女中学生なんてコンパイル時にゲットできる



836 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:56:41 ]
NGワード : 少女

837 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:57:56 ]
>>835
コンパイルに何年かかるんだ?

838 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:58:14 ]
>>828
コンセプトが追加されてはじめてまともになるんじゃないか。何を言ってるんだ

839 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:37:42 ]
>>838
紫の上のコンパイルはたった4年です。

840 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:31:21 ]
>>784
拡張子をなくした理由ってなんだろ?


841 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:32:15 ]
>>792
いつまで入門者でいるつもりなのかなー

842 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:38:19 ]
>>840
ヘッダはファイルである必要は無い
とか言えるようにするため。

843 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:34:50 ]
.hまで含めて名前です。とかでもよかったじゃん。

844 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:36:53 ]
互換性を失う変更を導入するための苦肉の策だったのだと思う

845 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:37:26 ]
名前空間の無い時代に

#include <iostream.h>
int main() {
 cout << "hoge" << endl;
 return 0;
}

とか書かれたプログラムが大量にあってだな・・・。
それとの互換性を考えると名前を変えざるを



846 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:06:58 ]
ほんっとしがらみいっぱい過ぎだよな。

847 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:11:18 ]
互換性無視してしがらみ全部捨てたC++欲しいよな。
特に暗黙の型変換辺り。

ちなみにDなら不要だよ。

848 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:12:46 ]
Dは自分でしがらみ作りまくったりしてるからな・・・
時には思い切って捨てたりしてるけど(信者を)それが逆にしがらみになってる。

849 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:25:48 ]
>>847
仕様だけでも作ってくれ

850 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:28:12 ]
>>847
暗黙関係はトラブルの元だからどうにかしたいな。暗黙関係は警告を出すオプションが欲しい。
デフォルトのコピーコンストラクタが作成できませんなんて余計な警告はあるのになんでないんだ?>VC8

851 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:52:11 ]
明示的なメモリ管理ができないC++とか
その場合でもmove semanticsは面白いこと出来ると思う。

852 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:27:37 ]
暗黙の型変換を全部禁止したらどうなるのかな
double d = 1;
とか
Base *b = new Derived();
とかが全部エラーになるんだよな

853 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:29:42 ]
アップキャストは安全なキャストだから禁止する必要もあるまい。

854 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:33:28 ]
安全だろうと何だろうと、何かの暗黙の変換を認めたら
あれも認めろこれも認めろと言うキチガイが出てくるので全て禁止です

そういう思想で作られてる言語ねえのかな

855 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:42:53 ]
OCaml は結構型に厳しかったと思う



856 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:20:30 ]
double d = 1;
は実質
double d( 1 );
と同じだから明示的な変換を表しているんじゃないか?

857 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:22:16 ]
暗黙的なコピーコンストラクタの実行をやめてくれって話じゃなかったのか

858 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:29:26 ]
explicit でおkだっしょ

859 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:41:09 ]
デフォルトのコピーコンストラクタはどうかなあ。

860 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:42:31 ]
ああ、コピーコンストラクタの話か。
0x 的には = delete してくれってことじゃないのかな。

861 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:44:38 ]
組み込み型の暗黙の型変換が結構うざいんだよな。
特にポインタ、文字型、論理型が整数様型と絡むと。

862 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:46:08 ]
explicit をデフォルトにしてほしかった。

863 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:47:36 ]
schemeみたいに簡単に方言作れるkitがあればいいのにな。

864 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:55:09 ]
>>862
それはよく思う。
でも、今更変えらんないんだろうなあ。

865 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:57:43 ]
Javaはreflection APIがあるから、
言語拡張&コンパイラ実装の研究がどんどん進んでいるね。



866 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 23:38:08 ]
セックスプリプリシット?

867 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:46:35 ]
虚しいオッサンの虚しい書き込みが続いております

868 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:47:36 ]
>>865
OpenC++の中の人も今はOpenJavaやってるね。

869 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:06:45 ]
クラスの内部ポインタを交換するような例外安全な swap を書くとき
それを std 空間に template <> swap( .. ) と逐一定義しないと std::swap から呼ばれない。
理屈はわかるんですけど、なんとかならないですかね。
一々 namespace std { template <> swap( うんたらかんたらと書くのが面倒くさいです。

870 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:50:04 ]
クラステンプレートならどうにもならない

871 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:24:39 ]
自分の場合は using std::swap してから swap() を呼び出しているので
クラスと同じ名前空間に swap() を定義している。

872 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:01:32 ]
swapなんか使わない設計にしなさい

873 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:08:06 ]
そうですね。
これからは右辺値参照の時代ですもんね。

874 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:41:59 ]
swapを使おうとする前に、一度立ち止まって
自分が値をあべこべに格納していないか考え直しなさい

                 Bjarne Stroustrup

875 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:38:14 ]
>>869
恐らくどうしようもないかと思います.
さらに, std 名前空間以外の名前空間で定義された関数テンプレート
(クラステンプレート内で定義されてた非テンプレート関数もこれに準じますが)
において, unqualified call で swap が呼ばれる場合にも対応しようとすると
クラスと同じ名前空間にも swap を定義しなければいけなくなります.

現時点において,規格として std 名前空間で定義された関数テンプレート内で
>>871 さんの提言する実装 (using std::swap;) が行われている保証が無いことが
本質的な問題だと思います.ただ,ここに文句を言っても現時点での問題は
何も解決されませんので,とりあえずの次善策として, std::swap の特殊化と
associated namespace に swap を定義することの両方を実施することを
個人的には勧めておきます.「面倒くさい」という問題の解決にまったくなっていませんが.
さらに >>870 さんの言うように,クラステンプレートの場合には
根本的な解決策はないです.

>>873
move できるかどうかは, swap できるかどうかとは本質的には独立で,
特に move が可能になるためには,オブジェクトに valid resourceless state が
存在することが必要になり,これはやや強い制限だと思いますから,
move はできないけれども swap はできるという状況は比較的容易に起こりえると思います.
なので, move さえあれば良いということは必ずしも言えないかと思います.



876 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:51:43 ]
concept HasSwapFunction<typename T> { T& swap(T&) throw (); }

template <typename T> requires HasSwapFunction<T>
inline void swap(T& x, T& y) throw () { x.swap(y); }

template <typename T>
inline void swap(T& x, T& y) throw () { std::swap(x, y); }

↑ こういう感じのってダメなの?よくわからんけど…

877 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:00:17 ]
>>876
template<HasSwapFunction T>
concept_map Swappable<T> { void swap(T &x, T &y){ x.swap(y); } }

多分,こんな感じで concept_map で差異を吸収したほうが楽なのではないかと.

878 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:03:49 ]
交換も、コピーコンストラクタや代入演算子と同じように扱えばシンプルになると思うんだけど
・デフォルトはクラスが定義するswapを実行する
・swapが実装されていなければ、言語側で一時オブジェクトを作り処理する
とできないのかな
実装で埋めようとして複雑になっている印象がありますが

879 名前:デフォルトの名無しさん [2008/06/18(水) 04:23:08 ]
Namespace issue with specialized swap
groups.google.ca/group/comp.lang.c++.moderated/browse_thread/thread/b396fedad7dcdc81

880 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:07:18 ]
for文の改良ってしないの?


881 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:18:58 ]
foreachってC++0xになかったっけ?

882 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:00:02 ]
入ったよ。
for (int &entry: aContainer) { ... }

Javaのクロージャを引数に取る拡張に比べるとつまらない。>>48
C++的には最悪のセンスだと思う。


883 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:41:05 ]
Javaから構文パクるなんてC++も地に墜ちたもんだな

884 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:58:22 ]
まあでもC++にeachとかinとかのキーワードを入れるのも有り得ないだろうし、
これくらいしか書きようがないと思う。

885 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:00:07 ]
ところでこのループ変数は参照なの?
参照が指す先変えながらグルグル回るの?

キモッ



886 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:21:35 ]
別にキモくはないだろ。
従来の、for無いのスコープで参照変数を宣言してるようなもの。

887 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:29:26 ]
for (int &&entry: aContainer) { ... } はあり?

888 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:55:18 ]
ぅん・・・

889 名前:1/2 mailto:sage [2008/06/18(水) 19:11:15 ]
昔々、Sunにとある厨が居た。
彼はC言語の研修でポインターでつまづくような無能で、無論C++など理解出来なかった。
プログラマーとしては全く使い物にならんということでネットワークエンジニアとして使われていた。当然役には立たなかったが、サーバー運びや配線や小間使いぐらいは出来た。
この世にポインターがあるから自分がそんな境遇に陥ったのだと不満を募らせた彼はポインターを憎悪し、ポインターの無い言語があればいいのに、と夢想するようになった。
彼はその夢想言語をJAVAと名付け陳腐な企画書を出したが、すべて無視された。
そんなある日、どうせ役には立たないんだからと、しつこいNetscape社の営業を追い払う仕事を任された。もちろん権限は一切なく、ただNetscape社の営業の話相手をし、すべてを断るだけの仕事だ。
彼は毎日のようにNetscape社の営業と無駄話をした。彼にとってそれは、愚痴や不平不満をこぼす絶好の機会だった。
Netscape社の営業は当然のように彼に同意した。彼の境遇に同情し、彼の才能を認め、褒め称えた。
そして誰も耳を傾けなかった夢想言語JAVAの話になるとNetscape社の営業は強い興味を持ち、ブラウザーに搭載したいと言い出した。当時のNetscape社は、動きのあるページを作る案を求めていた。
夢想言語JAVAが現実のものになる。彼は天にも昇る気持ちになり、全面的に協力を申し出た。が、やはり何の役にも立たなかった。すべての設計、策定、実装はNetscape社によって行われた。
Netscape社は、夢想言語JAVAを「何処でも全く同じに動く言語」としてブラウザーに搭載しようとしたのだ。
これを聞いて驚いたのはSunの役員達だ。直ちにNetscape社と交渉し、JAVAはそもそもSunのものであることを主張し始めた。
交渉の結果夢想言語JAVAの最初の実装はJavaScriptと改名することになり、SunのJAVAとは独立したNetscape社の言語となった。

890 名前:1/2 mailto:sage [2008/06/18(水) 19:11:45 ]
Sunは直ちに「何処でも全く同じに動く言語」の現実性を調査し、仮想マシンを使うことで可能であることを検証した。
また夢想言語JAVAの詳細を厨に尋ね、規格をまとめ……ようとした。というのは、厨の頭の中には「ポインターを使わない」の他には支離滅裂な妄想以外何も無かったからだ。
役に立たない彼を「夢想言語JAVAを広める為の広報」に追い出し、夢想言語JAVAではなく現実的なJAVA言語の設計が行われた。
だが現実的設計にはいろいろと難があった。その度に開発部は厨に尋ね、その意向を可能な限り反映する努力を行った。しかし無能な厨の意向を反映することは困難を極めた。
その中で最も大きな障害となったのが、多重継承の禁止である。
未だにSunは公式に認めていないが、JAVAが多重継承を禁止する決断をさせたのは、実はMicrosoftの寄与するところが大きかった。
Microsoftは既にMFCとCOMによって多重継承が抱える問題を解決していたからである。
その後も厨は(何度出入り禁止を喰らっても)設計に口を出し、そして開発部はその意向を可能な限り反映する努力を行ない続けた。
特に厨が主張するコーディング規約は支離滅裂を極め、ゴスリンは「それまでに書かれたコードを書き直す量が最も少なくなるコーディング規約」をまとめる必要に迫られた。
この時にまとめられた何の意味も無いコーディング規約は後に、それを知らなかった企画部によって改めてまとめられJAVAの標準のコーディング規約として発表された。
ゴスリンはこの時の心境を「JAVAが最高だと生涯言い張り続ける覚悟を決めた」と述懐している。
厨は熱心に広報活動を行っていたが、役に立ったのは最初だけだった。すごい言語が出来る、ということを印象付けた後は、何の役にも立たなかった。
開発には近寄ることすら許されず、広報からは役立たずの烙印を押された。彼は再びネットワークエンジニアとして保守管理部に戻った。
今では彼は毎日何百ものLEDを見張って、消えたらそれに対応するハードディスクドライブを交換する仕事をしていると言われている。名前は記録されていない。

891 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:12:40 ]
ついに参照の指し変えが認められてしまったのか…

892 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:18:37 ]
>>875
valid resourceless state てなーに?

893 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:24:14 ]
Java の参照型はまさにポインタだろうが・・・。

894 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:26:03 ]
NullPointerExceptionがあるしな

895 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:26:50 ]
Javaの参照型はインクリメントできる?



896 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:28:34 ]
>>893-895
ネタにマジレスw

897 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:29:56 ]
マジレスもできない奴は板を替えたほうがいい

898 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:30:34 ]
ネタにマジレスするのが最近のトレンドなんだぜ

899 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:37:47 ]
ネタに、というよりホラにマジレスだな

900 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:38:24 ]
>>892
d = std::move(s);
という構文が実行された直後の s の状態が明確に定義されていなければならないですが,
この状態は有効な状態でなければならず,かつ,
いかなるリソースの所有権も保持していないような状態でなければならないです.
これを valid resourceless state と表現していました.

有効な状態 (valid) でなければならないというのは,
move された直後の s に対しての操作が
well-defined でなければならないという要請を表現したものです.
少なくとも最低限かつ自明の要求として,いかなるタイミングでも
デストラクタの発動は有効に機能しなければならない,という意味で
有効な状態でなければならないことは分かるかと思います.

また, move は no-fail,つまり失敗しない操作であることが要求されます.
ここで仮に move 直後の s が何らかのリソースの所有権を保持した状態であるとすると
s が保持するリソースの確保において失敗が発生する可能性があり,
move が no-fail であるという要求と矛盾します.
従って, s はいかなるリソースの所有権も保持していない状態
(resourceless) である必要が出てきます.

一般に,オブジェクトが常に何らかのリソースを確保している状態であることが自然な場合,
このようなオブジェクトに move の操作が行えることを要求すると,
オブジェクトの構築は完了しているがリソースの確保が完了していない
オブジェクトの状態を有効な状態としてユーザに暴露しなければならなくなり,
RAII の観点から見てやや大きな弱点を生じるように思います.






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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