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


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

C++11/C++0x 15



1 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 23:27:34.48 ]
The C++ Standards Committee
www.open-std.org/jtc1/sc22/wg21/

Wikipedia
ja.wikipedia.org/wiki/C%2B%2B11

前スレ: C++11/C++0x 14
hibari.2ch.net/test/read.cgi/tech/1316760961/


2 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 23:27:59.61 ]
C++0x
pc11.2ch.net/test/read.cgi/tech/1149440647/
C++0x 2
pc11.2ch.net/test/read.cgi/tech/1191842951/
C++0x 3
pc11.2ch.net/test/read.cgi/tech/1204808027/
C++0x 4
pc11.2ch.net/test/read.cgi/tech/1214407525/
C++0x 5
pc12.2ch.net/test/read.cgi/tech/1232460649/
C++0x 6
pc12.2ch.net/test/read.cgi/tech/1245092251/
C++0x 7
pc12.2ch.net/test/read.cgi/tech/1253280377/
C++0x 8
pc12.2ch.net/test/read.cgi/tech/1262874195/
C++0x 9
pc12.2ch.net/test/read.cgi/tech/1269623636/
C++0x 10
hibari.2ch.net/test/read.cgi/tech/1275375522/
C++0x 11
hibari.2ch.net/test/read.cgi/tech/1285884294/
C++0x 12
hibari.2ch.net/test/read.cgi/tech/1298470844/
C++0x 13
hibari.2ch.net/test/read.cgi/tech/1311240361/
親戚スレ
C1x
hibari.2ch.net/test/read.cgi/tech/1296642667/

3 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 00:01:25.19 ]
痛みに耐えてよく頑張った! 1乙!

…奥さんとの会話は殆ど無いらしいよ?
そりゃあ、宮沢りえちゃんとは比較にならないよな、年上女房。

4 名前:前スレ977 mailto:sage [2011/11/17(木) 09:50:50.98 ]
前スレ >>982
おおお、VCでもできました。ありがとうございます。

VCでラムダのメンバが見れなかったから、なんか特殊な物だと思っていたんですが
関数オブジェクトだったんですね。

前スレ >>985
可変長はVCではできないので、また今度お願いします。ありがとうございます。

5 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 10:29:00.11 ]
結局 C++ 相談室との棲み分けはどうしたらいいの?

992 :デフォルトの名無しさん:2011/11/16(水) 23:17:17.49
C++11はもう正式な標準になったんだから、C++11の話はC++相談室でいいだろ。
こっちはC++1xとか「次期C++標準」とか、そういうスレになるんじゃないの?

993 :デフォルトの名無しさん:2011/11/16(水) 23:21:22.74
次期規格つっても5〜7年後だろ。
98?03?11って流れだからな。
ネタがないって。

994 :デフォルトの名無しさん:2011/11/16(水) 23:21:59.16
最狂言語スレ?

995 :デフォルトの名無しさん:2011/11/16(水) 23:22:54.74
>>993 ネタが無いならこのスレ終了ってことでいいんじゃね?

996 :デフォルトの名無しさん:2011/11/16(水) 23:24:24.02
まともに実装されて普及されるまでは必要だな

6 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 11:03:48.34 ]
あと1〜2年はC++11の新機能に関する
質問を受け付けつつ、次のC++の仕様を
夢見るスレってことでいいんじゃないの。

7 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 12:53:28.54 ]
如何にしてC++相談室への平和的な侵略を試みるかについて話し合うスレ

8 名前:デフォルトの名無しさん [2011/11/17(木) 13:39:15.21 ]
棲み分けね

C++11 で不採用や延期になった proposal について語るスレでどうよ
まだ「C++0x」あるいは「C++11」で、「C++」ではなかった頃の話ってことで

9 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 19:32:02.73 ]
C++11はまだ99%以上準拠した環境がないんだから
メインはこっちで

10 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 22:10:00.14 ]
export非推奨になるかも…って話はいったいどうなったんですか?



11 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:23:28.92 ]
exportはdeprecatedですらなく、廃止されました
C++11ではexportはただの予約語

12 名前:デフォルトの名無しさん [2011/11/18(金) 23:59:29.51 ]
call や overload みたいに予約語ですらなくならなかった理由は何だろう
まだ再燃する余地が残っているのかな

13 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:23:11.61 ]
autoみたいに再利用するかもしれないからだろ
今は予約語確保するのも大変なんだよ

14 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:26:48.66 ]
予約後も名前空間に入れてしまえばいいのに
std::auto x = hoge();
これで面倒な問題はだいたい解決する


15 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:27:09.30 ]
過去に使われたからだろ

16 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 02:03:22.00 ]
>>14
C++世代で識別子と予約語を混同する奴がいるとは思わなんだ。


17 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 02:07:28.31 ]
C++世代ってなんだ?

18 名前:デフォルトの名無しさん [2011/11/19(土) 02:16:53.08 ]
水色時代

19 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 09:56:27.95 ]
>>12
overloadって規格になる前に消え去ったことないか

20 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 11:44:27.92 ]
>>16
Scheme だと特殊構文も名前空間 (Scheme 用語では library) に属してて、関数やマクロと一貫した扱いになってる綺麗な仕様。

混同する奴は問題じゃない。
区別しなけりゃならないクソ仕様な C++ に疑問を持たないお前が風の前の塵に同じ。



21 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 12:56:04.09 ]
括弧バカ言語の信者こわい

22 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 13:12:23.43 ]
C++はアホの言語ということを受け入れられない可哀想な子が居るね

23 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 13:16:00.31 ]
それでもC++が圧倒的なシェアを誇りSchemeなど足元にも及ばない現実を
認められない可哀想な子がいるね

24 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 13:57:29.73 ]
C++ が馬鹿でも使える優秀な言語であることは認めてやるよ。

25 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 13:59:44.65 ]
C/C++も括弧バカ言語の範疇へ十分に入るよ

26 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 14:20:36.86 ]
せやな
C++はバカ言語で決まりや


27 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 14:53:16.74 ]
>>12
export 実装した処理系が少なくとも2つ存在してる。

28 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 14:55:09.33 ]
>>25
Cを一緒にすんなよ。

29 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 17:11:31.14 ]
callやoverloadだって実装はされてたろう、多分
その時代知らないけど

30 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 21:57:04.40 ]
>>28
algol 系の begin/end ではなく {} を使うから「括弧バカ」だと言ってるんじゃないかな。



31 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 23:08:58.23 ]
begin/end よりも {} の方が見やすいと思うんだが
begin/end 見ると目が痛い…

32 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 23:11:50.18 ]
つか予約語の多い言語は総じてクソ。
beginやendがシンボル名に使えないとか
どんな罰ゲームだよ。

33 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 23:24:12.96 ]
begin endって関数名にもよくあったりするから
あまり他のとこで見たくない

34 名前:20 mailto:sage [2011/11/19(土) 23:26:29.08 ]
C/C++ は残念ながら比較対象に入ってないけど、
簡単な検証では Java が特に括弧が多いという見解が出てる。

e-arrows.sakura.ne.jp/2010/08/is-lisp-really-has-too-many-parenthesis.html

たぶん C++ も Java と似たような結果になるんじゃないかな。
言語はパラダイムの違いがあるから公平に「同じものを書いて比較」ってのが出来ないし、
この程度の単発のお題で結論は出せないけど、
世間で思われるほど他の言語より Lisp に括弧が多いということは無い。

言語の比較対象として Lisp を持ち出したときに括弧のところで思考停止するのマジでやーめーてー。
今回は識別子の扱いが一貫してる話で Scheme を出したのに何で括弧の話になってるんだよ。

35 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 23:35:33.62 ]
お前がくだらない事書くからじゃねぇか

36 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 00:16:47.17 ]
www.mahdiyusuf.com/post/9947002105/most-pressed-keys-and-programming-syntaxes
やっぱり多いような……w

37 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 01:11:55.58 ]
式ごとにカッコが必要だから
当然多いわ

38 名前:デフォルトの名無しさん [2011/11/20(日) 01:15:21.51 ]
括弧つけるかつけないか迷うくらいなら、全部付けなければコンパイル通らない方が、頭使わなくていいし、間違いも少ない。

39 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 01:32:02.59 ]
カッコの対応が・・・

40 名前:デフォルトの名無しさん [2011/11/20(日) 01:36:39.74 ]
なるほど、カッコの対応が正確にあっていなくてもいい言語が必要なようですね。



41 名前:デフォルトの名無しさん [2011/11/20(日) 01:56:38.59 ]
暗黙の結合規則で失敗するくらいなら、全部付けなければコンパイル通らない方が、頭使わなくていいし、間違いも少ない。

42 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 03:25:29.50 ]
>>40-41
つまり括弧ないとコンパイルは通らないけど、
全部無視される仕組みって事ですね。

43 名前:デフォルトの名無しさん [2011/11/20(日) 03:42:43.29 ]
Lispのカッコが非常にうっとおしい。
Lispのカッコをなくすべき。

44 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 04:03:24.35 ]
というかもうHaskellでいいです

45 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 07:16:47.63 ]
右辺値参照を勉強し始めましたがさっぱりです。moveとforwardで躓きました。
8.3.2の↓をアホな僕にわかるよう誰か説明してもらえんでしょうか。
If a typedef (7.1.3), a type template-parameter (14.3.1), or a decltype-specifier (7.1.6.2) denotes a type TR
that is a reference to a type T, an attempt to create the type “lvalue reference to cv TR” creates the type
“lvalue reference to T”, while an attempt to create the type “rvalue reference to cv TR” creates the type TR.

void f(int &&a)のaは必ずint &&だけど、
template<typename T> void f(T &&a)に右辺値(0など)を渡すとaはT &&で
template<typename T> void f(T &&a)に左辺値(変数)を渡すとaはT &になる。何ですかコレ?

46 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 08:24:49.84 ]
>>45
slashdot.jp/~taro-nishino/journal/507551

これ読むと解決。
多くの場合コピーコンストラクタと代入演算子と生成に関するパターンが注意のしどころの様子なので
これはイディオムになるような気配がするんだよんよんよん…

47 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 09:09:18.85 ]
>>36
Lispだけ()の打鍵数多くて目立つなあw
なんで、共通してeの打鍵数が多いんだろ

48 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 09:21:56.86 ]
英語の中で e の出現頻度は飛び抜けて多い。
ってシャーロックホームズが言ってた。

49 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 09:59:59.82 ]
符号化の基本だよね

50 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 10:50:27.42 ]
>>48
モールス符号



51 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 12:06:57.69 ]
>>40-41
多過ぎて対応取るのが面倒という話なのになぜそうなる

52 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 19:03:33.88 ]
C++版可変長引数って配列を突っ込んだらそのまま使ってくれたりすんだっけ?

int
       array[] = { 1, 2, 3 };
Example
       a( 1, 2, 3 ),
       b( array );

53 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 19:24:55.46 ]
配列の先頭要素へのポインタが渡される

54 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 19:33:03.54 ]
オーバーロードするしか無いのか。
割と気が効かんね。
コンストラクターの委譲のおかげで多少シンプルにできそうだけど。

55 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 19:58:32.39 ]
配列を引数に個別に展開とか何の嫌がらせだよ

56 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 20:17:59.26 ]
ああ定数での渡し方を間違えてた。
Example
    a( { 1, 2, 3, 4} );

可変長引数じゃなくて、初期化リストっていうのかこれ。

57 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 20:27:46.25 ]
std::initializer_list<int> 型で渡されるんじゃないのか?
g++だと内部エラーが出て死んでしまったが

58 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 20:30:50.24 ]
って、もしかして a(...) じゃなくて a(std::initializer<T>) を想定してるのか?
まずは a のプロトタイプを教えてくれ

59 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 20:40:27.73 ]
前者のinitializer_list<T>を想定してる。
要するに、↓ができないのは残念ねって事を言ってた。

int array[] = { 1, 2, 3, 4 };
std::initializer_list<int> a = array;


60 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 20:44:13.47 ]
後者じゃないのか?



61 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 20:52:10.06 ]
これでいいので実のところ大した手間ではない

template <typename Iterator>
void a(Iterator b, Iterator e) { ... }

template <typename T>
void a(std::initializer_list<T> list) { a(list.begin(), list.end()); }

using std::begin;
using std::end;

a({ 1, 2, 3, 4 });
a(begin(array), end(array));

62 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 20:54:37.07 ]
見た目的にどうかってより、テンプレートの時どうかってね...。

63 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 21:03:38.99 ]
template <typename T>
void a(T (&array)[]) { a(std::begin(array), std::end(array)); }

これも追加しておけば?

64 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 21:04:01.17 ]
constわすれた

65 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 21:14:09.51 ]
だから>>54にね。

66 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 21:53:30.68 ]
いまさら組み込み配列なんか使ってんじゃねえ、とかw

#include <vector>

void fv(std::vector<int> const & v) {};

int main()
{
std::vector<int> v = {1, 2, 3};
fv(v);
fv({4, 5, 6, 7});
return 0;
}

67 名前:デフォルトの名無しさん mailto:sagee [2011/11/20(日) 22:05:45.85 ]
そこはstd::arrayだろう。

68 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 22:16:27.68 ]
>>66
だって動的メモリ確保おせーんだもん。
スタックでの配列確保なら1回の加算命令で済むのに、
ヒープ確保じゃ20命令以上使う上に分岐まですんだぜ。

69 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 22:43:02.53 ]
1回のというか、関数の最初に全変数分の領域確保するから
他に変数があればコストは0
(キャッシュヒット率に影響は出るかもしれないが)

70 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 23:05:48.86 ]
なるほど、それで小さいプログラムでは new とか malloc とか使わないのか。
スタック最強伝説。あせんぶりぶり



71 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 23:36:14.45 ]
脇道

>> だって動的メモリ確保おせーんだもん。
事実であってもその遅さの比較は真実として意味のあるものなのか?
プログラムを普通に一時間使ってる間にある処理が複数回行われてあるやり方だと合計で1msかかるのが
別のやり方だと100倍遅くて合計で100msかかるようになったところでなんだというんだ。

よく言う高速化・最適化は実測が基本というのは本来はそういう視点で高速化すべきポイントを見定めるという意味のほうが大きかったんだぞ。

72 名前:デフォルトの名無しさん mailto:sagee [2011/11/20(日) 23:42:54.79 ]
いやその例は体感できるだろw
0.1秒って結構分かるぞ

例を出すならマイクロ秒にしとくべきだったな
実際CPUの高速化で意味がなくなってる最適化も多いし

73 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 23:51:17.59 ]
ベクトル系の処理だと、頻繁にメモリ確保なんかしてられないんだけど。
計算数が増える前に一括で領域をとっておき、
固定で済む範囲は、生配列を使わないと指数的に影響するときもある。

74 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 00:00:43.32 ]
>>71
スレッド2つ用意して、1つのスレッドからデータ供給、
もう1つのスレッドからデータ読み取り。そのデータ供給の際、
1かつ確保したメモリを参照するパターンと、
毎回newしたメモリを引き渡すパターンを作って試してみ。
Mordern C++ Designにも書いてあった、C++のアロケータは
小規模メモリの確保が苦手というのがよく解ると思う。

75 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 00:25:48.82 ]
vectorによるメモリ確保はゼロクリアも行われるよね

76 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 00:31:49.71 ]
>>72
元の話は一時間での合計の差だぞ。つまり60*60*1000=3600000msと3600099msの違い。
一秒当たりにならすと1000msと1000.0275ms、1.0sと1.0000275sの違い。この差がわかるならたいしたものだ。

この考え方が理解できないなら一秒間に一回定期的に行われる処理の場合を考えてみな。
(その場合は理想的な例にすぎるが高速化のための実測データはこういう視点で解析する。)

77 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 01:02:21.71 ]
>>76
ループで動的に確保してたら普通に遅い。
それだけの話に本筋とかけ離れた当たり前な事を言って何がしたいの?
ゴリ押しは気持ち悪いよ。

78 名前:デフォルトの名無しさん mailto:sagee [2011/11/21(月) 01:15:19.18 ]
ん?ああ、一時間ってのを普通に読み飛ばしてたわすまんすまん
でも漢数字とmks混ぜんな

79 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 01:16:26.64 ]
モサーリを改善しようとしたときに関数引数にvectorとかコンテナつこてるとあちこち書き換えしなきゃならなくなる
せっかくクドイC++で書いてんだから速度ヤバメな機能切れ目のやり取りには始めっから生配列を使っておこうや

80 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 02:00:43.17 ]
>>77
オマエ国語力無いな。
ループとか関係なく、トータルの時間差が
意味があるかを考えるってだけの話が理解できないのか。

200nsかかる処理が1万回ループしたとして、
それがウェブの1回の処理の中だったら2msなんて誤差だろ



81 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 02:16:59.06 ]
Webアプリだの速度が求めれれない環境の話しなんざしてないし
そんな環境でスタックだヒープだ気にはしない

82 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 07:25:46.82 ]
速度が求められるプログラムを組んだ事無い人なんだろうね

83 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 07:53:17.33 ]
そんなレベルの低い人はこのスレを見る資格無いよな

84 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 12:11:18.55 ]
はいはいワロスワロス

85 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 12:17:09.64 ]
速度原理主義者はクズ
高速化はハードに任せてソフト面では開発効率を最大重視するのが人類にとって有益

86 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 12:35:14.53 ]
>>85
そういう用途にはシステム記述言語以外のものを使ってくれ。

87 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 12:55:03.85 ]
>>85
だったらJavaでも使ってろよ。
お前自体がスレ違いだ。

88 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 13:06:23.53 ]
Javaはないだろ……

89 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 13:21:54.53 ]
「この新しくて軽い靴なら100M走のタイムが縮まるぜ!」

「(・・・その前に走行フォーム見直せよ・・・)」
「(・・・楽に走れる履きなれたのを使えよ。怪我するぞ・・・)」
「(・・・お前が走るのはマラソンだぞ。軽さより衝撃吸収性を考慮しろよ・・・)」

90 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 13:59:21.77 ]
C++でシステム記述w



91 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 17:56:43.99 ]
>>90
何か問題でも?

92 名前:デフォルトの名無しさん [2011/11/21(月) 20:37:19.85 ]
>>85
ハード屋はクズってことか
ハードしかできない人ではなくハード「も」できる人まで

おまえさ、ソフトって何か本質がわかってねえだろ
せいぜい教科書で教わった程度の定義でもの言ってるだろ

93 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 20:40:02.07 ]
重箱の隅つつくばかりの能無しが湧いてきやがったぜwww

94 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 21:09:34.68 ]
>>89
せいぜいRubyの靴を履いてフォーム改善に勤しんでろ

95 名前:デフォルトの名無しさん [2011/11/21(月) 23:11:51.43 ]






96 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 15:46:46.08 ]
おまえら全然C++11の話してないな

97 名前:デフォルトの名無しさん [2011/11/23(水) 16:34:50.03 ]
既に死んだ言語だし。

98 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 18:56:10.81 ]
では今来た俺に教えてくれ。最終的に9月の規格にはどこまでの仕様が挿ったんだ?
・右辺値参照 + moveセマンティクス
・unique_ptr
・テンプレ可変湖引数
・ラムダ
ここまで理解した

99 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 18:57:29.38 ]
そこまでだ問題ない

100 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 18:57:46.85 ]
wikipediaあたりに載ってるよ



101 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 19:37:59.51 ]
VC++で使えない仕様なんてゴミだろ

102 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 19:44:40.76 ]
VCがクソなだけ
いいかげんVCなんて捨てろよ

103 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 19:51:18.99 ]
商用コンパイラがGCCに比べて対応が遅くなるのは仕方ないだろ。
WindowsでVisual C++捨てろというやつの方が変だと思うぞ。仕事にならん

104 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 20:13:41.57 ]
Intelコンパイラとか
Borlandコンパイラとか
Comeauコンパイラとか

会社でそれなりの地位に居れば
それなりの選択肢はある。

105 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 20:34:35.37 ]
会社でそれなりの地位に居て決定権がありますが、
コード書くのは主に自分でなく部下・グループメンバーでなので、
チームで成果を出さないといけないので、自分はVC以外を選択する勇気がありませぬ(´・ω・`)
殆どのメンバーはラムダとか右辺値参照とか全く理解できないのです。下手をするとRAIIも

106 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 20:43:58.69 ]
そんな会社で大丈夫か?

107 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 20:46:49.63 ]
RAIIくらいは理解させといた方がいい

108 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 20:47:41.83 ]
教育しろよカス

109 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:11:49.94 ]
部署にもよるだろうな。
うちの特許レベルの技術開発してる部署だと、
主任レベルの人が社長と掛けあってIntel C++導入してたしな。

110 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:15:47.95 ]
マ板向けの話ではあるが、
C++使う人なら、上級技術者と、それ以外とが
部署として別れてる会社に入ったほうがいい。



111 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:45:42.82 ]
VC6 しか使わせてくれなかったので会社辞めたった
誰でも知ってる某大手子会社だぜw


112 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:16:17.13 ]
boost使うの禁止とか言われたんで嫌々自分でスマポ作った思い出ならある

113 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:35:22.21 ]
ITってかなり重要な部門なのに
なんでコンパイラごときで経費ケチケチすんだろうね

114 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:41:10.53 ]
不法コピーしない限り、コンパイラってかなりばかにならんぞ

115 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:41:27.12 ]
不法コピーしない限り、コンパイラってかなりばかにならんぞ

116 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:42:48.57 ]
重い

117 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:08:42.24 ]
禿20人とお前で開発環境はVC6でboostやstlport無し

お前任意数で環境はぼくのかんがえたさいきょうの開発環境
どっち選ぶ

118 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:13:29.81 ]
>>104
ほかはわかるがBorland?
03のテンプレートすら怪しくないかそれ

119 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:15:28.91 ]
Intel C++とハゲと俺まで読んだ

120 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:17:33.34 ]
>>118
最新のコンパイラはほぼ規格準拠してるだろ。
てか、今はEmbarcaderoだっけ。



121 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:18:24.84 ]
>>117
禿は規格無視したVC6使うぐらいならgcc使うんで仕事にならんと思う。

122 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:19:57.50 ]
俺の考えた最強の開発環境がどの程度のものかによるな
あらゆるツールやライブラリにスパコンとかも使えるんだろ

123 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:28:23.59 ]
ぼくのかんがえたさいきょうの開発環境

・ベース:Qt
・コンパイラ:clang++
・補助ライブラリ:boost
・バージョン管理:git
・作業OS:Fedora

他には?

124 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:29:14.49 ]
補助ライブラリにAceとBlits++でも加えとくか

125 名前:デフォルトの名無しさん [2011/11/24(木) 00:30:43.25 ]
>>112
そもそも boost がない頃から極めて重要な関心事だったが

126 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:32:26.89 ]
京つかったらコンパイルも一瞬だろうな

127 名前:デフォルトの名無しさん [2011/11/24(木) 00:42:57.00 ]
ぜひ、gccのフルビルドのスコアを教えてくれ

128 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 02:26:59.30 ]
ネタ話はプログラム書けない奴が何とかかんとかスレでやれよ
せめて

129 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 11:56:17.69 ]
Visual C++のIDEが使うコンパイラのファイルを
こっそりgccに入れ替えて、コマンドラインスイッチとかにも
対応してくれるようなのってない?

130 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 11:59:34.27 ]
C++11でできた新たな「罠」って見つかってないのかな
>>45
のmoveとオーバーロードとかちゃんと理解してないとハマりそうな



131 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 12:30:09.52 ]
とりあえずdecltype括弧問題

132 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 18:34:31.40 ]
>>131
kwsk

もしかして括弧で囲むと参照になるやつのこと

133 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 18:58:37.41 ]
int n;
decltype(n) i;   // int
decltype((n)) r;  // int&

これね
id-expression ならその変数の型、
そうじゃなくて左辺値なら参照、
(n) は id-expression でなく左辺値なので参照になる、と

134 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 23:29:21.87 ]
この挙動、左辺値でも参照でなく普通の型(上の例では int)にしたら
何か問題があったのかね

135 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 07:40:10.49 ]
N1978 -> N2115 の改訂で、
「decltype((e)) は decltype(e) と解釈する」という条文が消えた。
理由は書いてなかった。

136 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 13:07:14.96 ]
autoとdecltypeとtemplate型推論は同じかとおもってたが
decltypeだけそういう仕様があったのね

ほかにこの3つが違う型になる場合ってあるの?
auto a = ...;
decltype(...) a;
template<typename T> void hoge(T a){}
hoge(...);


137 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 16:43:03.71 ]
この手の話を全部覚えて使いこなせとか無茶だろ・・・

138 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 16:55:23.68 ]
気合の入ったライブラリを書く気がないなら必要ないから大丈夫だ
あとはsutter先生あたりの本が出るのを待つんだ

139 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 09:03:23.09 ]
とりあえず次期仕様には


テンプレートコンストラクタのテンプレート引数を明示的に指定する
operator()のテンプレート引数を明示的に指定する
インスタンス化不要な関数オブジェクト static operator()
配置newのテンプレート引数を明示的に指定する
というか演算子オーバーロード全般のテンプレート引数を明示的に指定する
配置newに対応するdeleteの明示的呼び出し
namespaceのprivateメンバ
テンプレートnamespace
テンプレートでないコンストラクタの引数からテンプレートクラスのテンプレート引数を推定する
 template<typename T> struct A{ A(T){} }; A(1)と書いたらTがintと推定できるような
テンプレート定数 template<int a> static const int b = a * 2;
テンプレートクラスのテンプレート引数によるオーバーロード
テンプレート関数の部分特殊化
SFINAEをキモイ構文じゃなくて言語機能として実装
オーバーロードの優先順位を指定したい
動的declype
 struct A{ virtual vodi f() = 0; };
 struct B : A{ void f(){} };
 A *b1 = new B;
 A *b2 = new dynamic_decltype(*b1); //Bのインスタンスができる


とか希望。

俺以外の誰もいらないと思うけど。

140 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 09:25:08.77 ]
オナニーは1日3回まで



141 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 08:17:39.35 ]
>>139
テンプレート関数の部分特殊化とdynamic_decltypeはほしい

それ以外はいらん

142 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 10:55:33.30 ]
関数テンプレートの部分特殊化は入らんよ
オーバーロードがあるからね

143 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 19:51:49.76 ]
テンプレートの特殊化はもちょっとどうにかならんかねぇ。
特殊化した型で、メンバー関数の実装を省いたら、
汎用型のメンバー関数を使うぐらいして欲しいんだけど。
メンドイ。

144 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 20:01:16.07 ]
特殊化していない方を継承すればいい。

145 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 20:24:31.65 ]
それじゃ、いらんもんが付いてくるので勘弁。

146 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 21:21:56.53 ]
コンストラクタ引数からtemplate型推論は欲しいな
このためだけにテンプレート関数作ることが結構ある

147 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 21:41:10.58 ]
>>146
単純なものだともう必要なくね?

Example<A, B> object = Type<Example>()(argA, argB);
型推論を使うと更にすっきり
auto object = Type<Example>()(argA, argB);

148 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 10:07:07.70 ]
>>145
設計が悪い。

149 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 11:27:27.61 ]
(:foo, bar:) みたいなのでtupleを返してくれるとか

150 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 18:21:28.90 ]
std::make_tupleで何がご不満か



151 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 20:04:33.09 ]
ながい

152 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 21:22:35.54 ]
>>148
設計の問題か?
template<> class Vector<2>;
template<> class Vector<3>;
例えば、ベクトルを次元別に特殊化して作ったとき、
外積は2次元3次元で実装変えるけど、
内積は共通のものを使いたいとか普通にあるだろ。

153 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 21:32:25.13 ]
あるある
というかまさにその例で

154 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 21:45:05.95 ]
>>152
メンバ関数単位で特殊化すればそこだけ入れ替わるよ。

template <class T>
struct A {
  int f(){ return 0; }
  int g(){ return 100; }
};

template <>
int A<void>::f(){ return 1; }

データメンバは同じやり方では特殊化できないけど
データメンバまで入れ替わるような特殊化をしたなら
汎用のメンバ関数なんぞ役に立つまい

155 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 21:48:11.20 ]
Vector<T, 2> / Vector<T, 3> だとそれ無理

156 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 21:49:56.86 ]
>>154
それ処理系依存でしょ。

157 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 21:54:02.38 ]
うむ。確かにダルイな
二桁近くのバリエーションに成れば対策講じるけど〜5種くらいならダサいなと思いながらもコピペ

158 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 22:00:55.06 ]
>>156
gcc -pedantic でもいけるから、たぶん規格通りのはず。C++11 も関係ない

159 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 22:02:49.02 ]
なるほどありがとう。多分当時触ったVCが糞だったんだろう

160 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 22:11:21.56 ]
現状の汎用的な解決策は、異なる関数だけfriendなんだろうが、
オーバーライドはできないし、コンストラクターや
デストラクターはどうしようも無いんだよなぁ。



161 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 23:02:31.44 ]
>>155
本当だ。部分特殊化はできないのか。

162 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 23:11:37.21 ]
Vectorをfloat/double/long double、2/3/4(同次座標)で作りたかった時に
部分特殊化できなくて困った
結局コピペ

163 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 00:50:59.75 ]
サイズわかってる行列とその演算はスクリプトで出力する派

164 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 17:36:26.95 ]
template<> class Vector<2> : public Vector_base<2>;
template<> class Vector<3> : public Vector_base<3>;

165 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 20:20:16.66 ]
結局俺もそれと同じような書き方してるな。

話が変わるが、Dのtypedef structってなんか問題あるの?
C++も組み込めばいいのに。

166 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 11:26:56.34 ]
プリプロセッサがスクリプト並にリッチになればいいのに

167 名前:デフォルトの名無しさん [2011/12/05(月) 11:32:21.31 ]
俺用メモ

Amazon.co.jp: ゲームプログラマのためのC++: マイケル・ディックハイザー, 三宅 陽一郎, 田中 幸, ホジソン ますみ, 松浦 悦子: 本:
ttp://www.amazon.co.jp/dp/4797366761
ttp://togetter.com/li/223398
ttp://www.amazon.co.jp/gp/bestsellers/books/754384/



168 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 11:42:24.43 ]
そこまで行くとスクリプトとmakeでいいじゃんってなる

169 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 14:08:10.40 ]
初めてのC++11まだ出てないですか?

170 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 14:32:18.49 ]
>>169
mayersがPDF売ってるよ



171 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 19:22:23.18 ]
>>166-168
げてものでならば

C#をプリプロセッサとして使う ― CsPP
ttp://labs.yaneu.com/20111002/

172 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 19:33:36.18 ]
コードジェネレータ系の欠点はエディタやIDEのサポートがなくなることだよな
そこまで自作してメンテナンスする気も起きないし

173 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 02:34:31.08 ]
>>170
高橋真奈さんのやつです。

174 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 01:58:58.79 ]
まなのC++本はNG入りのはずだが。
C++11対応を仮に書いたとしても期待できない。

175 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:54:00.65 ]
dynamic_castを言語機能の中に入れてしまったのは間違いだったよね

176 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 20:43:01.12 ]
なんでやねん

177 名前:デフォルトの名無しさん [2011/12/12(月) 23:26:37.32 ]
それ以外の言語機能でできることを、言語機能とはしないというポリシーはもともとないんだが

178 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 23:58:52.20 ]
プリプロセッサw
自分で書けよw

179 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 15:23:10.00 ]
int a = 0;
int &b = a;
int &&c = (int&&)a;
int d[2] = {};
int (&e)[2] = d;
int (&&f)[2] = (int(&&)[2])d; //error C2440: '初期化中' : 'int [2]' から 'int (&&)[2]' に変換できません。左辺値を右辺値の参照にバインドすることはできません

vc10のバグ? c++11の仕様?

180 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 19:00:02.91 ]
MSVCのバグ。



181 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 09:12:17.10 ]
thx

182 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 11:33:37.65 ]
バグっていうより古いだけの気がする。
xvalue が登場する前の rvalue reference なんじゃないの?
配列の prvalue って存在しない気がするし。

183 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 20:47:06.63 ]
よく考えたら配列の prvalue も存在するな…。
やっぱバグだな。

void f(int (&&a)[1]){ std::printf("%d\n", a[0]); }

int main()
{
  struct X { int x[1] = { 10 }; };
  f(X().x);
}

184 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 22:12:10.31 ]
バグバグ言ってる奴
そのVCが出たのいつだと思ってるんだ?

185 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 00:48:41.88 ]
β状態だし、期待するだけ無駄だよな。

186 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 07:36:31.43 ]
いつかは関係ないよ
はなから不完全と言って出してんだから

187 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 12:18:00.95 ]
vc11も対応項目あんま増えないらしいし
未実装というより、やる気ないってのが正しい気がする

188 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:32:16.26 ]
C99と同じ運命を辿りそうだな

189 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:33:04.84 ]
実装すらされないC99に比べれば
まだM$はやる気があるよ

190 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 00:20:30.86 ]
やる気がないんじゃなくて
WinRT対応を優先させただけ



191 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 19:11:08.09 ]
vector< vector< vector<int> > > unko;
C++11ってこれを簡単に書けるようになったんだっけ?
もしくは配列にデフォルトのコンストラクタがあってくれればいいんだけど
やっぱ無理?

192 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 19:35:05.36 ]
vector<vector<vector<int>>> unko = { { {1,2,3}, {4,5,6}, {7,8,9} }, { {0,0}, {0}, {} } };
こういうの書きたいの?出来るよ

193 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 19:51:48.00 ]
int unko[5][5][5];
に比べて長いのをC++11で簡単にかけるようになってないかなと

vector<int[5][5]> unko;
これでもいいんだけど
resizeでコンパイルエラーが出てて
多分int[5][5]();を呼びだそうとしてエラー吐かれてしまうま

Marray<vector<int>, 3> unko(5,5,5);
みたいの作らないと無理かな

194 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 22:06:10.58 ]
>>191
template < std::size_t I, std::size_t J, std::size_t K > using Shit = std::array< std::array< std::array<int, K>, J >, I > ;
Shit<5, 5, 5> unko ;

まあ正直、

template < std::size_t I, std::size_t J, std::size_t K >
struct Shit
{
using type = std::array< std::array< std::array<int, K>, J >, I > ;
} ;
Shit<5, 5, 5>::type unko ;

とあんまり変わんないけどね。

195 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 22:12:41.22 ]
usingもtemplate使えるんだっけ?

196 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 22:21:56.74 ]
可変長テンプレート使えばええがな。
Array< int. std::vector >( 10, 20, 30, 4, ・・・);

197 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 23:00:41.98 ]
なるほどー参考になったありがと
C++03の範囲で作ってみるよ

198 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 01:21:26.33 ]
何でunkoとかshitとかなの?

199 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 11:33:13.21 ]
だって美味しいじゃん。

200 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 13:45:09.09 ]
<thread>ってないの?



201 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 13:48:21.79 ]
threadsならあるよ

202 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 20:21:53.50 ]
あるよ

203 名前:デフォルトの名無しさん [2011/12/23(金) 18:11:34.48 ]
『ゲームプログラマのためのC++』発刊2日目のつぶやきまとめ
ttp://togetter.com/li/231358

まとめ主は嬉しそうだな

204 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 19:26:54.83 ]
スレ違いすぎる

205 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 05:04:57.88 ]
マック関連の環境では全然受け入れられてないよね
linuxとwinでは動くけど

206 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 05:14:17.13 ]
>>203
こういう奴のせいでゲーム屋はロリコンばかりだと思われるんだ。
アイコンのコピーライトはクリアできてるんだろうな? 泥棒に宣伝してもらっても嬉しくないだろう。

207 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 05:43:11.03 ]
>>206
ttp://www.madoka-magica.com/special/present/movies.html

208 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 07:15:27.47 ]
>>206
実際多いからしょうがない

209 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 11:37:15.10 ]
アニヲタっぽい話題ふってる人多いと思うよ
そして、そんな人の中にスーパーハカーがいたりする

C++11 Advent Calendar 2011でも見てみなよ
ttp://atnd.org/events/21936

210 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 13:01:09.12 ]
17.6.4.3.5
_ で始まらないユーザー定義リテラルの接尾辞は、予約されている。

17.6.4.3.2
グローバル名前空間では、一つ以上の _ で始まる名前は予約されている。

→つまりユーザー定義リテラルは非グローバルな名前空間で定義しないといけない。

でもユーザー定義リテラルを呼び出すとき、
その名前空間を引数から判断することはできない。
(引数はプリミティブな型だから)

どうすればいいの…。



211 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 13:17:33.96 ]
using でいけるんちゃうん?

212 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 13:41:30.54 ]
operatorも含めて名前でおk

213 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 15:49:51.90 ]
>>210
ユーザー定義リテラルの接尾辞は「名前(name)」じゃないので
17.6.4.3.2の制約を受けない

ってどっかで結論が出てたような

214 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 17:35:37.87 ]
pc12.2ch.net/test/read.cgi/tech/1253280377/15-
あたりのはなしだな

215 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 17:44:54.42 ]
0_hoge は operator""_hoge(0) とも呼べるんだよね?

216 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 18:15:34.18 ]
>>214
トン。読んできた。

"hage"_x; // ここでは "hage"_x でひとつながりで切り出されるトークン
operator"" _x("hage", 4); // ここでは _x は独立したトークン

だから、普通に使うとき "hage"_x; は何の問題もない。

問題は定義するときや operator"" _x("hage", 4); という書き方をするときで
その場合でも _x は suffix なので、他の名前と衝突していても構わない、ということね。

で、あと問題はプリプロセスのマクロだけど
マクロで予約されているのはダブルアンダースコアか、_ + 大文字 だから
_ + 小文字 なら置換される可能性はないというわけだ。

なるほど。

217 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 18:22:22.84 ]
#define _x a がある時の operator "" _x は
"" と _x が離れてるので1つのトークンとは見なされないから
operator "" a になるってのでいいの?

218 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 18:38:03.32 ]
>>217
13.5.8-8 の第4例に

float operator ""E(const char*); // error: ""E (with no intervening space)
                // is a single token

とわざわざ書いてあるので、 operator"" _x の場合
_x は独立したトークンだし、独立したトークンとして書かなければいけない。

だから #define _x a があったら operator"" a になるので正しいはず。

219 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 20:19:33.23 ]
なるほど

220 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 21:52:17.21 ]
www.suri.cs.okayama-u.ac.jp/servlets2/scm2cpp.rkt
Schme to readable C++
に自動型推論を導入してみました。まだ不具合が沢山あるので1ヶ月後ぐらいに見るといいかも



221 名前:デフォルトの名無しさん [2011/12/27(火) 10:35:01.40 ]
Sub<T>からTを取り出すようなtype_traitってないですか?

$ cat d.cpp
template <class Derived>
class Base {
typedef typename Derived::type type;
};

template <typename T>
class Sub: Base<Sub<T>> {
typedef T type;
};

int main()
{
Sub<int> s;
return 0;
}

$ g++ -std=c++0x d.cpp
d.cpp: In instantiation of ‘Base<Sub<int> >’:
d.cpp:7:7: instantiated from ‘Sub<int>’
d.cpp:13:12: instantiated from here
d.cpp:3:34: error: no type named ‘type’ in ‘class Sub<int>’


222 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 10:55:20.16 ]
typeidでいいんじゃね?

223 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 10:58:39.67 ]
template <template <typename> class Derived, typename T>
class Base {
public:
typedef T type;
};

template <typename T>
class Sub : Base<Sub, T> {
};

とかじゃだめ?

224 名前:221 mailto:sage [2011/12/27(火) 11:11:41.30 ]
>>222
実行時は嫌かな。

>>223
Boostは引数たくさん与えるアプローチで、それに近い。
けどライブラリ側で頑張って仕事したい感じなんで。


225 名前:221 mailto:sage [2011/12/27(火) 11:13:38.25 ]
ttp://stackoverflow.com/questions/6006614/c-static-polymorphism-crtp-and-using-typedefs-from-derived-classes
によるとこんな感じ。
メタにやるのは難しいのですかね。

template <typename T> struct trait;

template <class Derived>
struct Base {
typedef typename trait<Derived>::type type;
};

template <typename T>
struct Sub: Base<Sub<T>> {
typedef T type;
};

template <typename T>
struct trait<Sub<T>> {
typedef T type;
};

int main()
{
Sub<int> s;
return 0;
}


226 名前:デフォルトの名無しさん [2011/12/27(火) 12:16:27.91 ]
www.nicovideo.jp/watch/sm16529183

227 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 12:17:06.02 ]
//テンプレートでない引数を入れた場合
template<typename T>
struct template_trait{
typedef T type;
};

//テンプレートを入れた場合
template<template<typename> class temp, typename T>
struct template_trait<temp<T>>{
typedef T type;
};

template<typename T>
struct hoge{};

typedef hoge<int> ihoge;
template_trait<ihoge>::type i = 0;

こんなかんじ?

228 名前:221 mailto:sage [2011/12/27(火) 13:01:02.76 ]
>>227
良い。

こんなのもないのか・・・

229 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 18:37:34.12 ]
>>225
> メタにやるのは難しいのですかね。
というかそもそも

template <typename T>
class Sub: Base<Sub<T>> { // (1)
typedef T type;
};

Base<Sub<T>>は(1)の時点で定義されるけど
その時点ではSub<T>は不完全型でメンバは未定義なんでBaseの中ではSub<T>のメンバに依存するものは定義できない

230 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 18:45:08.64 ]
0xだと無名関数を束縛した変数つかって
関数を定義できるようになるよな。
auto Function = []()->int{ return 0; }
Function();

これ応用してクラスの中に書いたとき、
メンバー変数のメンバー関数の委譲に
使えたりはしないんかね。

struct T
{
     D member;
     auto Function = member.Function;
};

T object;
object.Function():



231 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 18:51:53.54 ]
autoは無理だがstd::functionならいける

232 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 19:19:25.32 ]
double a = -0;
はIEEE表現で0なのに
-a
とするとIEEE表現で-0になるバグはどうにかならないのかな

ideone.com/m27cn


233 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 19:24:44.83 ]
0 も -0 も int(0)
ideone.com/WBvnH

234 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 19:28:02.74 ]
メンバー関数とオブジェクトにドット演算子とアロー演算子を適用したときの演算結果って
相変わらず関数呼び出し演算子を呼び出せる何かなんだな。
いいかげん、建前だけでもラムダを返すって事にしてくれりゃいいのに。

235 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 19:39:11.03 ]
>>233
なるほど

236 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 19:41:32.47 ]
>>234
ラムダが暗黙の関数オブジェクトとして定義されているから循環参照になる。

237 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 19:57:57.35 ]
>>236
実装上は問題ないじゃん。

object.Function;// この時点ではラムダ無し
auto lambda = object.Function; // 使用されるタイミングで初めてラムダ生成

238 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 23:48:51.06 ]
C++「javaが二の足踏んでる間にλ入れちゃったぁ えへっ☆」

239 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 21:15:35.72 ]
Javaには本気でほしい機能。あとイテレータの改善も。


240 名前:デフォルトの名無しさん [2012/01/04(水) 22:45:07.44 ]
質問。
ラムダ式って何が便利?

関数ポインタを引数にとる関数のテストには使えるかなと思ったけどそれ以外の使い道があるのか知りたいです。



241 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 22:53:28.31 ]
>>240
関係のある処理を近くに書けるところ。
キャプチャーができるところ。

242 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 22:59:40.51 ]
関数作るまでもないような処理を
そのままインラインで書ける

243 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:53:03.89 ]
・関数オブジェクトのクラス定義を式中に書ける
・そのクラス定義を簡略記法で書ける
つまり、ソースの記述の面で書くときに楽になって読むときの可読性があがる。

と、実のところそれだけだけど適切に使えば効果は大きい。

244 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:59:34.84 ]
ラムダがあるのにforにrange-basedの構文を追加したのは冗長だと思う

245 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 00:21:05.83 ]
for(int i : v){
printf("%d",i);
}

std::for_each(v.begin(),v.end(),[](int i){
printf("%d",i);
})

めんどくせーと書こうと思ったけど
書いてみると大して変わらなかった

246 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 00:24:06.31 ]
上の方がすっきりに見える

247 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 00:24:52.48 ]
上で書けた方が格段にいいわ

248 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 00:36:52.36 ]
lambdaじゃ引数にauto使えないしな

249 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 02:03:11.46 ]
C++のforeachはめんどくさい
範囲指定するのがめんどくさい
引数の型書くのがめんどくさい
forとeachの間に_書くのがめんどくさい

250 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 02:04:53.50 ]
boost::for_each(v,[](int){
printf("%d",i);
})
だと記述量はそんなに変わらんだろう
型推論はもうちょっと真面目にやれと思う



251 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 07:20:28.94 ]
折角std::begin, std::end導入したんだから
conceptさん無くてもそういうアルゴリズムが欲しかったな
関数名変わっても良いから

252 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 11:39:18.95 ]
concept_mapあればrange-based forがもっと効いてくるのになあ。


253 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 19:05:49.70 ]
conceptさんなんで逝ってしもうたんや…

254 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 00:06:38.10 ]
std::vector<int> values;
For( &value ).Each( []( int i ){ std::cerr << "values:"<< i << std::endl; } );

どうせインライン展開してループに変わるんだから
こういう形式を標準で作ってくれればよかったのになぁ。

Sequence sequence( 1, 100 );
For vector_for( &vector );
Iterator *loop;

loop = &sequence;
loop = &vector_for;
loop->Each( []( int i ){ std::cerr << "values:"<< i << std::endl; } );


255 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 00:11:35.67 ]
関数を
[] func( X x, Y y ) -> decltype( x + y );
みたいにかけるようになるのもラムダのおかげだっちゃ?

256 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 10:28:07.67 ]
>>254 そういう形式で書きたかったら
自分でそういうライブラリを作ればいいじゃん

257 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 10:44:57.09 ]
現時点で一番C++11が使えるコンパイラってどれなの?

258 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 11:30:02.17 ]
GCCじゃないの?

259 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:32:46.06 ]
>>256
書くけどさぁ。標準化されてないのが残念だなって。
標準化されてれば、こういう関数を、他の人のライブラリに対しても
使えるわけじゃん。非標準じゃ自分しか使えない。

template<class Iterator> F( Iterator i )
{
      //事前処理
      loop.each( [](int i){ this->container.push_back( i ) } ):
      //後処理
}

260 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 14:07:15.63 ]
gccと比べるとmsvcの対応のお粗末さに泣ける



261 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 14:38:42.15 ]
foreachみたいなものは、ライブラリではなく
言語の構文として実装してほしいなあ

言語自体を大きくするつもりはないらしいが
pararell_forよりもompのほうがしっくりくる

262 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 01:03:52.09 ]
>>254
> For( &value ).Each( []( int i ){ std::cerr << "values:"<< i << std::endl; } );

このForは不要では?
&も。
Each(value, 〜)でいいのでは?

263 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 01:39:46.98 ]
gccもまだまだ実装できてないものあるけどね

264 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 02:04:06.30 ]
>>262

template<class Iterator> F( Iterator loop )
{
      loop.each( [](int i){ this->container.push_back( i ) } ):
}

引数で、ForやSequenceを受け取りたいから、それじゃ困る。

265 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 21:11:16.94 ]
Boost.RangeとかPStade.Ovenとかじゃだめなの?
何がどう便利なのか分からない。
自分の書きたいように書きたいという気持ちは分かるけど。

266 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 08:31:45.54 ]
コードのconst祭り状態を何とかしてくれ
規格で

267 名前:デフォルトの名無しさん [2012/01/08(日) 20:04:15.78 ]
>>265
所謂コルーチンと言われるものと同じメリットがある
別にテンプレートじゃなくていいのがひとつのメリット
他にも色々あるが書くと長くなって面倒だから、
コルーチンで調べて味噌

268 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 20:50:50.80 ]
書けるものなら書いてごらん

269 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 13:27:51.70 ]
>>266
はい sed s/const//g

270 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 23:46:23.31 ]
245の例なんだけどさ、コンテナの要素の型名が糞長い場合ってあるじゃん?
std::shared_ptr<LongClassName> みたいな感じで。
そのまま書くとラムダが糞長くなっちゃって、for(int i = 0; ... 的な原始的
表記の方が短く書けることがあってさ。
こういうときは型名をtypedefして短縮する、というのが正攻法だと思うんだけど、
boost::for_each(v, [](decltype(v[0])& x){ process(x); });
ってしてもいいの?
gcc, vcともにコンパイルは通るし動きはしたんだけど、
あんまり良いことじゃないような気がして。




271 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 00:06:50.12 ]
いいんじゃね?
でもその書き方だとrangeに対して一般的に使用することはできないな。

272 名前:270 mailto:sage [2012/01/13(金) 00:50:36.73 ]
>>271
いいのか。thx。
ぶっちゃけvectorしか頭に無かったんだが、
コンテナ要素の型名を取り出す一般的表記、というと
decltype(v.back())、あたりが一番短い感じか。
[0]もbackも無意味なのが生理的にいまいちイヤだけども。

conceptさえあればこんなしょーもない記述も必要無くなるんだがなぁ……

273 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:00:54.11 ]
標準コンテナならdecltype(v)::value_typeが本当は正解なんだろうけどな
VCじゃ使えないしオレオレコンテナでは定義されてるとは限らないし

274 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:07:35.41 ]
そこでマクロですよw
昔、g++のtypeof使ったのよく書いてたよ。

275 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:09:43.15 ]
定義されてるとは限らないはSFINAEでなんとかなるっしょ。


276 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:32:49.99 ]
using std::begin;
decltyle(*begin(v))

こうしたほうがいいんだろうなあ

277 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 07:21:54.60 ]
なんにせよdecltypeはキーワードとして長過ぎる

278 名前:デフォルトの名無しさん mailto:書き込み増加期待 [2012/01/13(金) 10:14:47.15 ]
確かにdecltypeは長いな。
他に何か良い名称は無かったものか・・・。

279 名前:デフォルトの名無しさん [2012/01/13(金) 10:26:30.83 ]
#define d decltype

280 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 12:10:05.40 ]
decltyan
少し読みやすくなった



281 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 08:58:03.50 ]
#ifdef HAVE_LAMBDA
とか
#ifdef HAVE_DECLTYPE
みたいなことはできないものでしょうか

282 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 11:08:05.55 ]
Boost.Config に BOOST_NO_DECLTYPE とか BOOST_NO_LAMBDAS とかある。
ttp://www.boost.org/doc/libs/1_48_0/libs/config/doc/html/boost_config/boost_macro_reference.html

283 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 09:22:42.83 ]
0xのまとまった情報のあるサイト教えてください。

284 名前:デフォルトの名無しさん [2012/01/18(水) 20:27:50.32 ]
wikiじゃダメ?

285 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:06:28.81 ]
とりあえずWikipediaかびゃーんの御大のページ(日本語訳もある)だろうな

286 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:20:33.11 ]
ただ網羅してるだけじゃなく無用な部分を迷い無く読み飛ばせる文書を
纏まってると言うんじゃないかな

287 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:25:46.33 ]
クラス名、メソッド名の命名規則なんだけどさ。
STL, Boost, LinuxAPI:小文字開始のスネークケース
WindowsAPI:大文字開始のキャメルケース+ハンガリアン
Google:大文字開始のキャメルケース

自分は特に理由もなく大文字開始のキャメルケースを採用してるんだけど、
STLを使わないC++とかまずないわけで、そうなると小文字開始のスネークケース
の方が全体的に見て統制が取れてるような気がしてきたんだよね。
仕事じゃなければ好きにしろ、って話ではあるんだけど、
小文字開始のスネークケースはやめた方が良い理由って何かある?

288 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:30:50.83 ]
すれち

289 名前:287 mailto:sage [2012/01/18(水) 21:36:52.51 ]
ごめんC++のスレと間違えた。
287は無視してください。

290 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 23:46:08.36 ]
(),[],{},<>と全部使う最強カッコ言語だな。
次は、どうすんだろう?



291 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 23:58:07.65 ]
>>290
Eヨとかじゃね?

292 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 23:58:13.42 ]
<>をtemplateに使ったのは失敗だったな
$とか#を使えばよかったのに。

template #T #U class F;
F#int#int f;

…キモッw

293 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 00:11:02.01 ]
>>290
\(^o^)/

294 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 00:51:32.25 ]
まだ@""とかL""とか""_xxxとか、
qw()とか@()とか%{}とかとかとか

295 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 02:28:31.29 ]
>>286
「無用な部分」が読み手や時と場合によるんだから、無理だろ。

296 名前:デフォルトの名無しさん [2012/01/19(木) 18:51:36.22 ]
>>284
どこの?

297 名前:デフォルトの名無しさん [2012/01/19(木) 18:55:44.35 ]
>>287
禿曰く、小文字なのは標準ライブラリだから。
使う側の人はキャメルケース使えとさ。

298 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 19:51:52.37 ]
>>292
Dの!は悪くないと思う

299 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 20:03:46.64 ]
FORTHみたいに2-characterで囲い始めを表せばよかったんだよ
template.(typename T)class a{};

a.(int) i;

300 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 20:33:25.32 ]
/ / が残ってるよ



301 名前:デフォルトの名無しさん mailto:Sage [2012/01/19(木) 20:47:40.61 ]
>>300
/*コメントに使われてない?*/

302 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 21:59:22.31 ]
それは /* */ だし

303 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 22:21:34.22 ]
¥/があるな。日本人には見づらいが。

304 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:15:00.42 ]
>>303
なあに。Linuxならバックスラッシュだし、Windowsでもフォント改造するから問題ないさ。

305 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 09:32:37.97 ]
<>は比較演算子とシフトに使われているがかっことしては見やすい。
!()はきもいが明確。

「」とか【】とか、新しい括弧がキーボードから直接打てれば、
それが一番いいんだが。

306 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 09:45:58.42 ]
>>290
括弧いいな
しかし、[[ ]]これはどうよ

307 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 12:05:07.84 ]
それなら他と完全に区別できるかな。
attributesで使われる予定だったんだっけ?

308 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 18:50:12.14 ]
attributeはC++11でも生き残ってるよ

309 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 20:20:07.96 ]
やっぱりヌルポインタを nullptr にしたのは失敗だったな
nullpo にしておけば Java と一歩差をつけられたのに

310 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:40:46.44 ]
なぜ null_ptr にしなかったのか。。unique_ptr や shared_ptr と整合性がとれない…



311 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:46:42.69 ]
キーワードとクラスで整合性取られても

312 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 22:02:45.81 ]
null_ptrだと
既存のプログラムで動かないのが出てくるから

313 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 22:48:11.67 ]
< /> があるぜよ

314 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 23:20:03.38 ]
なんだよそのXHTML

315 名前:デフォルトの名無しさん [2012/01/20(金) 23:41:43.43 ]
www.open-std.org/jtc1/sc22/wg21/
News 2012-01-18: The deadline for the next mailing is 2012-02-24
News 2012-01-18: The 2012-01 pre-Kona mailing is available
News 2012-01-18: The C++ Standard Core Language Issues List (Revision 78) is available

316 名前:デフォルトの名無しさん [2012/01/21(土) 00:08:09.28 ]
ところで tr2ってどうなったの?

317 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 01:25:46.35 ]
C++1yとか何かと思ったらC++1x(C++0x)の次ってことか
次スレはこれだな

318 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 08:32:16.35 ]
yだともう16進とは言い訳出来ないな

319 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 09:09:09.41 ]
まあ、TR2はさすがに7年あれば十分だろ。

320 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 09:30:45.95 ]
2003 - 1998 = 5
2011 - 2003 = 8

さあどうなるか



321 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 10:18:03.85 ]
10年後ぐらいか

322 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 11:21:23.00 ]
yは17進数と言い張られる可能性が

323 名前:デフォルトの名無しさん [2012/01/21(土) 12:03:46.24 ]
つ フィボナッチ数列

324 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 12:52:31.84 ]
次はマイナーチェンジじゃないの?
なら大丈夫

static if とか入るなら嬉しいけどさ

325 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:34:42.03 ]
【プログラミング部】 PHPが100倍速で動くようになったぞー
awabi.2ch.net/test/read.cgi/poverty/1327050821/

326 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 17:33:49.57 ]
そりゃコンパイル作りゃ速くなるだろ

327 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 17:38:55.67 ]
インタープリター型のVMが遅すぎるだけだ

328 名前:デフォルトの名無しさん [2012/01/22(日) 04:31:26.68 ]
www.open-std.org/jtc1/sc22/wg21/
News 2011-01-18: The C++ Standard Library Issues List (Revision 77) is available

329 名前:デフォルトの名無しさん [2012/01/23(月) 03:08:00.28 ]
禿って、C++11対応の「プログラミング言語C++」書いてくれてんの?


330 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 06:36:11.30 ]
静的型推論でPHPが高速になったのなら
ちょっと使ってみたいけど



331 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 10:11:17.18 ]
>>329
そりゃ書くだろ。
書かんかったら十字砲火浴びると思われ。

332 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 18:40:48.07 ]
でも翻訳版が出るまで何年かかるんだろう…

333 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 11:49:07.13 ]
猫でもわかるように頼む

334 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 19:25:31.69 ]
猫には分かるが
お前には分からん

335 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:03:40.76 ]
にゃー

336 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:48:27.17 ]
せっかくユーザー定義リテラルさんがいるんだからと
二進数作ってみたけど

if(flag & 0x0101c0111c0000c0000_b) ...

とかするしかなくて、キモイ。普通にマクロで作ったのがマシだな。

337 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 22:23:49.61 ]
なんでそんなキモイ作り方になるの

338 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:04:14.64 ]
区切りを入れたいんだろう

339 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:10:39.44 ]
ユーザー定義リテラルさん使えるコンパイラって今あるの?

340 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:15:08.55 ]
区切りがないと二進数はかえって見づらいから
最初は "0101_0111"_b みたいにできないかなと思ったんだけど
user-defined string literal は constexpr にできない。

かといって 0101_0111_b にすると、_0111_b がサフィックスになる。

というわけで妥協して c で区切るというキモイものに。

ユーザー定義リテラルはこういう使い方をするためのものではないということがわかった。



341 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:20:58.03 ]
>>339
gcc-4.7 の最新レポジトリのは大体の新機能が使えるよ。

template <char... args> long operator"" _b(){ ... }
template <char... args> long long operator"" _b(){ ... }

のように戻り値だけ違うものが普通にオーバーロードできてしまって
後者が必ず選択されるというバグっぽいものはある。

もしかしたらこれが規格通りの動作かもしれないけど。

342 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:29:11.26 ]
色々バグはあるみたいよ
ttp://cpplover.blogspot.com/2011/09/gcc-47static.html

343 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:37:09.80 ]
実装状況
ttp://gcc.gnu.org/gcc-4.7/cxx0x_status.html

大きな所は
・Alignment support
・Inheriting constructors
・Thread-local storage
あたりかな

344 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 01:21:51.08 ]
>>340
> user-defined string literal は constexpr にできない。

そうなの?
↓こんなん書いてあったんだけど。
N337 13.5.8 [over.literal] p7
> ... Also, they can be declared inline or constexpr, ...

345 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 06:54:38.33 ]
>>340
俺もそれほしかったんだが
そうか無理なのか・・・残念だ

346 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 07:33:10.75 ]
文字列は静的な定数だけど
それでも配列要素にアクセスするのは
constexpr の範疇外な気がする
ポインタ演算だから

347 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 07:33:42.80 ]
ポインタ演算というか、脱参照ね

348 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 07:34:41.43 ]
いや、演算後の脱参照だ

349 名前:デフォルトの名無しさん [2012/01/25(水) 08:34:28.36 ]
>>340
constexperと可変長引数テンプレートの方がよくね?
b(1111, 0000);

そもそも2進直書きなんて何に使うんだよ。

350 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 10:30:54.66 ]
>>346-348
別にそんな制限なくね?
ideone.com/gk4KE



351 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 12:25:11.60 ]
ほんとだ。
文字列リテラルの dereference は定数として使えるんだ。
知らなかった…。

int main()
{
  int a["0"[0]] a;
  std::printf("%d\n", (int)sizeof(a));
}


352 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 12:35:57.51 ]
ということは、
  再帰できない、
  return 文しか書けない、
  仮引数は定数として使えない、
という制限のもとで
文字列を解釈して整数に直す constexpr 関数をどうやって書くかという問題になるわけだな。

353 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 13:38:28.23 ]
宣言時に初期化されているconst配列と、constexpr配列の添字アクセス、ポインター演算は、
規格制定の最後の土壇場に認められた。

>>352
再帰はできるぞ。

354 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 15:06:48.56 ]
constexpr 整数パーサとか既にあるぞ
d.hatena.ne.jp/osyo-manga/20120113/1326395185

355 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 16:22:15.54 ]
>>353
あれ、ほんとだ。普通に許されてるねえ。
どこかで「再帰は許されない」って文面を見た気がするんだけど…。
ググってもソースがでてこない。

356 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:52:15.39 ]
昔はむしろ再帰くらいしかできないクソ仕様だった

357 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 20:13:27.77 ]
再帰出来なかったら constexpr の価値が下がりまくり

358 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:06:38.63 ]
ソースは日本語版wikipediaだった。古いのかな >>355
今の規格では再帰は明確に許されている(Annex Bに「最低512回再帰を許せ」とある)

ところで constexpr 関数内でエラー処理が必要なとき
static_assert の中に仮引数を入れられないんだけど、どうしたらいいんだろう。

constexpr int f(int a){ return (a == 0)? a : throw std::logic_error("ふぇぇ"); }

constexpr int x = f(1); // コンパイル時にエラーが出てくれる
if(x == f(1)){ ...; } // 実行時にエラーが出る(コンパイル時に出てほしい)

359 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:10:05.36 ]
リンカエラーにならできる
d.hatena.ne.jp/RiSK/20110713/1310540882

360 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:17:00.00 ]
なんでstatic_assertできない仕様になったの?



361 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:20:47.82 ]
constexpr関数は普通の関数としても使えるから。
関数内ではコンパイル時なのか実行時なのか判断できない。

362 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:22:05.90 ]
なんでDの__ctfe変数みたいのを用意しなかったんだ
誰かC++1yで提案してくれ

363 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:58:03.42 ]
>>359
頭いい

364 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:58:27.68 ]
>>362
なんで自分で提案しないのさ?

365 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 05:59:06.80 ]
>>360
できる。
というか規格嫁アホ。

366 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 07:27:54.56 ]
main.cpp:3:2: エラー: non-constant condition for static assertion
main.cpp:3:2: エラー: ‘a’ is not a constant expression

って言われるぞ

367 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 09:01:46.10 ]
>>365
static_assert を入れることはできるけど
static_assert する条件には仮引数を使えない

368 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 09:09:53.37 ]
ああ、それか。
まあ、constexpr関数はコンパイル時に評価されることもあれば、実行時に評価されることもあるしなぁ。

369 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 12:07:17.02 ]
こうなってくると、コンパイル時にしか呼び出せない関数がほしくなるな

370 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 00:17:48.01 ]
実行時に評価される時は無視してくれればいいのに



371 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 09:29:07.07 ]
ignore namespaceって
こういう使い方ができるのかな。

namespace another_lib{
void func1();
}

namespace my_lib{
//another_lib::を書くのが面倒なので
using namespace another_lib;
inline void func2(){ func1(); }
//my_lib::func1と書けないようにする
ignore namespace another_lib;
}

372 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 09:40:13.81 ]
>>371
スレ違い。
ここはC++11スレだ。
そういう話はC++1yスレを立ててやれ。

まあそれはともかく、まだ大雑把に提案されただけで、規格の文面の用意されていない段階じゃねーか。

373 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 09:59:40.90 ]
というかこれでいいじゃん。

#include <string>

void f()
{
  {
    using namaspace std ;
    string s ;
  }
  std::string s ;
}

374 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 10:48:12.65 ]
templateのADLがらみでしょ。

375 名前:デフォルトの名無しさん [2012/01/27(金) 18:35:57.55 ]
randomデバイスの挙動が意味不明なので、おしえてください。
intに入る非負だと思っていたのですが。

$ more rnd.cpp
#include <iostream>
#include <random>
using namespace std;

void echo(int val) {
cout << "why? " << val << endl;
}

int main()
{
static random_device rnd;
for (int i=0; i<10; ++i) {
echo(rnd());
cout << rnd() << endl;
}
}

$ g++-mp-4.6 -std=c++0x rnd.cpp

$ ./a.out
why? -1796924150
3042913710
why? -314325772
2069611482
why? 1357648257
1265153896
...

376 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 18:40:35.61 ]
非負数ならunsignedで受けないと。

377 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 18:44:02.95 ]
>>375
random_device関係ないし。
unsigned intからintへの変換でintの表現可能な範囲を超えているので鼻から悪魔を召喚してしまっている。
random_device::result_typeはunsigned intであり、intではない。
その値の範囲はrandom_device::min()とrandom_device::max()の間。


378 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 19:04:04.50 ]
unsignedって一桁おおいのですね。あぁ恥ずかし。
ありがとうございました。

379 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 19:38:24.38 ]
調べていたらこれに当たったのですが、
ttp://cpplover.blogspot.com/2009/11/c0xrandom.html
最後のuniform_real_distribution(あるいはuniform_int_distribution)
に到達する道のりが長すぎます。その後、何かショートカットできてたりしませんか?

380 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 20:34:45.41 ]
しません



381 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 06:37:08.94 ]
「とりあえずテレビをつける」のをやめようか
www.nicovideo.jp/watch/sm16774477

1/28 27日の朝生の感想 & 岐阜にキムチの町があるらしい!
www.nicovideo.jp/watch/sm16814879

日本の年寄は情弱。一日中反日TVを見てる。
www.nicovideo.jp/watch/sm16812923

マスゴミの麻生さん叩きを検証しよう
www.nicovideo.jp/watch/sm16811530

外圧で日本経済の破壊工作をする馬鹿
www.nicovideo.jp/watch/sm16811102

【拡散】 民主党の新たな言論弾圧法案、[秘密保全法案]
www.nicovideo.jp/watch/sm16809977

法務省の「新たな人権救済機関」Q&Aが国民を騙している件
www.nicovideo.jp/watch/sm16809271

【西部邁ゼミナール】安倍(元総理)の日本国民に訴える
1 www.nicovideo.jp/watch/sm16692013
2 www.nicovideo.jp/watch/sm16750147
3 www.nicovideo.jp/watch/sm16810518

【討論!】野田民主党内閣の本質と行方[桜H24/1/28]
1/3 www.nicovideo.jp/watch/so16804695
2/3 www.nicovideo.jp/watch/so16804716
3/3 www.nicovideo.jp/watch/so16804726

382 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:01:14.79 ]
>>381
グロ?

383 名前:デフォルトの名無しさん [2012/01/31(火) 00:39:17.13 ]
マルチディスパッチはいつになったらはいんのよ。
Perlですら対応したんだから、変態言語も威厳を見せろよ。

384 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 00:43:15.54 ]
ADLで我慢しなさい。

385 名前:デフォルトの名無しさん [2012/01/31(火) 00:55:47.49 ]
パッと見似てるけど、全然違うじゃんかよ?
オレ、アレがいい?。アレがいぃ?。
アレじゃなきゃヤダヤダ?(´・д・`)
Perlくんも持ってんだよぉ?
買って買って?

386 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 04:08:20.44 ]
あなたにはboostがあるでしょ!
うちは低水準なんだから我慢しなさい

387 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 06:40:04.22 ]
dynamic_castで分岐すりゃいいじゃんいいじゃん

388 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 12:26:03.48 ]
次の大規模な改訂で入るかもしれんぞ。
なにしろ、禿がいまだに諦めてないから。

389 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 21:05:51.56 ]
クラス構造はそのままに制約無く実現するには関数の様に振舞う関数じゃないナニカを導入しないといかんから
またラビリンス度が上がるな

390 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 22:02:26.11 ]
いや、禿の目指してるのはvirtual functionのmultiple dispatchだよ。
効率よいVFTの作り方を模索中(だった、かな?)。
>>n2216



391 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 22:43:22.81 ]
bridgeパターンのdynamic_castは解決できるのん?

392 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 00:11:12.60 ]
>>387
どうやってやんの?
関数追加するたびに、分岐書き換えたりしないんだよね。

393 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 13:42:28.92 ]
>>340
Digit Separators coming back
www.open-std.org/JTC1/sc22/wg21/docs/papers/2012/n3342.html
入るといいね

394 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 18:13:05.91 ]
インデントみたいに何桁区切りにするかで不毛な議論が行われるんだろうなあ

395 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 20:44:01.59 ]
こういうの各自で解決するためのユーザー定義リテラルさんだったんじゃないのか
一体何だったのか…

396 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 22:04:27.32 ]
何桁区切りにするかはconstexprで計算する

397 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 08:20:11.66 ]
朗報
https://twitter.com/#!/visualc/status/165191796383686656

398 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 10:02:57.80 ]
マジか!

range-based for 使ってみるとすごい便利だから嬉しい。

std::vector<std::shared_ptr<A> > vec;
for(auto it = std::begin(vec); it != std::end(vec); ++it){
  it->func(); // 間違い
  (*it)->func();
}
for(auto& x: vec){
  x->func(); // こう書ける
}

399 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 10:34:38.57 ]
range-based forどころかあらかた実装しろよ

400 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 11:08:39.27 ]
C++11 だと
> std::vector<std::shared_ptr<A>>
でもおkなんじゃ



401 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 12:24:15.34 ]
挙動に違いがなければコーディングスタイルに突っ込まなくてもいいじゃない

402 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 12:50:04.08 ]
MS's Visual C++ team invites you to complete this C++11 Conformance Survey
おまいらもやってこい

403 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 12:56:12.82 ]
Visual C++ 11 Beta って言ってるけど既に2012年なんだよな

404 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:09:15.51 ]
2011年に出す……出すが、今回その底の指定まではしていない
どうかそのことを諸君らも思い出していただきたい
つまり…我々がその気になればVisual Studio 0x2011にすることも可能だろう……ということ……!

405 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:16:01.12 ]
一万年と二千年前から愛してる

406 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:27:21.45 ]
八千年過ぎた頃から毛根がなくなった

407 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:31:16.22 ]
C++11の準拠度を上げたVSという意味で申し上げた

408 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:33:19.61 ]
g++ 4.7 並の準拠率でも微妙に不十分だってのに
それに遥かに及ばないんじゃ

409 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:40:00.27 ]
>>402
どこだか探しちゃったじゃないか
blogs.msdn.com/b/vcblog/archive/2012/02/02/10263304.aspx

410 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 19:34:28.14 ]
どれを優先的に実装して欲しいかの投票?



411 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 22:01:17.17 ]
>>403
VC++2011じゃなくてVC++11だから
6 = 6
2002 = 7
2003 = 7.1
2005 = 8
2008 = 9
2010 = 10
って続いてきた通し番号だから

412 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 22:08:14.81 ]
おお、そう言えばそうだな
近い数字だから惑わされてた

413 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 22:13:44.13 ]
C++0xを踏まえたネタかと

414 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 16:18:34.36 ]
C++11の仕様を一気に取り入れるのは難しいことなの?
働けやMS

415 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 16:25:36.86 ]
なんでこんなに時間かかってるんだろうな。
あまり人員割いてないのか難しいのか。
インテルもgccもC++11全体で見るとどんぐりの背比べだよな・・・

416 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 16:27:43.79 ]
いやー、この規模はそう簡単に実現できるものじゃないと思うけどな。

417 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 16:45:17.73 ]
下手したら言語処理系史上最悪の複雑さかもしれん
Common LispやAdaがオモチャに見える……というと言い過ぎだがw

418 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 16:56:04.66 ]
複雑だからプログラマーに仕事が生まれるっていう例のネタがさらに強度を増したな

419 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:55:20.50 ]
コンパイラの実装が複雑な分、言語のユーザーはその機能で楽ができるって
ことなのか?

420 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:57:26.00 ]
>>417
下手せんでも最悪。なんでこんな難解な言語にしたんだか。



421 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:57:50.56 ]
>>417
www.kmonos.net/wlog/83.html#_1721080322

CLはまだ遠いが、Adaは確実に追い越してるだろうな。

422 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:58:14.83 ]
>>419
楽できる機能は初期段階で挙動を把握しないといけないので、
それのコストがバカにならないとみんな嘆くのだ。

423 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 18:32:23.21 ]
>>421
その比較だとC#やJavaの方が上じゃん

424 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 18:39:44.15 ]
>>423
Javaはバイトコードの仕様まで入ってるからしゃーない。

425 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 19:26:19.99 ]
意外とC言語からものすごい膨れあがってるってわけでもないんだな。

426 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:00:51.83 ]
膨れ上がって入るけどg++が既に9割は実装してんだから
VC++もがんばれ

427 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:24:54.21 ]
VCはC++/CX実装で忙しい

428 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 22:23:39.96 ]
IDEもな

429 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 22:31:35.61 ]
C++03
Managed C++
C++/CLI
C++/CX
C++11

430 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:43:27.22 ]
C++11/CLI/CX



431 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 00:35:50.60 ]
>429
C++AMPも入るらしいよ

432 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 01:14:54.43 ]
Embedded C++ 「・・・呼んだ?」
Objective-C++ 「きちゃった・・・」

433 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 07:14:49.82 ]
Embeddedはカエレ!

434 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 15:23:25.53 ]
>>422
より少ないタイプ量からc++コードの自動生成が本来の目的だった
d.hatena.ne.jp/niitsuma/20120203

435 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 18:29:33.44 ]
>>431
AMPって何?メタプロをサポートした拡張とか?

436 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 18:50:43.88 ]
>>434
面白いなー。スキーム書けないけど。
このトランスコーダってどれくらい最適化してくれるんかねぇ。ベタ移植してくれるんかな??

437 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 18:56:20.71 ]
>>435
pc.watch.impress.co.jp/docs/news/event/20110617_453939.html

438 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2012/02/06(月) 19:47:56.65 ]
>>434
Ver 0.6 の Not support の項にある define inside define ってのは Scheme 用語で言う internal define のこと?
これは Ver 0.7 では関数内でクラス宣言することでなんとかしたってことでいいのかな。
lambda が使えれば展開後の C++ コードがもうちょっと readable な感じに出来そうだね。

439 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 21:16:39.35 ]
>>433
Embeddedを甘く見るやつはEmbeddedに泣く

440 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 21:44:48.56 ]
甘くも何も失敗作には近づかないのが吉



441 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 21:47:11.72 ]
???

442 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 22:39:11.63 ]
>>436
ベタじゃないと読めない

443 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 22:41:19.54 ]
このスレでEmbedded C++がひどい失敗作だったことを知らない奴はいない

444 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 01:09:50.40 ]
標準化委員会に(といっても実質は禿)、名指しで無意味な糞って言われるくらいだからな。

445 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 01:27:11.60 ]
色々と肝心なものを削った結果、CともC++とも互換性失ったクソ言語だからな

446 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 07:22:00.88 ]
だって仕様が減るEmbeddedを加えようが無いじゃん!

447 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 08:19:20.52 ]
embeddedの言い訳がましさはすげぇよな。
どう見ても組み込み関係なく、
コンパイラ作れないんで、
これで許してちょだもんな

448 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 09:13:34.09 ]
ぶっちゃけ、これが入ってればまだマシだったて言うのはどういう仕様?
調べたらこの仕様決めてる奴らトップが日本人なのか。ソフト弱いってレベルじゃねーな

449 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 10:00:31.57 ]
例外はともかく、多重継承なしは意味が分からん。
ライブラリ全部自前で設計する必要あるじゃん。
C++のフル仕様のコンパイラ作るのが大変ってレベルで、
独自ライブラリを設計構築できる訳がない。
コンパイラの作成は努力の積み重ねで何とかなるが、
ライブラリの設計はセンスが要求される。

450 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 11:36:26.54 ]
やめて!Embeddedのライフはもう0よ(ry



451 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 12:53:55.07 ]
名前空間位言い訳せずにさっさと入れとけやと思った。
細かいとこはともかく、基本的なスコープはすぐ実装できたはずだ。

452 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 13:48:07.02 ]
仕様のシンプルさと吐出すバイナリのシンプルさに相関成り立たないしね
フルC++にコンパクト化修飾子追加する形にすればよかったのに

453 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 19:49:07.09 ]
テンプレートはまだしも、名前空間とか新形式キャストとか
実行時コスト0の機能まで考えなしに削ってるのが受ける
策定者は本当に馬鹿だったんだな

454 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 23:58:26.31 ]
日本発の言語なんだからRuby見たく盛り上げようよ!

455 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 00:32:26.51 ]
あんなもの、世に発表するのは、社会への害悪。消え失せい

456 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 00:53:25.50 ]
>>454
ISLISPの方がまし

457 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 01:01:27.64 ]
屍を動かそうとするのは愚か

458 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 01:51:49.37 ]
>>453
名前空間は別として、新形式キャストは一貫性を保つためなんじゃね?dynamic castに配慮というか

459 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 03:14:26.02 ]
何か生まれてきたことを土下座して誤らないといけないレベルの叩かれようだなw

460 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 03:42:18.94 ]
とりあえず門田浩と田丸喜一郎は絶対に許さない



461 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 03:43:11.57 ]
実際そのとおりだ。こいつのせいでクズコンパイラがバカ高い値段で売られることになり、
手を染めたコンパイラのその後の進歩(ISO仕様での実装しなおしなど)も遅れることになった。

462 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 07:26:43.51 ]
叩き所がわかりやすい言語は
叩きやすくて良いよね

463 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 08:40:06.30 ]
引き算するだけの言語設計も簡単だしね。

464 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 16:52:51.73 ]
日本産のまともな言語ってRubyくらい?
なんか悲しいね。

465 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 16:57:19.67 ]
プログラミング言語が諸子百家みたいに乱立する戦国時代よりマシだろ。

466 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 20:28:32.70 ]
>>465
むしろその方がいいかと

467 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 20:51:58.72 ]
多少書き方が似てるだけで、既に乱立状態だろ。
案外、百種類位余裕で揃えられそうだ。

468 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 20:57:26.58 ]
C#のプログラムをJava ILにコンパイルするコンパイラとかないの?

469 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 22:47:26.09 ]
>>468
Antlrの文法一覧にあったかもしれない

470 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 22:49:06.90 ]
>>464
AnthyといいTuro Linuxといい
日本産のものを過剰に叩き過ぎだよなあ

iphoneがアニメキャラ名を一発変換→すげえ
anthyeがアニメキャラ名を一発変換→きもい



471 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 23:12:14.35 ]
そのコピペ流行ってんの?

472 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 00:17:40.93 ]
da yo ne

473 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 00:40:15.47 ]
Anthyと並べるならTOMOYO Linuxだろjk

474 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 02:57:53.68 ]
SELinuxでいいよね
あれ何のために存在してるの

475 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 03:03:14.44 ]
(資金や労働を調達して)自分好みの環境を作れるヤツの贅沢な(企画厨的な)遊び

476 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 00:36:46.40 ]
C++11のSTL拡張についてまだよく知らないんだけど、もうBoostが必要ないって
くらいにはなったの?

477 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 00:40:18.83 ]
std::progress_display

478 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 01:24:31.04 ]
>>477
ぷろぐれすでぃすぷれいたんはもう…ぶーすとにもいないんだ……・

479 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 11:37:31.73 ]
彼女はね転校しちゃったんだ

480 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 12:22:31.45 ]
std::egg
std::oven



481 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 19:12:38.34 ]
std::even
std::odd
はまだですか

482 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 00:55:49.22 ]
std::nullpo はまだですか

483 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 02:50:22.28 ]

\\
\\\
\  ∧_∧
   ( ´・ω・)
   G   と) ガッ >>482
    ヽ⌒)、 \人∧__∧
      ̄ (_) >`д´)')
         ∨つ   /

484 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 10:00:33.29 ]
namespace fucking_std {
const struct {
template<typename T>
operator T() const { return nullptr; }
} nullpo;
}

485 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:03:51.86 ]
#define fucking_std std

486 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:24:32.60 ]
find . -print | xargs grep -l nullpo >rm

487 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:32:40.91 ]
ガッ

488 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 12:16:30.65 ]
T&& 型の変数と、T&& 型へのキャストを使わずに
T 型の変数または、T& 型の変数を使って
decltype で T&& を生成する方法はありますか?

T a;
typedef decltype((a)) TT;
とやると T& になるように。

489 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 12:28:51.30 ]
>>488
意味が分からない

490 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 12:39:03.13 ]
>>488
C++言語の前に日本語の勉強をしたほうがいいんじゃないか?
エスパーで答えるとこうだな。

using type = std::add_rvalue_reference<decltype(a)>::type ;



491 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 12:55:11.32 ]
最終的な目標はT&が欲しいのかT&&が欲しいのか

492 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 17:10:05.08 ]
T&&が作りたいのですが、T&&という記述ができない前提なのです。
なので、add_rvalue_referenceは内部でT&&になっているので、使えません。
decltype内部でT&&を生成する必用があります。
decltypeで出てきたTに&&を付けるのも不可です。

493 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 17:19:28.94 ]
decltype(std::declval<std::remove_reference<decltype(a)>::type>())

494 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 17:19:39.35 ]
そうですか。

495 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 17:41:33.91 ]
何がしたいのかサッパリわからん

496 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 08:29:44.88 ]
すいません、具体的に申し上げますと
T = char[]なのです。

VC2010にバグがあるらしく、
T& と T&& という記述ができないのです。

ですが、
extern char a[];
decltype((a)) とすると char(&)[]
という型ができたので、
同じような方法で char(&&)[] を作る方法を
模索しているのです。

declval も add_rvalue_reference を内部で使っているので
使えませんでした。

497 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 09:47:46.35 ]
char (&&)[n] はそう書けば普通に作れると思うが…。
どの変数も受け取れないというバグがあるだけで。

498 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 11:13:01.18 ]
配列は右辺値にならない。

499 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 11:21:37.89 ]
ああ、VC10か。
そりゃどうしようもないわ。
窓から投げ捨てろ。

500 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 13:38:48.81 ]
あれ、配列って右辺値にならないんですか?
それなら作る必用ないかな…

ちなみに作りたかったのはchar(&&)[n]ではなく
char(&&)[]またはchar(&&)[0]です。



501 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 14:00:32.04 ]
配列のprvalueはあるし(クラスのサブオブジェクトという形でしか存在しないと思うが)、配列のrvalue referenceもある。
MSVCがタコなだけだ。

502 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 09:05:30.95 ]
なるほど、メンバなら右辺値参照もあり得るのですね。
struct A{
char b[];
} a;
A &&b = (A&&)a;
typedef decltype(b) C;
typedef decltype(b.b) D;
とやると、CはA&&になりましたが、
Dはchar(&&)[]にはならずchar[]でした。
なんとかここからchar(&&)[]を取り出す方法がないでしょうか?
この挙動もVC2010がおかしいだけ?

503 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 09:46:22.42 ]
おかしいだけ

504 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 10:20:36.09 ]
もう一つ言うなら、C++ には C と異なり長さ 0 の配列が存在しないので
「長さ不明の配列への参照」ではなく「長さ0の配列への参照」を作ろうとしているなら
それはそもそも規格違反。

505 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 12:06:31.65 ]
vcでは>>502の a.a と>>496の a は同じ型と見なされているようです。
vcの規格違反である>>502の a.a のような長さ0の配列の入力に対応するのは不毛なのですが
>>496の a のような長さ不明の配列への対応は必用と考えてやっています。

506 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 18:32:27.19 ]
もう諦めてvector<char>&&を使ったらいかがでしょうか

507 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 21:12:28.96 ]
タコなのはCの配列だったんだお

508 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 00:52:36.85 ]
CUDAがEmbedded以上にウンコな件
削りすぎだろ

509 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 01:44:59.19 ]
C++から削ったわけじゃなくてCからの拡張だからセーフ

510 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 06:08:43.92 ]
forums.appleinsider.com/showthread.php?t=139011
CUDAがllvmになってC++11も動く?
本当?



511 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 06:43:09.23 ]
clang –x=CUDA
なんてできるのか。驚き
stackoverflow.com/questions/9117109/how-to-compile-cuda-to-llvm-ir

512 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 08:45:46.85 ]
最近のLLVMにはPTXバックエンドがあって、このPTXを
CUDAドライバに渡すとデバイスで動くバイナリに変換される
C++11が動くのかどうかは知らんが、ランタイムや構文
(構文を直接組み込まずとも、対応する機能があれば良い)を解決すれば動くかもしれん
ただ、何も修正しなくてもPTXにコンパイルすればGPUで並列化、ってことは流石にないだろう

513 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 18:25:51.13 ]
CUDAに限らずGPU computingは、
CPUがメインで動くのが前提の計算モデルです。(ほんのごく一部の変態は除く)
並列化出来るところだけGPUに計算させる。
CUDAでは並列化を阻害するようなコードは書きにくいようにC/C++を制限している。

514 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 20:30:58.19 ]
clang++ -emit-llvm でllvmコードはかせて
CUDAに流し込んだらだめなの?

515 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 21:31:04.86 ]
開発環境に流しこんでどうするんですか?

516 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 22:25:47.18 ]
何の前触れもなくいきなりCUDAの話をし始めたこの人は一体何者なのだろう

517 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 22:26:10.49 ]
BOINC狂だろきっと

518 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 06:20:23.39 ]
CUDAスレに移動します。CUDAでC++11使えるなら使いたかった

519 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 00:35:54.72 ]
>>516
Embbeded C++へのネガキャンがnvidiaを売るためのステマだったから

520 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 00:48:14.11 ]
それは斜めすぎるだろ
ステマ言いたいだけちゃうんかと



521 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 01:12:29.67 ]
というか、ステルスマーケティングと言え

522 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 01:15:17.67 ]
いちいち横文字にせんでもサクラでいいだろ

523 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 09:23:29.51 ]
だいたい並行プログラミングを自動でやろうという性根が卑しいんだお

524 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 19:25:57.34 ]
それでも、C++11のconcurrencyなら、何とかしてくれる!

525 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 19:41:04.79 ]
C言語初心者ですが質問させてください。
conceptさんはいつ載るんですか?


526 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 19:52:16.23 ]
コンセプトさんはお星様になったのさ

527 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 22:47:23.57 ]
外からアルティミシアが入って来れないようにしてんだよ言わせんな

528 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 17:11:20.16 ]
右辺値参照うけとるコンストラクタと代入って自動生成されますか?


529 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 17:18:12.82 ]
されない

530 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 17:41:53.40 ]
アザっす



531 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 18:35:20.01 ]
コピーコンストラクターとコピー代入演算子も、
ユーザー定義のムーブコンストラクターとムーブ代入演算子、
コピーコンストラクターの場合はユーザー定義のコピー代入演算子、
コピー代入演算子の場合はユーザー定義のコピーコンストラクターが存在する場合、
暗黙に宣言はされるけど、その挙動はobsoleteだからな。
気を付けろよ。
将来廃止されるかもしれないぞ。

532 名前:デフォルトの名無しさん [2012/02/26(日) 23:07:17.37 ]
>>531
日本語版で書いてくれ

533 名前:デフォルトの名無しさん [2012/02/27(月) 01:02:00.15 ]
C++ で書いてくれ

534 名前:デフォルトの名無しさん [2012/02/28(火) 01:13:44.37 ]
むしろperlで書いてくれ

535 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 00:46:07.52 ]
VC++11がVC++10(2010)とは一体何だったのかってぐらい規格合致度上げてきている件

536 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 00:53:43.37 ]
beta 出たみたいだけどどうなの?

537 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 02:31:36.31 ]
可変引数テンプレートいそげよ!

538 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 07:40:02.46 ]
この惨憺たる状態から向上してんの?
ttp://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx

539 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 07:41:33.56 ]
GCCやClangも機能一覧のNoが減ってきたね
並行性はどちらもまだNoが多いけど

540 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 07:56:56.44 ]
iccはlambdaは早かったけどその後が全然だな
gcc/icc/vcで通るコードを書かないといけないからiccに足を引っ張られてる



541 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 10:32:15.05 ]
コンパイラの開発が落ち着くまで03でいいじゃん


542 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 11:50:07.85 ]
>>537
blogs.msdn.com/b/vcblog/archive/2012/02/29/10272778.aspx

543 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 12:21:44.79 ]
遂にM$が本気を出してきたのか…

544 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 12:28:42.10 ]
今までもいろいろな分野で戦いがあったが
最後に立っているのはいつだってM$だった
これからもそうなるだろう
そうWindowsPhoneもね


545 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 13:02:28.42 ]
>>542
Variadic Templatesないじゃん。
単なるプリプロセッサーメタプログラミングじゃん。

546 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 13:39:02.94 ]
MINGWがどこまで実装できたかの表はありませんか?

547 名前:デフォルトの名無しさん [2012/03/01(木) 13:44:30.96 ]
表はなくても裏がある

548 名前:デフォルトの名無しさん [2012/03/01(木) 13:47:03.99 ]
>>546
禿Webに書いてあるGCCの状況と
MinGWの現バージョンから導ける

549 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 13:52:54.25 ]
ハゲwebってなんですか?

550 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 13:59:37.90 ]
アデランスだよ



551 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:05:33.17 ]
アートネイチャーでは手に負えなかったか

552 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:07:38.52 ]
面白いと思って言ってるの?

553 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:08:18.55 ]
笑わそうと思って書いてると思ってんの?

554 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:18:15.32 ]
なんで質問を質問で返すの?

555 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:20:54.40 ]
質問で返しちゃいけないなんてルールあるんですか?

556 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:27:41.61 ]
それに答えるには余白が足りない

557 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:33:03.07 ]
ここはお前の日記帳じゃねえんだコミットログにでも書いとけ、な

558 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:35:33.88 ]
そっくりそのまま返したるわぼけ

559 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:27:25.54 ]

 }

560 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 16:42:17.38 ]
忘れないように橋に書き留めといた。



561 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 20:02:38.86 ]




562 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:07:23.09 ]
最近じゃARMCCが大事なんだぜ

あのコンパイラはロクなもんじゃないが

563 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 05:47:37.33 ]
ガベージコレクタをC++に実装するか公式で議論が行われてるのはマジか?
mallocかnewが自作できれば、いらないような気もするのだが。

564 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 06:08:18.67 ]
機構的には単なるスマポのシンタックスシュガーじゃね?
コンパイラによる最適化の余地が増える分だけ得って気はしなくもない

565 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 07:31:35.40 ]
FAQを見る限りでは、C++11にはポインタが指す領域がGC用語で言う「到達可能(reachable、簡単に言えばオブジェクトが「生きている」という意味)」である事を明示的に宣言したり
ある領域にポインタがない事を宣言したりする機能が入ってるな

到達可能性の宣言はFAQに必要性が書かれてるから読めばわかる
二つ目はガベージコレクタには数値とポインタの区別がつかないから起こる
実際には到達可能でないオブジェクトを到達可能だと誤検出する(つまりリークする)事を防ぐための機能

俺の知る限り、C++のポインタは勝手にアドレスを変えたりできないから
C++のGC ABIではnon-movingなGCだけが実装できるはず

566 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 08:20:09.29 ]
相互参照に対応出来るのかな?

スタックや非マネージドな構造体のメンバに置いたら原理的に
アドホックな対応しか出来なくなるから
C++/CLIのような感じになるのかな

と思ったけど
www32.ocn.ne.jp/~ons/text/CPP0xFAQ.html.ja#gc-abi
アドホックっぽい気がす

567 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:40:58.40 ]
今回の規格ではライブラリ上でGCを実装できるように
最低限のことを決めたんですよ。メモリモデルとか。

568 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:54:27.79 ]
メモリモデルについては決めたは決めたが正直これどーすんだよ的な気が
明示的な修飾したものだけマネージドにする割り切りがないとまたグダグダになりそう

569 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 15:28:38.63 ]
strict GCのターゲットはC++でランタイムライブラリ書くような場合です。JVMとか。
C++のnative objectを対象にするのは相当先です。そっちは今のところコンサバのみ。

570 名前:デフォルトの名無しさん [2012/03/02(金) 17:11:30.31 ]
またゼロオーバーヘッドがないがしろにされる悪寒



571 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 18:08:43.90 ]
別に将来GC必須になるって話じゃないよ

>>569
(un)declare_no_pointersはexact GCを実現するための機能じゃない?
もちろん、何もせずにexact GCになるわけじゃないから
現実的にはconservative GCにせざるをえないけど

572 名前:デフォルトの名無しさん [2012/03/02(金) 23:28:23.44 ]
次はもっとこの関数型のパラダイムをふんだんに盛り込んで欲しいな

573 名前:デフォルトの名無しさん [2012/03/02(金) 23:39:10.33 ]
www.open-std.org/jtc1/sc22/wg21/
News 2012-03-02: The deadline for the next mailing is 2012-09-21
News 2012-03-02: The 2012-02 post-Kona mailing is available
News 2012-03-02: The C++ Standard Library Issues List (Revision 78) is available
News 2012-03-02: The C++ Standard Core Language Issues List (Revision 79) is available

574 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 09:57:33.79 ]
メモリーモデル決めたのは、言語仕様内でプログラム作っても、並列処理のメモリー制約が不定になるからじゃないの?

575 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 16:10:12.22 ]
GCも込みだよ。papersに出てるし、ハゲもコメントしてる。

576 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:32:19.81 ]
未だにテンプレートの定義ってヘッダに書かなきゃいけない処理系が
ほとんどなの?

577 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:34:08.51 ]
むしろexportは廃止された

でも1翻訳単位内でのみ使うなら
別にヘッダで書く必要性はないで

578 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:38:25.21 ]
あ、廃止されたんだ。
じゃあC++11でも依然として、複数の翻訳単位で使用するには
ヘッダに定義書かなきゃいけないのか。
なんでそうなったんだろ。コンパイラに実装するのが難しかったのかな?

579 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:57:14.15 ]
複数の翻訳単位で使う場合もコピペすれば(ry

exportはオブジェクトファイル側に手を入れないと実現不可能だよね

580 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/03(土) 21:17:31.75 ]
マクロの高機能版だと思えば自然な制約。



581 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 22:40:36.07 ]
コンパイル時に展開しないといけないから。
意図してこうなった。実行時オーバーヘッドを許容しない設計だから。

582 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 22:51:43.15 ]
LTOとかやってるんだから同じ要領でexportもできるはずなんだけどな

583 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 22:55:11.30 ]
実装者が出来ることだけやればいいのが最適化。

584 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 16:15:06.01 ]
extern templateもなぁ

585 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 03:03:01.74 ]
通常関数宣言にも可変引数使えれば良かったのにな。

586 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 10:52:22.84 ]
ん?

587 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 18:00:32.38 ]
使えるだろ
printfって関数をご存じない?

588 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 18:05:42.17 ]
文字列に変数を展開するだけじゃ自由度少ないだろ。

589 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 18:07:39.94 ]
何いってんのこいつ?

590 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 18:13:12.38 ]
ご存じないならstdarg.hでぐぐれ



591 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 18:31:08.68 ]
独立参照利用すれば、可変引数みたいなのは表現できない?

592 名前:デフォルトの名無しさん [2012/03/05(月) 18:40:23.40 ]
一瞬、何のスレだったかとスレタイ見直してしまった
たまたまアホばかりいるだけか、あーびっくりした

593 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 19:02:36.82 ]
きめぇ構文使おうぜ
それっぽく見えるだろ

struct bb{
  bb & bb::operator , (int i){std::cout<<i; return *this;}
  bb & bb::operator , (const std::string& s){std::cout<<s; return *this;}

  bb & bb::operator () (int i){std::cout<<i; return *this;}
  bb & bb::operator () (const std::string& s){std::cout<<s; return *this;}
};
bb aa(){ return bb(); }
void f(){
  aa(), "aa", 0;
  aa()("aa")(0);
}

594 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 19:08:32.78 ]
おぞましいな

595 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 21:15:08.62 ]
無駄にカンマ演算子多用する輩は逝ってよし

596 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 21:59:11.39 ]
タイプセーフな可変長引数が使えたらいいねって話かと思ってたら>>588でビビった

597 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 02:53:36.28 ]
Cの可変引数でいいなら、ポインタの型は全部void*でいいな。

598 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 11:39:41.36 ]
可変で静的型安全にやりたければ、引数可変部は同じ型じゃないと仕方ないな。

599 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 13:46:19.56 ]
現状だとiostreamやboost::formatみたいに
演算子をチェーンさせるのが現実的なのでは

600 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 14:02:34.58 ]
オペレーターで連結するのは見た目がキモいのに加えてオーバーヘッドもあるしなぁ





601 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/06(火) 14:24:24.19 ]
オーバーロードできる演算子の種類が限られてるから、演算子の既存の意味と全く違う意味で使うことになるわけじゃん?
boost::format が % を使うのは iostream と組み合わせるときの演算子の優先順位を考慮したんだろうというのはわかるけど、
泥臭い方法だという感覚は否めないわな。
iostream の << はもうあんまり違和感ないから単なる慣れなんかな?

602 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 15:57:04.28 ]
>>600
srdargに比べてどこがオーバーヘッド大きいですか?

603 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 16:03:20.05 ]
>>602
それと比較してるのは今このスレで君だけだから帰っていいよ

604 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 16:11:06.07 ]
>>585のバカ話はとっくに終わってます。

605 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 16:18:15.19 ]
ということにしたいのですね。:)

606 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 17:54:11.42 ]
よく分かってないんだけど
initializer_list使ってそれっぽくできないかな?

607 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 18:56:00.43 ]
確かにinitializer_listが一番近そう
ideone.com/5P9Pa

もうちょっと構文糖衣して欲しい気もするけど
void f(const char* s, std::initializer_list<T> ls){
void f(const char* s, T... ls){

f("aaa", {10, 20, 30});
f("aaa", 10, 20, 30);

608 名前:デフォルトの名無しさん mailto:age [2012/03/06(火) 22:11:24.65 ]
>>600
パフォーマンスに関しては、処理系にもよるけどインライン展開で消滅するから寧ろパフォーマンスは上がるじゃん。
まぁiostreamは遅いけど、あれはバッファの連携のせいだし。

話は変わるけど、Futureの例外送信機能ってどうやって実装されるんだ?
Worker側で一旦例外捕まえて、Worker作成側が、例外受け取るまで
一旦何処かにコピーしなきゃならないだろ。専用の例外しか投げれないとかか?

609 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:23:32.73 ]
>>608 exception_ptr というものがあってな。

610 名前:デフォルトの名無しさん [2012/03/06(火) 23:29:25.16 ]
>>593
勉強になります



611 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:12:46.25 ]
>>609
ありがとう。調べた。なんかランタイム情報取り出してる所が
typeinfo見たいで気持ち悪いな。素直にthread_exceptionとかでも定義して
その子クラスだけ返せるようにしたほうが良かったな。
どうせWorker中で他の例外に変換できなかった例外は
Workerの呼び出し元でも無視されるんだし。

612 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:25:24.06 ]
>>611
それ何がうれしいの?

スレッドまたがせるためだけに原因と関係ない型を継承させる(カテゴリを作る)とか、
ありえないと思うんだけど。

613 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:47:43.79 ]
>>612
スレッドの中で原因は完結させればいいじゃん。
最終的な答えを別の例外に委譲するだけ。

あと、スレッドを停止させた以上、スレッドは役割を
達成できなかったって例外カテゴリーに書き換えるから
どのみち同じだと思う。
例えば範囲外エラーを例外で捕まえたくなったら、
結局out_range_errorじゃなくてOnOutRangeThreadStopErrorみたいな
例外に書き換えるわけだし。

614 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:50:59.53 ]
>>613
いや、だからそのカテゴリわけすると何がうれしいの?わけないといけないものなの?

別スレッドで実行するか元スレッドで実行するかなんて実装の詳細の一部になりうるんだから、
そんなのしたくないんだけど。

615 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:52:03.03 ]
ほかのスレッドの例外と自分の例外の区別つかない方がずっとまずい。
そしてC++は言語には最低限の機能だけ付けて、ライブラリで実装する主義。

616 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:59:10.04 ]
>>614
カテゴリっつうかスレッドのコンテキスト情報を添える事になるからねぇ
どういう状況かで例外処理を切り分けなきゃいけないじゃん
特にI/Oとか失敗したら、アドレスとか一部情報を書き換えて
再試行するって事もあって、再試行に必要なコンテキスト情報は送ってもらいたいよね

617 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 02:01:13.41 ]
アドレスってのは送信先アドレスの事ね
別にI/O全般を例にしたからファイル名でもいいけど

618 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 02:30:58.64 ]
>>616
その例で必要なのはI/Oエラーかどうかであって
thread_exceptionなんて分類は役に立たんだろ?

619 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 20:09:13.71 ]
>>618
スレッド間受け渡しの実装のために継承しちゃいかんのか?
分類のため以外で継承しちゃいかんのか?

620 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 20:53:57.29 ]
thread_exceptionを新設するのが素直な解決法にも思えないし
「Worker中で他の例外に変換できなかった例外はWorkerの呼び出し元でも無視される」というのが常に成り立つ確信もないんだが
こういう設計になってる言語があって、その言語を学べば分かったりするんだろうか?



621 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 21:20:12.05 ]
Javaのconcurrencyで見たことあるな

622 名前:デフォルトの名無しさん [2012/03/07(水) 22:14:02.82 ]
スレッドでWorkerとか言い出す頭固い奴は嫌いだ

623 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 22:26:07.08 ]
>>619
分類以外にその継承の目的があるならそれを挙げろ。
繰り返し聞かれてるのに何も挙げられてないじゃないか。
無意味な継承を強制することが受け入れられないのは当然。

624 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 22:48:07.87 ]
>>623
TLSに一旦例外オブジェクトの実体をコピーし、
呼び出しもとスレッドの例外情報取得用領域にコピーするため。
この時、TLSに領域を確保するため例外オブジェクトの実体のサイズが
必要になったるんで、そのサイズ取得を定義する。
あと、例外送信元のスレッドIDやらスレッド関数の情報を積ませる。

625 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 23:39:54.60 ]
>>624
それって今の仕組みの上にアプリケーションが必要に応じて組めばいいことじゃないの?
それともほんとに標準がそこまでやるべきだと思ってるの?だとしたらなぜ?

626 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 23:52:01.30 ]
>>625
std::iostreamやらstd::string、std::vector、std::exception。
どれもユーザーが自前で実装しようと思えば出来るじゃん。

そんな事はどうでもいいんだけど、type_infoみたいに
ランタイム情報にべったりってのが嫌なの。
処理系に問題がある場合、自前のライブラリで
一部差し替えて互換性をとるとかしづらくなる。


627 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:30:35.19 ]
実装できるかどうかなんて誰も聞いてないだろ。
「ランタイム情報」も何を指してるのかわかんないし。
コンパイラ実装依存の情報ってことなら継承もダメだよなぁ。

628 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:41:45.75 ]
>>627
ランタイムってのは言葉端折ったけど、
ランタイムライブラリのことね。実行ファイルの中に
埋め込んだメタ情報やアセンブリレベルで
組み込まれた情報に依存してる訳じゃん。
継承とか目で見りゃ解るC++の構文上の互換性とは別の話よ。

629 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:59:56.34 ]
ランタイム関係のトラブルについて具体的な例を書いておこう。
今回の例外とは関係無い話だけど、例外機構ってのはランタイム
ライブラリにべったり依存してる。昔流行ったBCC5.5なんてコンパイラじゃ
例外処理が正しく動作しなかった。言語構文上だけで解決できれば
自前でそれをカバーするコードを書けばよかったがランタイムライブラリの
中に絡み混んでるせいでマトモに手の出しようがなかった。

例外に限らずこういう事がVCやらGCCでもあった時期があったんで、
出来る限り、ランタイムライブラリに依存しない方向で言語機能を
実現してほしいなぁと思うんだよ。あと組み込み屋も大変だろうしね。

630 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 01:02:39.61 ]
左様であるか



631 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 01:07:37.30 ]
お粗末さまです。

632 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 01:25:33.14 ]
正直どうでもいいな。話が噛み合わんわけだ。

633 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 02:03:40.78 ]
>>629
ほんとにどうでもいい

634 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 07:17:48.95 ]
vtableのアドレスを自前で列挙して比較すればいいよ

635 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 10:55:29.38 ]
利便性のため標準的なスレッド補足情報を持つ
thread_exception的なものがあるのは良いけど
それしか返せないようにする必要は無いと思う

636 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 12:26:50.51 ]
あほらし

637 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 12:34:08.63 ]
>>630 >>631 >>632 >>633 >>636
具体的なことが書けないゴミはレスしない方がいいよ^^

638 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 13:53:52.09 ]
糞処理系乙

639 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 19:57:58.45 ]
そうだそうだ今時VCなんて時代遅れな糞処理系
つかってるヤツは情弱にも程がある。

640 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 20:31:29.36 ]
A と B の値から C を設定・取得する場合に

std::map<std::pair<A, B>, C>
std::map<std::map<A, B>, C>

どっちでやるのがエレガントですか



641 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 20:33:30.22 ]
このスレで聞くな

642 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 20:41:53.46 ]
よく考えたら std::map<A, std::map<B,C>> こうだね
boost::assign的なチート級の技も踏まえたらこのスレに辿り着いてしまったのよ
堅いこと言わずに教えてくり

643 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 20:55:20.90 ]
>>640
下はあり得ない
上か>>642だろうけど
ぶっちゃけどう比較するかじゃね

644 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 21:04:11.68 ]
pairのほうはメモリ効率悪いからmapのmapかな
検索効率は偏りによるけどあんまかわらんだろう

645 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 21:42:38.78 ]
>>644
|A|>>|B|だとmapの数が増えることのほうが問題になりそう。
pairよりもmapの方がメモリ効率が悪いから。


646 名前:デフォルトの名無しさん [2012/03/08(木) 22:00:18.58 ]
>>639
VCが何に使われているか実例を1つも知らないメタ情弱さん、ご機嫌麗しゅう

647 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 22:05:17.36 ]
ランダムアクセスが前提ならmapのmapのほうが効率良くないか?

648 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 22:11:25.85 ]
何の効率か言わないと。

649 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 22:12:31.43 ]
正直、今時のCPUだったらどっち使っても大差ないでしょ
感覚的にはmap["key"][item]とかでアクセスできるからmapがいいんじゃないかなw

650 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 22:17:16.55 ]
using std::make_pair;
A a; B b; C c;
_map[make_pair(a, b)] = c;
_map[a][b] = c;

こんな感じかな
後は気分の問題だと思うよw



651 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 22:37:50.43 ]
mapのmapは列挙は面倒だな

652 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 23:57:32.90 ]
みんなありがと
使い回す事を考えると後々mapのほうがやりやすそうだと思えたので
map の map を使うことにします

653 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 00:13:36.49 ]
boostに多次元mapなかったっけ。勘違いか。

654 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 00:15:29.30 ]
地図?

655 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 00:33:27.92 ]
google mapを使えば楽だよ

656 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 00:50:48.85 ]
google earthじゃなきゃ嫌だね

657 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 00:54:03.36 ]
異次元のマップにアクセスするにはどうすればいいですか
ドラえもんみたいに色々な世界を旅したいです><

658 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 00:55:03.11 ]
次のC++の企画は開発されていますか?

659 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:01:51.77 ]
C++1y

660 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:05:36.53 ]
>>657
未定義動作のコード書いて運がよければ行けるよ



661 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:08:05.66 ]
>>660
それってコンピューターが悲鳴上げてるだけじゃないですか
私 が 異 次 元 に 行 き た い ん で す !!

662 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:08:40.62 ]
>>661
お前も行けるって
頑張れ

663 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:13:02.76 ]
>>662
だからどうやって行くんですか!
以前だってlsコマンドの代わりにslと打ち間違えた時にせっかくお迎えが来たっていうのに
あろうことか私を置いて行ってしまったんですよ!
もういい加減お手上げしたい気分ですね!!

664 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:22:43.76 ]
教室で涼宮ハルヒの憂鬱(初版、流行る前からもってた)を読んでたら
「なぁ、それハルヒじゃね?」と後ろの席のやつにいわれた。
ちょっと怖い煙草とかすってるやつだったから
「うん、ハルヒ。それの一巻」って説明したら
「○○って長門に似てるよな」とクラスの女子のことを指さした。
大人しくていつも読書している小柄で可愛いこだった。
たしかにそっくりだったし、長門にも彼女にも好意を抱いていたので最高の笑顔で「うん」と賛同したところ
おもむろに携帯で○○さんのハメ撮りを見せてくれました。

誰かハルヒのいる世界に連れて行ってください

665 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:26:41.34 ]
まずはその話、本当かどうか確認する所からだ

666 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:33:02.36 ]
生身の女はかならず男を作るから期待はしないことだ。マンガやアニメじゃないんだよ。

667 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:37:10.93 ]
いきなりスレの流れが物故割れた

668 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:58:32.12 ]
>>666
その認識も行き過ぎだと思うぞ

669 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 02:10:19.53 ]
いい年して男と付き合ったことも無い可愛い女の子なんて実在しないだろ実際のところ
見た事無いぞ

670 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 02:20:50.04 ]
実在すればそれはそれで気味が悪い



671 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 02:39:00.31 ]
そりゃ死ぬまで純潔を守っても仕方ないよw
教室での話だったら学生時代だろ
そのくらいの時期ならチャンスもあろうに

672 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 06:01:30.78 ]
VIPでやれ

673 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 06:03:03.54 ]
ここはMIPスレですが何か?

674 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 06:13:13.01 ]
マングリ返しで何かがでまんぐりんぐwwwwwwwっwwwうぇw

675 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:15:38.15 ]
>>646
それがどうした?

676 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:36:54.97 ]

}

677 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:46:01.55 ]
それは、希望さ。

678 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:51:21.76 ]
const Class< Base(int), Base(std::string) >
         &constructor = ClassType< Delived(int), Delived(std::string) >();

std::shared_ptr<Base>
         base1( constructor.New( 10 ) ),
         base2( constructor.New( "10" ) );

可変長テンプレートがあれば、こんなのがマクロ使わずとも
簡単に作れるんだろ、はよう実装してほしいわ。
なんであんなに対応が遅いんだ?

679 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:52:15.16 ]
同時に絶望でもある


680 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:54:15.22 ]

/*



681 名前:デフォルトの名無しさん [2012/03/09(金) 21:14:47.98 ]
*/

682 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 21:23:49.45 ]
begin

683 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 21:25:00.50 ]
end

684 名前:デフォルトの名無しさん [2012/03/09(金) 21:29:54.03 ]
imort java.io.Fire

685 名前:デフォルトの名無しさん [2012/03/09(金) 21:53:15.51 ]
imort hosii...

686 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 21:56:14.68 ]
using ga::aru::jan;

687 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 21:57:35.16 ]
int main = 0;

688 名前:デフォルトの名無しさん [2012/03/09(金) 22:08:01.23 ]
関数型言語 C++

689 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 23:46:48.00 ]
インポートなんてインポテンツなもんはいらない
妹が欲しいって言ってるだけだっての!!
と、ミサカはミサカは>>685の気持ちを代弁してみたり

690 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 23:48:13.61 ]
main :: IO()
main = return()




691 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:15:27.58 ]
>>689
いらんつうかもっと高機能なusingが既にあるだろ。

692 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:18:41.91 ]
むしろ俺の妹をもらってくれ、いらん

693 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:20:29.27 ]
692の妹「な、なりたくてあんたの妹になってやったわけじゃないんだからねっ」

694 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:42:24.10 ]
C++を理解する能力よりも妹がいる能力が欲しい

695 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 02:17:13.05 ]
C++なんかどうでもいい。
俺は君が欲しいんだ!

696 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 02:25:59.97 ]
冷静になれよ
オマエと同じ顔の女が増えるんだぜ?
堪えられるのか?

697 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 02:32:26.13 ]
最近はテンプレートより、ソース吐き出すスクリプトでいいんじゃないかという気になってきた

698 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 03:51:52.89 ]
配列をゴチャゴチャ記述するのが面倒なんで
スクリプトどころか表計算のTSV出力をincludeしてるわ

699 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 06:54:07.64 ]
初期化に必要な情報で値も固定されてるならそれでもいいんじゃない

700 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 07:02:44.37 ]
>>698
細かいけどCSV(Cはカンマ)な。TSVのTはタブだからincludeしてもエラーになるだけだ



701 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 09:53:56.22 ]
そうやって読み込んだCSVのデータを、テンプレートでソートする…流石に内容が分かっていてもソートは無理か

702 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 17:46:43.97 ]
>>697
それだとデバッガがな。

703 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 20:48:25.05 ]
>>697
C++ with ScriptかCへのTranslatorだった時代を思い出すな

704 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 20:51:29.22 ]
>>703
CFRONTだっけ?SS1+だと重くて悲しかったがかなり世話になった


705 名前:デフォルトの名無しさん [2012/03/12(月) 21:52:24.62 ]
cfront には超がつくほど世話になった

706 名前:デフォルトの名無しさん mailto:sage [2012/03/13(火) 08:19:19.49 ]
なんかノネナールの臭いがするよここ

707 名前:デフォルトの名無しさん mailto:sage [2012/03/13(火) 11:37:59.68 ]
違います!熟成したカレーの臭いです!

708 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 17:40:57.92 ]
ふむ。

>C++11の次はC++17となりそう
ttp://d.hatena.ne.jp/faith_and_brave/20120307/1331103474

709 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 17:57:02.55 ]
確か0xは最初C++08になる予定だったから
次はC++20ですね

710 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 20:47:25.49 ]
C++2038



711 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 23:11:11.02 ]
>>708
5年間でC++11をマスターしないといけないの(´;ω;`)

712 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 23:37:05.56 ]
ある言語でプログラムをするのにその言語の全ての機能を理解しマスターする必要はないだろ

713 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 23:39:24.62 ]
全単語覚えたら、英語話せます?

714 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 23:50:09.44 ]
>>708
03みたいなヤツか。C++11の処理系が完全になるのは2021年ぐらいか?

715 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 00:27:20.56 ]
>>714
そしたら、C++17が遅れて、さらに処理系が完全になるのは何年か考えると、
もうC++はこれ以上覚える必要が無さそうだ(´・ω・`)

716 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 00:31:11.39 ]
ライブラリへの変更と言語仕様への変更は、
確かに分けて作業した方がいいと思う。

717 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 22:12:43.25 ]
C++xxにすればいいのに
学習しないね

718 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 22:20:12.18 ]
(:xx:)

719 名前:デフォルトの名無しさん [2012/03/15(木) 23:37:54.75 ]
マイナーは仕方ないが
メジャーではばっさり切り捨てもやれ

メタボ、しかも発癌してるのは切除しろ

特に例外。禿さまご乱心を黒歴史に早くしろ。
noexcept は廃止。二重否定はダメ。
throw でちゃんと作り直せ。
あくまでメジャーを標榜するのなら。
地味ながら普通の new もな。

特殊化のクソもいつまでgdgdやってやがる、
そういうところこそ禿、がんばれよ。

720 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 23:51:50.88 ]
こんだけ年寄りなら癌でも進行が遅くて簡単には死なんだろうよ



721 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 04:30:41.90 ]
msdn.microsoft.com/en-us/library/hh567368%28v=vs.110%29.aspx
何がどうpartialなのかちゃんと書けよオウ

722 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 08:07:46.82 ]
二重否定がダメっていうのは、
英語(他の言語はしらない)の文法学者がただ気に入らなかったから、というだけなんだぜ。

ダメっていう雰囲気が蔓延する前は普通に使われていたんだから
noexcept を嫌う理由にはならない。

まあ throw(false), throw(true) ではなぜダメだったのかわからないけどさ

723 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 19:29:04.47 ]
throw(Foo)のときにFooが型か値かで意味が変わっちゃうからだろ多分
どうでもいいのに

724 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 19:32:27.96 ]
って書いてて今わかったこれだ
throw(Foo())

Fooが型の場合、引数なしでFooを返す関数の型を例外指定してるのか
デフォルトコンストラクトしたFooの右辺値をboolとして評価するのか区別が付かないから

725 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 19:52:41.76 ]
あー constexpr と競合するってことね

726 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 22:22:08.40 ]
まあtrue/falseでするとなるとthrowとは別のキーワードが欲しいわな
throwは型を取るものだから、使い回したくはない
かといってexpectとか普通に何かで使われる事あるだろうし
nothrowもstd::nothrowと被るしで
まず使われてないだろうというnoexceptになったのかねえ

throw<true/false> というのもキモいよなあ・・・

727 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 22:32:36.38 ]
#includeはいつ廃止されますか

728 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 00:16:32.52 ]
>>726
そういう時こそ[[ ]]を


729 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 04:46:54.98 ]
>>727
廃止は当分無理だろうけど、
次回の規格改定には、かなりの確率でモジュールが入る。

730 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 08:53:32.99 ]
またexportと同じ道を辿ることは無いのか



731 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 11:35:32.29 ]
#includeなくなったらコンパイル時間短くなる?

732 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 11:46:18.27 ]
理論的にはD言語くらいには速くなる

733 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 11:56:34.88 ]
ないない
そんな簡単ならプリコンパイルドヘッダでもそれなりに速いはず
Dをなめてはいけない

734 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 11:58:41.83 ]
C++っぽいけどC++じゃない言語を作ったらどうなの
C++からのトランスレータが作りやすい仕様にして

735 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 12:10:29.01 ]
C++からのトランスレータって、結局フルのC++コンパイラを作るのと労力変わんないんだが
おまけに大抵のヘッダではマクロも込みでAPIだから、完全に活用するにはターゲット言語が細かい文法含めてC++完全上位互換である必要がある=C++の新バージョンと変わらない
要するにC++は局所解にはまりこんでる


736 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 12:16:19.58 ]
ついでに完全性を求めないなら、わざわざ新言語を作らなくても既存言語へのトランスレータは結構あるぜ

737 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 12:24:21.18 ]
>>734
C++の機能を保ったまま文法を変更するって論文がどこかに転がってたと思うが、
まあ、やはりどうもC++の文法に慣れた身には見慣れない文法になってたな。

>>735
今のC++の思想は、既存の汚い方法(プリプロセッサー)は互換性のために残しつつも、
より優れた方法(constexpr)を導入して、
自発的な移行を促すってのだが。

うまくいくかねぇ。
なんだかんだいっても、字句単位での置換は強力だからなぁ。

738 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 12:34:08.33 ]
>>737
思想とか関係ないよ
C++のヘッダからプリブロセッサがなくなっても、Cのヘッダを全くincludeしないとか無理でしょ

739 名前:デフォルトの名無しさん [2012/03/17(土) 16:02:19.09 ]
C++を見限りたい気持ちでいっぱいだが次の言語が見つからない

740 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:15:40.11 ]
ようこそD言語へ



741 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:16:55.23 ]
やはりマクロが癌だよなあ

742 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:24:08.49 ]
D言語は10年くらい仕様を固定できたら選択肢に入ってくる

743 名前:デフォルトの名無しさん [2012/03/17(土) 16:26:41.04 ]
マクロが癌は言いすぎ。右辺値参照とか、constexprとかの方が
「もういいかげんにせえや!この禿のパリサイ人共が」という気になるw

744 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:32:45.60 ]
右辺値参照とかさっぱり理解できんけど
ただでさえ速いSTLが何もしなくてももっと速くなるなら有難い

745 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:48:44.63 ]
インテリセンスの性能が悪いのも
リファクタリングし辛いのも
全部マクロのせいや!

746 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:06:11.95 ]
トランスレータはデバッガ作るのが辛すぎる。

747 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:09:11.20 ]
D言語作ってる人って、失敗作ばっか作ってる人でしょ

748 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:14:43.22 ]
トランスレータはあくまで過去資源を利用するためのもので

749 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:24:03.08 ]
rvalue referenceは当然の機能だろ。
というか今までの、constなlvalue referenceでprvalueを束縛できることのほうが変だっただろ。
まあ、この挙動は今更変えようがないがな。

まあ、別に理解できんユーザーが理解する必要はない。
コピーやムーブの実装はライブラリ作者が考えることだ。
>>744のいうように、STLがなにもしなくても速くなる。
C++11では、STLのクラスを普通に関数の戻り値として返しても、
何のパフォーマンス上の問題もない。

std::vector<int> f() ;

int main()
{
  std::vector<int> v = f() ; // ムーブされる。ユーザーが詳細を理解する必要はない
}

750 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:30:13.28 ]
何のパフォーマンス上の問題もない、は言いすぎだな。
ムーブ後の一時オブジェクトのデストラクタだって走るし、
ムーブコンストラクタだってただでさえ肥大化傾向の実行ファイルのコードサイズを更に膨らませる。

GCのある言語や v = f() ; を f(&v); として最適化できるタイプの言語ならこういうのは全撤去できるかんね。



751 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:48:13.43 ]
かなり斜めだな。

752 名前:デフォルトの名無しさん [2012/03/17(土) 17:59:28.29 ]
>>749

うん、そうだ。

ま、せいぜい頑張ってくれ。



俺はつき合う気になれんがw

753 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 19:25:08.08 ]
入れ物を引数で渡したり戻り値をauto_ptr<std::vector<int>>とかに
する必要がなくなっただけで十分ありがたいです

754 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 19:26:16.53 ]
NVROも実装してなかったコンパイラがC++11をサポートできるのか

755 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 19:43:06.65 ]
D言語はGCが余計だったんじゃないかと思ってる

756 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 20:27:22.86 ]
>>750
つってもムーブ後のオブジェクトなんだから、
一切最適化されなかったとしても、関数呼び出しとか、
すでにムーブされた後であるかどうかを判定する条件分岐の実行とかそれぐらいだろ。

std::vectorだったら、確保した動的ストレージへのアドレスを格納している
ポインター型のメンバーが、nullptrであるかどうかの条件分岐ぐらいだろ。

コードの肥大化っていったって、
ムーブコンストラクターを書くのと、
ムーブ処理をその場にハードコードで実装するのは、
結局同じじゃないか。

757 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 20:35:42.42 ]
>>756
発想がC++に縛られてるなあ。
例えばf()がv領域をallocaしてそのままvとして使うなら、そもそもムーブという概念自体要らない。
そういう言語もあるんだよ。

758 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 22:21:34.90 ]
moveとか右辺値最適化とかの新機能についていけてないのだけど、
なんとなく>>750のように変換されるのかと思ってた。違うの?

759 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 22:56:00.14 ]
違うよ

760 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 22:57:42.75 ]
「最適化でコピーは消えてくれるよね……?」と心配しながら
ベクトルを返さなくてはいけなかったのが
「どうせムーブだし最適化されなくてもいいや^^」と安心して
ベクトルを返せるようになったってのはいいことだよ。



761 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 23:15:30.59 ]
ムーブも一応ムーブのコストがあるからなあ
戻り値最適化が期待出来る部分ではムーブは劣る

762 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 23:27:54.38 ]
コピーが最適化されて消えるところではムーブも消えるよ。

コピーなら消せる、ということがわかっている箇所で、
ムーブコンストラクタが定義されているときだけ最適化抑制するって
どんなアホコンパイラたよ

763 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 23:41:23.56 ]
>>758
ユーザー定義する方針なんで、
変換してくれるってのは根本的に発想が違います。

764 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 23:43:12.27 ]
>>754
出来れば嬉しい最適化と
必須の仕様の違いがありますから。

765 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 00:12:38.75 ]
>>762
そういう意味じゃなくてだな・・・
戻り値最適化使った方がいいケースで
ムーブがあるからムーブでいいやとするケースの話で

766 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 00:15:44.12 ]
どういうケースかよくわかんないからC++でお願いします

767 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 00:49:15.82 ]
ものすごく適当な例

std::vector<int> a = hoge();
foo(a);
a = foobar();
bar(a);

768 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 01:03:33.14 ]
vectorって代入される時にもともと持ってるデータを解放してるよな
ムーブでいらなくなったデータが一時変数のデストラクト時に解放されるのと比べて
本当に戻り値最適化のほうが性能的に有利になるのか?

ていうか、そもそも戻り値最適化って初期化する時だけしか有効にならないような

769 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 01:06:05.10 ]
考えるほどムーブのほうが都合がいいという結論になる

770 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 01:08:36.76 ]
2つ目のは戻り値最適化じゃなくムーブになる、という例だよ
swapの分だけコストはかかるはず

まあこの例だとこの程度どうでもいいんだけどね



771 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 01:46:57.56 ]
>>735
現時点でアセンブリに変換できてるんだから、
完全上位である必要ないだろ

772 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 13:51:34.67 ]
auto_ptrが理解出来てmoveが理解出来ない人は頭おかしい

773 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:09:37.16 ]
auto_ptrはもはや理解する価値がない。

774 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:17:45.12 ]
>>767
a = foobar();はC++03ではコピーになるからmoveより高コストになるな
それにa = hoge();でも
std::vector<int> hoge(){
  std::vector<int> r;
  ...
  return r;
}
のように書いた時点で戻り値最適化は効かないから
関数の実装にかなり制限が掛かると思うが

775 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:27:36.50 ]
いや、効くだろ

776 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:27:56.48 ]
>>774
NRVO搭載してるCompiler。具体的には、cl.exeなら最適化されるべ。

777 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:30:05.59 ]
>>773
auto_ptrはunique_ptr+moveに置き換わるんだから当たり前だろw
C++11からC++に入る奴の話じゃねぇよ

778 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:33:35.35 ]
流れぶった切るけど、noexcept()って、template<bool mode>てなテンプレート宣言したクラスで
noexcept( mode )って事ができるの?できないなら、throw()で十ぶんじゃね?なんの意味があんの?

779 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:35:17.43 ]
できるだろ。

780 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:35:45.15 ]
>>778
できるんじゃない? そういう用途だろう、当然



781 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:41:56.52 ]
boost::shared_ptr、std::auto_ptr、std::shared_ptr、
相互変換はどうすんだろうな。過去の資産を再利用するなら
古いポインター使いつづけるしか無いんだろうな。

782 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:45:18.13 ]
まあそうなるな

783 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:47:40.64 ]
はぁ?

784 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:52:32.20 ]
相互変換とか

785 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:56:36.23 ]
参照カウンタどうすんだよ

786 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 20:19:38.37 ]
boostとstdのshared_ptrに互換性がないのが困る

787 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 20:21:12.07 ]
別にboost::shared_ptr使い続けりゃいい
あるいはstd::shared_ptrに置換するか

788 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 20:53:38.67 ]
C++11になって、事実上の廃止ってauto_ptrの他にどんなのがあるの?

789 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 21:06:51.34 ]
unary_function類とbind1st類

790 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 23:10:38.39 ]
あんまりお近づきになりたくない機能だと思っていたのでなによりです



791 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 04:34:17.38 ]
bind廃止なのか…

792 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 04:43:21.59 ]
bindが追加されたからいらなくなったんでしょ

793 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 07:23:11.87 ]
boostのやつが導入されたんだっけ
別にラムダでいい気もするけど

794 名前:デフォルトの名無しさん [2012/03/20(火) 17:48:44.11 ]
テンプレ引数付きtypedefってクラス内のtypedefでも使えたりするんけ?
いままでクラス内クラスについてはテンプレに出来なかったよな

795 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:13:04.34 ]
あーもうこんな複雑な言語、個人で使うならともかく、それなりのプロジェクトで使うとなると・・・。
これ、もう、オタクの玩具でしょ。

796 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:20:28.61 ]
エイリアステンプレートはクラス内でも使える。
ただ、本当にメンバーテンプレートなエイリアステンプレートを使いたいのか?
苦労するだけだぞ。

struct X
{ template < typename T > using A = T ; } ;

template < typename T >
void f()
{
  typename T:: template A<int> i ;
}

int main()
{
f<X>() ;
}

797 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:20:31.35 ]
そもそも、システム開発用の言語がこんなに複雑な必要性って、在るのかねぇ。

798 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:22:47.48 ]
システム開発用の言語だからこそ
高速化の為なら何でも取り入れるべき

799 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:28:17.17 ]
システム開発的には安定性の方が重要だよ。
だから、Cでシコシコやってるのが丁度よい。

800 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:39:36.68 ]
>>796
template< typename T > using Vector = Geometory::Vector<T, 2>;
ベクトルの次元は絞るが、型は何でもいい場合。一種のカリー化したいとき。



801 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:48:19.55 ]
C11の_Genericみたいな糞機能はC++に輸入しないで欲しいよな
まあこれに限らずC11普及するのかよって話もあるけど

802 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 19:04:29.71 ]
ABIを壊さずにオーバーロードを実現するための
_Genericは今更C++には無用だろ

803 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 19:30:39.42 ]
C99すら・・・

804 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 20:54:57.83 ]
>>799
安定性と「Cでシコシコ」の関連が不明です。

805 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 21:00:03.01 ]
Cなら10年前どころか20年前のコード見ても古いと感じないが
C++の10年前のコードは腐臭を放ってる

806 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 21:01:20.58 ]
それ、個人の慣れの問題じゃないの?

807 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 21:03:04.20 ]
Cってだけで時代を感じるな

808 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 21:40:34.26 ]
C++は仕様が固まってから日が浅いからね

809 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 22:40:14.22 ]
>>808
まだ固まってない

810 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 23:12:55.33 ]
使い方判らない機能は必要のない機能だから使わない方がいいよ。

いずれ、あー、こんな機能あれば安全なのになぁって必要になるときが来るけどね。
それまでは使わなくてよろしい。



811 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 09:00:55.10 ]
>>810
基本はひととおり知っとく必要がある。

そうやって必要な知識を遠まわしにして、
ものすごい面倒で複雑なロジックにする
アホがいっぱいいるんだ。

812 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 00:24:26.71 ]
積極的に使わなくてもいいが、知らなきゃ他人のライブラリは使えなくなるからな

813 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 01:21:11.57 ]
規格そのものとは関係ないが、翻訳単位が関数単位に出来ないかねぇ。
一つの関数なおす度にファイル一本コンパイルしなおすっつうのもウザい。

814 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 08:23:57.47 ]
1ファイル1関数にすればいいのでは

815 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 09:50:16.86 ]
てめえで1つのファイルに書いておきながらうざいとか言っちゃう人って

816 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 20:25:44.96 ]
そもそも構造違うけどSmalltalkなら関数(Method)単位で処理してくれるんだけどね

817 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/22(木) 20:28:39.00 ]
Common Lisp もな

818 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 22:30:18.91 ]
(object.*function);
関数のポインタを逆参照したときの値って
未だ未定義なんだよな。もうクロージャにでもすりゃいいのに。

819 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:03:03.61 ]
関数とメソッドの違いに注意な

820 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:12:19.98 ]
メッセージを送るセレクタにより起動されるのがメソッド
ディスパッチで呼び出されるのがメンバー関数



821 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:16:29.95 ]
最近はメソッドをまともに実装した言語も少ないな

822 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:32:30.62 ]
int (__closure function)(int) = object.Function;
int (__closure function)(int) = object.*Function;

Borlandのコンパイラじゃこんな感じにクロージャに出来たんだけどな
C++本家にゃ取り込まれず今じゃ.net環境でdelegateとして活躍しとるとは
なんか皮肉だのう

823 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:40:32.27 ]
>>822
だってそれDelphi互換用のためだけの機能だったし。
__closureって名前も紛らわしすぎる。ラムダが入った今となっては特に。

824 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:48:43.06 ]
Delphi互換かどうかはどうでもいいし、別に__closureって予約語もいらん。
ただ、std::function<int(int)> function = object.Function;って書けるなら
ラムダ書かずに済んでありがたい。そもそも、関数がオブジェクトだってのは
Smalltalkの様で自然だ。

825 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:52:30.80 ]
C#なみにラムダの記述量が減ってくれるとありがたいのだが

826 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/22(木) 23:53:10.27 ]
>>819
だよな。
メンバ関数のことをメソッドって言うな!! って思うよな。

827 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:56:46.31 ]
それでもまだBlocksさんに比べれば……

828 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:59:48.18 ]
>>824
変に規格に入って、VC++のABIがBorland(ってか現Embarcadero)のそれと違ってしまったら
肝心のC++Builderが困るじゃないか。

829 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:08:13.52 ]
>>824
型が弱すぎ

830 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:18:01.36 ]
>>829
なんだそれ?



831 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 08:58:04.19 ]
>>828
ABIなんて今までも互換性無かったのに今更

832 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 09:12:14.81 ]
クロージャっていまだに良くわからん

833 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 09:13:08.84 ]
>>831
折角64ビットで統一されたんだから

834 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 12:43:50.05 ]
Delphiってオブジェクト毎に関数ポインタを生成するために
動的コード生成やってなかったっけ

835 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 17:10:43.70 ]
>>834
やってない。単なる関数ポインタとthisの組。Dのdelegateなんかも同じだね。

836 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 17:23:43.28 ]
>>824
> std::function<int(int)> function = object.Function;

virtualだと単なるポインタじゃ済まないな。
関数内でthis使ってる場合も同様。
staticなメンバー関数以外、型安全にならないんじゃないの?

837 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 17:26:47.91 ]
>>836
object.Functionの時点でVMT参照して解決してしまえばいいんでそれは問題ない。
C++のメンバ関数ポインタと違って、後でthisだけ(orメンバだけ)取り替えたりはしないんだから。

838 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 19:33:27.87 ]
>>836
要するにstd::bindの構文糖にしろって事だけどわかってる?

auto function = object.Function;
auto function = std::bind( &Type::Function, &object. std::_1 );

それとも、もしかしてstd::functionの構造知らないの?


839 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 12:07:17.57 ]
最近のC++のディスられようがウザい。
DなんたらとかHasなんたらなんてどうでもいい。

840 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 13:16:00.33 ]
普通にC++について語ったらDisってるようになってしまう

C++がうんこすぎるから



841 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 13:31:57.59 ]
実用言語と実験言語を比べられてもな

842 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 15:36:27.00 ]
そうそう、C++は実験言語なんだからdisってもしょうがない。
その成果は確実に実用言語に受け継がれているよ。

843 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 15:46:29.13 ]
Dこそが真の実用言語だよなー

844 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 16:22:54.00 ]
>>842
その実用言語って何

845 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 16:39:47.12 ]
融通が利かないことを実用って言うのはちと無理があるわな
ネイティブ吐けてシステム記述できてCの資産が流用できる言語が他にないから
仕方なくC++使ってるってのが実際
いくら流行の機能入れても元が腐ってるからまともな言語設計が出来るはずもない
中の人に呪術染みた技巧コードを量産するテンプレートオナニストが集まりすぎた

Dが実用ってのはもっと無理だ
書きやすくていいんだけど今んとこ遊びにしか使えないよ

846 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 18:39:35.33 ]
>Cの資産が流用できる言語が他にない

これは大きいね。Cは仕様がコンパクトでコンパイラを簡単に作れるから
「高級言語としてCだけはある」みたいな環境がぼろぼろ存在するからね。
Cの資産は膨大だ。

847 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 18:55:18.22 ]
FFI知らんの?

848 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 19:54:59.63 ]
欧陽菲菲ネ

849 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 03:16:11.58 ]
もっとマシなものがあるなら流行っているはず

850 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 03:38:53.28 ]
>Cの資産が流用できる言語が他にない

Objective-Cがあるだろ



851 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 03:54:06.49 ]
はぁ?

852 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 04:20:52.18 ]
Objective-Cは11より変態だろ…

853 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 04:47:53.01 ]
ObjCが変態なのは否定しないけど、なんで変態なのかというと追加された文法がCから見てキモいからだろう。
(機能的には、OOP部分と組み込み型が別体系ってのは珍しくない。JavaやDもそうだし)
C++もenum classやunified function syntaxでCとは別物を被せる方向に舵を切ったじゃないか。ObjCのことは言えないと思うぜ。

あと曲がりなりにも実際に大規模に使われてる言語に対して「はぁ?」とか反応しちゃう視野の狭さが、
もっとマシなものが出てこない一番の原因と思うね。

854 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 05:38:10.01 ]
例え嫌々だろうが必要な時に使えて目的に適うならそれでいい。それがC++。

855 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 06:36:45.23 ]
C++は落ち目

856 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 06:40:37.27 ]
じゃあ上り調子のC#でも使うか

857 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:21:17.05 ]
ObjCはCの理念と反するからな
実行コストがかかりすぎる

858 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:47:11.20 ]
けっきょくC++しか選択肢がない

859 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:55:12.81 ]
そう思ってるのはC++使いだけ
C使いはC++も実行コストかかり過ぎだって思ってるよ

860 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:57:07.41 ]
けっきょくC/C++しか選択肢がない



861 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:57:08.63 ]
あぁ、「思ってる」な。知ってるぜ。

862 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:58:01.60 ]
そう思ってるのはC使いだけ
アセンブラ使いはCも実行コストかかり過ぎだって思ってるよ

863 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:59:52.11 ]
でもC++は落ち目で、Cはそうじゃないけどね

864 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 08:01:02.85 ]
CもC++使いもあと数年すればDに駆逐される運命だと言うのに哀れよのぅ

865 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 08:01:31.65 ]
>>849
良いものは自然と普及するという考え方はやめた方がいい

866 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 08:05:05.06 ]
Dってそんなにいいか?

867 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 08:09:40.92 ]
Dは誰にも見向きされずに消えていく…

868 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 08:21:54.93 ]
D覚えるくらいならC++と他の高級言語を使い分けるほうがいいからな

869 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 09:11:22.75 ]
C++覚えるぐらいならCと適当なスクリプト言語でいいって層の方が多いと思うぜ

870 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 09:36:59.37 ]
Dは配列でLinqできるのが面白かったけど、発展途上の時はメインには押し難い。GCはプラス要素だと思うんだけど。




871 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 11:05:16.29 ]
Objective-Cの実行コストってCに比べてどんくらい落ちるもんなの?
Effective C++の序文によるとC++は5%以内ってハゲが決めてるそうだけど
Objective-Cにもそういう約束事があるのかしら?

872 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 11:26:27.63 ]
>>871
Objective-Cのメソッド呼び出しはインタプリタ言語並の遅さ

873 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 12:46:09.18 ]
Objective-CはC++でラップしてしまえば
後はC++で作れる

874 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 14:39:25.43 ]
な、俺の予想したとおりになったろ

875 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 20:01:51.25 ]
ああ、すごいごい。

で、どんな予想したの?

876 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 20:37:31.14 ]
>>859
そういやCよりC++の方が遅いとはよく聞いたが、
あれの根拠はなんなんだ?実行イメージのロード時間?
C++のライブラリ使わない限りCと速度が変わることはないはずだが。
あと、C++のライブラリ使わず単に言語機能だけでコードを組むと
大概Cより速くなるんだがな。仮想関数とか分岐が固定されてると
インライン展開されて構造体に突っ込んだ関数のコールバックより速い。

877 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 20:39:38.88 ]
>>872
どんな言語でもメッセージ送信と同等の機能を組めば同じような速度だろうけどな。

878 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 20:43:00.53 ]
>>876
C++にはrestrictが無い(コンパイラの独自拡張を除く)

879 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 20:48:57.84 ]
>>878
なにC++11ならあるだろ。じゃないとインターフェース互換なくなる。

880 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 20:59:19.93 ]
Cとインターフェースレベルでの互換性なくしたら標準ライブラリとか阿鼻叫喚になるわな。
何が楽しくて同じ関数をC用とC++用二つもつくらにゃならんのだ。



881 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 21:03:59.88 ]
>可変長配列 (VLA) は含まれない (天のお恵みに感謝!)
www32.ocn.ne.jp/~ons/text/CPP0xFAQ.html.ja#C99

何がお恵みに感謝だよ。シネバいいのに。


882 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 21:46:47.36 ]
C++11にrestrictがあるというソースくれ

883 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 22:15:49.72 ]
ねえよ

884 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 22:27:35.98 ]
>>882
restrictがあるというと正確ではないかもしれんがC++ 11 FDIS §17.2のあたり

885 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 23:07:03.45 ]
>>871
んなこたぁない

886 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 06:56:53.40 ]
>>884
C++にはrestrictが無いって書いてあると読めますね

887 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 06:59:42.26 ]
より正確には、CのライブラリにrestrictがあってもC++はそれを無視すると書いてある

> The descriptions of many library functions rely on the C standard library 
> for the signatures and semantics of those functions.
> In all such cases, any use of the restrict qualifier shall be omitted.

888 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 07:19:37.77 ]
無視しろっていう意味ではなくて
restrict を消したヘッダを別に用意するか
マクロで消すかしろってことだと思うな、その箇所。

889 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 07:22:31.14 ]
そうなんか。処理系が頑張るんじゃなくて(ある意味人力で)
restrictの記述を落とすのか...
確かにそう読めるな

890 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 07:26:35.37 ]
素直に無視すりゃいいのになんでそんな面倒な事になったんだ?



891 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 08:28:56.21 ]
17.2 は
「C標準ライブラリは一部変更を加えて、C++でも提供する」

細かい変更箇所はあとで言うけど
restrict についてはいちいち述べているときりがないから
「restrict は一律消去で」ヨロ

という意味

restrict 以外にも変更箇所はあるのに、これだけ特別扱いで
言語レベルで無視というのは非合理かと

892 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 16:14:01.14 ]
C++からCのライブラリを使うという観点では、
restrictはライブラリ書く人が、
利用者に対して利用上の注意を求めるものだから、
無視しても実装が警告の機会を逃すくらいしかデメリットがない。
大域変数の修飾でも最適化の機会を逃すだけ。

893 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 16:21:01.47 ]
亀レスだが、
Objective-Cのメソッドディスパッチは
hash table引く。
メソッド名文字列からメソッドIDを生成して、
オブジェクトにsend出来る。
だから低レベルな小さいクラスライブラリ提供が無理。
そういう部分での設計はCでも行う必要があり、
OOな設計スキームを使う場合、
二種類のOO実装射影が必要になる。

894 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 17:48:44.24 ]
>>891
> restrict 以外にも変更箇所はあるのに、これだけ特別扱いで

C文法でC++11としてill-formedになるのってrestrict絡みだけだと思ってた
_Boolやら_Genericsやらはアンダーバー大文字始まりだから予約シンボルでどうにでもなるとして
他に何かあるの?

895 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:00:54.27 ]
まとめるとObjective-Cはリンゴ臭いからきもい

896 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/28(水) 20:11:50.27 ]
>>894
コンパウンドリテラルは C++11 に入らないことになってたような。

897 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:30:51.82 ]
配列の添字指定の初期化とか
構造体のメンバ指定の初期化とか
そういうのも入らない

898 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:44:41.25 ]
>配列の添字指定の初期化
それはgcc拡張ではないかい?
gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html

899 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:46:14.14 ]
悪い
俺が間違い

900 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:55:36.47 ]
>>896




901 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:56:08.76 ]
>>895


>>900はミス

902 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/28(水) 20:56:14.47 ]
>>899 お前誰だよ。
ID 無しだとわかりにくいから解説しとくと >>898 の方が間違いで >>897 が正しい。

903 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:58:33.39 ]
俺だよ俺

904 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:01:41.28 ]
いや、オレオレ。

905 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:02:22.83 ]
俺だっつてんだろ

906 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:07:55.05 ]
え、俺わかんね???

>>897は文章どおり11の仕様には入っていないと言っている
>>898はGCC拡張だから11の仕様には入っていないと言っている

どっちも11には入らないって言ってるんじゃなく?

おまいらが何言ってるのか教えろください

907 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:16:18.28 ]
>>897はC99には入ってるけどC++11の仕様には入っていないと言っている
>>898はGCC拡張だからC99の仕様には入っていないと言っている(誤り)

908 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:19:30.83 ]
よくわかる解説ありがとう

909 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:55:23.61 ]
>>893
そもそもそういう用途を想定してないからな。
あくまでもモジュール理論の体現を目指したもので、
大規模コーディングを主戦場に想定してるから。

910 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 07:24:22.03 ]
配列の形で記述された引数の [ ] の中に const とか入れる文法もC++11に入らない



911 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 07:25:18.17 ]
動的にサイズを指定できる配列も入らない

入らない仕様はかなりあるのできりないな

912 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 07:41:46.40 ]
そういや複素数型ってどうなってるんだっけ?

913 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 08:01:27.83 ]
Cとの互換性だけが取り柄の言語なのに...
C++にはCの仕様を取り込むか否か
選択する権利など無いのに勘違いしちゃってるな

914 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 08:11:41.53 ]
むしろ何でrestrictを仕様に入れないんだろう
ベクトル化とかの最適を考えると困るはずなのに
C89/C++03以前のように、プラグマで対応するっていう事?

915 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 08:17:12.15 ]
まあ現実には「昔の」Cと実用レベルで互換が取れてれば構わんのだけどね
最新のCなんて最新のC++以上に使われるか怪しいわけだし

916 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 08:23:21.65 ]
構造体のメンバ指定の初期化は結構見る気がするなあ。
ヘッダファイルに現れないなら関係ないか。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<170KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef