C++14/C++1yat TECH
C++14/C++1y - 暇つぶし2ch1:デフォルトの名無しさん
13/10/28 01:00:22.34
The C++ Standards Committee
URLリンク(www.open-std.org)

Wikipedia
URLリンク(en.wikipedia.org)

C++11/C++1y 18
スレリンク(tech板)

2:デフォルトの名無しさん
13/10/28 08:53:28.04
18 ブギ、未来を俺にくれ

3:デフォルトの名無しさん
13/10/28 11:29:11.92
>>2
残念だ、その未来に君はもういないんだよ...

4:デフォルトの名無しさん
13/10/28 19:27:47.38
このスレ、通し番号入ってないけど、良いの?

5:デフォルトの名無しさん
13/10/28 19:40:29.79
14はどうせすぐ来年だし過去ログが必要になるようなスレでもないからなければないでべつにいいと思うよ

6:デフォルトの名無しさん
13/10/28 19:40:53.14
C++11のスレは終わった

7:デフォルトの名無しさん
13/10/28 20:04:57.00
C++学園の人々:飛躍と混沌の14年の巻

○軽量コンセプトさん
あのコンセプトさんが生まれ変わって帰ってきた!
しかしかつてのコンセプトさんに比べると大幅に能力が下がっており、
一部ではstatic_assertさんの変装ではないかと噂されている。入学はもう少し先になる予定。

○attributeさん
久々に任せられたのは「でぷりけーてど」なる呪詛とともにD組送りにする能力。
今日も死んだ魚のような目を輝かせながら生徒達を地獄へ送る。

○constexprさん
いきなり「勝手に『てーすーしき』を名乗るのは許さないからね!」とライブラリ科に向かって言い放ち
学科の多くの生徒達とファンの土器屋を困惑させた。
あと「りかーしぶ」はやっぱりめんどくさいので普通の女の子に戻るらしい。

○ラムダさん
もはや当たり前に受け入れられて引っ張りだこの人気者。かつて服で騒がれてたのは何だったのか。
少し几帳面すぎて融通が利かないのが不評だったので、autoさんに空気の読み方を教えてもらった。

○関数さん
靴のサイズを気にしなくていいラムダさんが羨ましくなったので、autoさんにサイズの決め方を教えてもらった。
せっかくだからラムダさんと同じ服を着たいと言っているのだが、「君はベテランなんだから我慢しなさい」と
周りの大人が許してくれないようだ。

○decltypeさん
新たに姉のautoさんとの合体技も覚えて本人はノリノリだが…
服の違いで性格が変わる悪癖も直っておらず、合体技もやや前衛的で、なんだか最近黒いオーラが見えると噂されている。

○autoさん
型なんかもう全部autoでいいんじゃねえかなと思わせるような八面六臂の大活躍。
不動の学園アイドルの座を射止めた彼女をD組から睨み続けるregisterさんとは目を合わせてはいけない。

8:デフォルトの名無しさん
13/10/28 20:05:29.04
○数値リテラル三姉妹(十進さん、八進さん、十六進さん)
一部の教師のゴリ押しで、ケタクギリなるおかしなアクセサリーを付けさせられることになった。
汚い見た目は主にユーザー定義リテラルさんのせいらしく、恨み節が止まらない。

○二進リテラルさん
数値リテラル姉妹の四女。前の入試では「君は別にいらないから」と入学拒否されたものの
じゃあユーザー定義リテラルさんに代わりやってもらおうかとなったとたんに
急遽入学が決まった。本人は困惑している。なおケタクギリは彼女も付けさせられる予定。

○ユーザー定義リテラルさん
入学してしまったものは仕方ないので、ライブラリ科は受け入れ準備を渋々始めている。
数値リテラル姉妹とのトラブルで陰口を叩かれたり、complexさんのお手伝いのときに
if姐さんを危うく怒らせそうになったりしながらもたくましく生き延びているようだ。がんばって!

○文字列リテラルさん
ついこの間「ゆーてぃーえふ」を操る髪飾りを手に入れた。髪飾りなしでも使えるのだが、そしたら
英語の先生が急にブチ切れたのでビックリして泣き出してしまった。

○拡張for文さん
汚い制服を引きずりながら「Rangeちゃん…Rangeちゃんさえ来てくれれば…」とうわごとを繰り返す毎日。
早く彼女を助けてあげて下さい。

○Traversalさん
元Rangeさん。「お前わかりにくいから」と改名させられ、大変わかりにくくなった。
拡張for文さんが精神を病んでいく様を辛そうに眺めている。

9:デフォルトの名無しさん
13/10/28 20:07:00.27
○asyncさん
入学早々D組行きを宣告された悲劇の子。
ときどき当てても反応しないと、ある先生が職員会議でもらしたばっかりに大問題になり
とても通学できない重病だと判断されたらしい。かわいそうに。

○動的配列さん
入学が延期された。C99クラスにはとっくに通ってるんだから早くしろと怒っているらしい。
双子の妹のdynarrayさんも入学延期中。

○optionalさん
入学が延期された。「どうせ私はoptionalだしー」と本人はあっけらかんとしている。

○exempt_ptrさん
shared_ptrさん達の引き立て役として呼ばれた末妹。アホの子。,
「sharedおねーちゃんはさんしょうカウンターですごいんだぞー」と自慢しているが
もちろん本人は何もわかっていない。入学はもう少し先になりそう。

○禿
校長先生。動的配列さんを自分好みに魔改造すべく企んでいるという噂。

10:デフォルトの名無しさん
13/10/28 20:54:50.41
面白いなあ。誰かラノベ書くしかw

11:デフォルトの名無しさん
13/10/28 20:59:46.67
俺のC++達の妹は友達が少ないがこんなにかわいいわけがない

12:デフォルトの名無しさん
13/10/28 21:08:09.18
C++学園キターーーー!!

13:デフォルトの名無しさん
13/10/28 21:18:30.11
俺がC++学園に底辺サンプルとして拉致された件

14:デフォルトの名無しさん
13/10/28 21:44:22.38
動的配列さんはC99クラスには通ったけどC11でクラスになじめず保健室登校(Optional feature)になってしまった
今では、いない子扱いされてる

15:デフォルトの名無しさん
13/10/28 22:06:46.90
>>11
待て、そのfriendは危険すぎる!

16:デフォルトの名無しさん
13/10/28 22:10:47.27
俺のC++コードが修羅場すぎる

17:デフォルトの名無しさん
13/10/28 22:11:38.77
やはり俺のコードは間違っている

18:デフォルトの名無しさん
13/10/28 22:20:04.27
俺の脳内選択肢が、C++11を全力で邪険にしている

19:デフォルトの名無しさん
13/10/28 22:23:47.67
みんなC++のことが大好きで仕方ないんだね

20:デフォルトの名無しさん
13/10/28 22:25:27.00
私が書けないのはどう考えてもC++の言語仕様が悪い

21:デフォルトの名無しさん
13/10/28 22:32:24.16
プログラマーにしようと校長先生そっくりの禿を錬成してみたら、
俺がアスペになっていました

22:デフォルトの名無しさん
13/10/28 22:51:47.32
>>20
それな。

23:デフォルトの名無しさん
13/10/28 22:58:44.74
お前ら俺の同類ばっかかよw

24:デフォルトの名無しさん
13/10/28 23:31:49.72
俺の教室にC++はいない

25:デフォルトの名無しさん
13/10/29 01:49:56.28
Cぷらぷら!

26:デフォルトの名無しさん
13/10/29 02:07:44.15
とりあえずいままで出番がなかった auto さんが大活躍してくれればおれは他どうでもいいや

27:デフォルトの名無しさん
13/10/29 02:27:33.39
>>26
なるほどなるほど要するに

auto exp = [](){ /* 適当 */ };
auto eq = [](){ /* 適当 */ };
auto ne = [](){ /* 適当 */ };
auto r = exp ? eq : ne;
auto p = find_if(range, r);

みたいに、if文は三項演算子とラムダ式に、ループ文はアルゴリズム関数とラムダ式にして
書けばいいんだろ?1行で書くのが偉いんだよな?身の回りで最近見掛けるわ。

死ねばいいのに

28:デフォルトの名無しさん
13/10/29 02:44:41.64
さすがにその場合expとeqはloop型にするだろ……常識的に考えて……

29:デフォルトの名無しさん
13/10/29 02:46:32.24
bool型のtypoだ。疲れてるんだな

30:デフォルトの名無しさん
13/10/29 15:34:51.26
>>27
const 付けない奴は死ねばいいのに

31:デフォルトの名無しさん
13/10/29 15:55:45.92
ラムダ式を書き連ねて合成して伸ばして等間隔に刻んでサッと茹でて丼に盛って複雑な関数を作る
って書き方は、その関数の生成が実行時になる現在だと悪い冗談だけど、constexprが一般化して
コンパイル時に回るようになったら、思いの他流行りそうな気がしてる。

近い将来、関数言語かぶれ死ね!黙れロートル!というやり取りがされるのかな?とw

32:デフォルトの名無しさん
13/10/29 21:40:46.16
>>31
今でも実行時じゃ無いだろ

33:デフォルトの名無しさん
13/10/30 17:29:16.93
gccのトランポリンコードと勘違いしてんじゃねーの

34:デフォルトの名無しさん
13/10/31 07:24:44.05
bool,int,float A(true,0,0.0);

A = true;
A = 1;
A = 2.0;

if( A )
return true;

if( A == 1 )
return true;

if(A == 1.0)
return false;

if(A==2.0)
return true;

35:デフォルトの名無しさん
13/11/03 20:36:07.95
vectorにunique_ptrを入れていろいろやってみているんですけど、これ結構不便ですよね?
Range-based forを使おうとするとconstがなんたらかんたらでエラーが出るし、
無理に代入しようとするとmoveが起きて、元のスマポの中身が空っぽになる

イテレータでunique_ptrのポインタでも何でもいいからうまく回す方法ないですか?

36:デフォルトの名無しさん
13/11/03 20:47:46.81
お前のコードが悪いんだと思うよ

37:デフォルトの名無しさん
13/11/03 20:49:31.55
URLリンク(ideone.com)
コードとエラーの内容張れよ

38:デフォルトの名無しさん
13/11/03 20:53:17.11
URLリンク(ideone.com)

すみません
こんなコードで、要するに一度内容を表示してからソートした後の内容を表示したいんです
中に入れるクラスはintとは限りません(簡単のためにintにしてあります)

39:デフォルトの名無しさん
13/11/03 21:18:19.87
auto_ptrの破壊的セマンティクスからmoveセマンティクスに変わっただけで、コンテナに入れられたり
デリータを指定出来るところは改良されているが、そういう用途には適してないだろ

40:デフォルトの名無しさん
13/11/03 21:41:06.77
>>39
そうですか・・・ありがとうございます
大人しくshared_ptrでも使う事にします

41:デフォルトの名無しさん
13/11/03 23:47:10.45
for (auto& i : v)
std::cout << *i.get() << ' ';
こんな感じでコンパイル通るけど?

42:デフォルトの名無しさん
13/11/04 00:15:07.83
例として出したコードではエラーにならず動いてるのになにを問題にしているのかがわからん

43:デフォルトの名無しさん
13/11/04 00:20:30.67
for (auto i : v) にしたいってことか?

44:デフォルトの名無しさん
13/11/04 00:26:44.23
constなんたらだの、代入だの、forにauto使わずconst参照じゃない型を書いたんじゃねーの

45:デフォルトの名無しさん
13/11/04 00:50:55.31
>>41
gcc4.8.1ですがエラーになります

>>42
エラーにならないコードを書くと>>38になりました
でも実行結果がおかしいですよね

>>44
違います

moveコンストラクタがいつ動くのかしっかりと把握しないとunique_ptrは怖いですね
楽をするならshared_ptr一本です

46:デフォルトの名無しさん
13/11/04 01:10:27.94
エラーになるコードをideoneに貼れば一発でここの住人が直してくれるって言ってるんだよ。
>でも実行結果がおかしいですよね
きちんとソートされているように見えますけれど。
>moveコンストラクタがいつ動くのかしっかりと把握しないとunique_ptrは怖いですね
ちょっと言ってる意味が分からないですね。

47:デフォルトの名無しさん
13/11/04 01:27:35.47
>>46
低脳はちょっと黙ってて

48:デフォルトの名無しさん
13/11/04 01:37:20.87
gcc4.6.4だと動くな

49:デフォルトの名無しさん
13/11/04 01:38:22.51
4.7.3と4.8.2も動くな

50:デフォルトの名無しさん
13/11/04 01:39:33.95
必死ww

動かないソースコードも貼ってないのに

51:デフォルトの名無しさん
13/11/04 06:34:35.12
意地でもエラーを書かないあたりは釣りなんだろう

52:デフォルトの名無しさん
13/11/04 10:47:57.30
お前が書いたコードが糞でFA

53:デフォルトの名無しさん
13/11/04 10:50:49.09
遅れましたすみません
私の偽物が現れて荒らしているようで申し訳ありません

これでちゃんと通り、正常に動きました
ありがとうございました

for (int i = 0; i < N; i++)
v.push_back(std::unique_ptr<int>(new int(distribution(twister))));

for (auto& a : v)
std::cout << *a.get() << ' ';
std::cout << std::endl;

std::sort(std::begin(v), std::end(v), [](const std::unique_ptr<int>& u, const std::unique_ptr<int>& v) { return *u.get() < *v.get(); });

for (auto&a : v)
std::cout << *a.get() << ' ';
std::cout << std::endl;

54:デフォルトの名無しさん
13/11/04 13:54:32.08
>v.push_back(std::unique_ptr<int>(new int(distribution(twister))));

氏ね

55:デフォルトの名無しさん
13/11/04 14:42:05.87
これはひどい

56:デフォルトの名無しさん
13/11/04 14:55:03.47
>>54
どこが死ぬに値するのか全然理解できませんが

57:デフォルトの名無しさん
13/11/04 18:24:50.74
>>54
何がまずいんだっけ?

58:デフォルトの名無しさん
13/11/04 18:55:08.12
デバッグしづらい

59:デフォルトの名無しさん
13/11/04 19:28:11.61
複数の実引数の評価順で問題がでる場合と勘違いしてるか
右辺値をとってムーブするpush_backがあることを知らないかだろ

60:デフォルトの名無しさん
13/11/04 19:37:32.08
emplace_back使うとか?

61:デフォルトの名無しさん
13/11/04 20:16:45.13
敢えて言うならoperator newの後に
distributionが例外をスローすると困る?

62:デフォルトの名無しさん
13/11/04 21:00:41.95
その場合は大丈夫でしょ

63:デフォルトの名無しさん
13/11/04 22:32:27.25
正解は?

64:デフォルトの名無しさん
13/11/04 22:33:23.35
問題ない

65:デフォルトの名無しさん
13/11/04 23:13:12.62
変更に弱い(変更で問題を起こしやすい)コードではあるよな。

66:デフォルトの名無しさん
13/11/04 23:38:13.41
emplace_back()を使うと実行結果がおかしくなるな
なんで?

67:デフォルトの名無しさん
13/11/04 23:42:03.50
まず66のレスが馬鹿っぽいことから
原因は66のおつむにあるとみていいだろう

68:デフォルトの名無しさん
13/11/04 23:43:36.95
>>66
std::cout << std::boolalpha << std::is_sorted(std::begin(v), std::end(v), [](const std::unique_ptr<int>& u, const std::unique_ptr<int>& v) { return *u.get() < *v.get(); }) << std::endl;

これでも付けてみろや

69:デフォルトの名無しさん
13/11/04 23:59:18.15
そもそもintなんかvectorに直接突っ込めばいいだろ
わざわざunique_ptrなんか持ち出すまでもない

70:デフォルトの名無しさん
13/11/04 23:59:58.20
大丈夫、みんなそう思ったけど敢えて突っ込んでない

71:デフォルトの名無しさん
13/11/05 00:35:30.93
いやそこは突っ込みどころじゃないから
>>38
>中に入れるクラスはintとは限りません(簡単のためにintにしてあります)

72:デフォルトの名無しさん
13/11/05 00:54:20.47
>>69
>>38

>中に入れるクラスはintとは限りません(簡単のためにintにしてあります)

73:デフォルトの名無しさん
13/11/05 01:21:16.39
emplace_backの使い方は合ってるのか?
何書いてるのか知らんけど

74:デフォルトの名無しさん
13/11/05 08:20:00.66
emlace_backはクラスにmoveコンストラクタが書いてないとコンパイル時にエラーになるな

75:デフォルトの名無しさん
13/11/05 09:00:38.12
普通のコンストラクタだけで大丈夫だろ

76:デフォルトの名無しさん
13/11/05 15:51:03.57
URLリンク(stackoverflow.com)

右辺値参照してるのに通るんかい

77:デフォルトの名無しさん
13/11/05 19:50:58.39
emplace_backの&&はテンプレートパラメータに対しての指定だから右辺値参照と確定するわけじゃない
universal referenceでぐぐれ

78:デフォルトの名無しさん
13/11/05 20:11:06.59
右辺値参照、時々なんとなく分かった気になるけど、暫くしてよく考え直してみると
分かった気がしただけでやっぱりイマイチよく分かってないことに気付く。死にたいorz

79:デフォルトの名無しさん
13/11/05 20:29:50.06
詰まるところpush_back()とemplace_back()の違いは何よ

いや

URLリンク(d.hatena.ne.jp)

こういう所に答えは書いてあるけどさ
いまいちピンと来ない

80:デフォルトの名無しさん
13/11/05 20:33:10.05
思い切り重いクラスでもvectorに入れて速度比較してメリットを実感するしか方法はなさそうだ

universal reference 初めて聞いたわ
というかプログラミング言語C++11の日本語訳まだ出ないのか
英語版は持ってるけど目がチカチカする
ISO/IECもあるけど

81:デフォルトの名無しさん
13/11/05 20:37:36.95
日本語が欲しいなら江添さん()のオナニー書がオヌヌメ。

82:デフォルトの名無しさん
13/11/05 20:37:39.89
参照の縮約?

83:デフォルトの名無しさん
13/11/05 20:39:16.27
>>81
C++11本書くから寄付くれって言ってた人?
有耶無耶にして逃げるのかと思ってたら、無事完成したのかw

84:デフォルトの名無しさん
13/11/05 20:41:17.44
>>83
書きかけで公開したようだ

85:デフォルトの名無しさん
13/11/05 20:52:53.78
>>84
なるほど、事実だけを端的に表現すると「完成はしなかった」ということかw

86:デフォルトの名無しさん
13/11/05 22:01:44.75
ラストスパート中。まもなく一応の完成となる、と本人は言ってる。

87:デフォルトの名無しさん
13/11/05 22:14:37.21
途中まで読んだんだけど、ひたすら規格書の仕様を
呪文のごとく垂れ流ししてるようなつまらなさ。
規格を読んでれば知ってることばかりだし
Exceptional C++とか禿本のように
読んでwktkするものではない。

88:デフォルトの名無しさん
13/11/05 22:24:20.04
>>86
コア言語だけは完成、な
ライブラリは執筆の目途すら経ってないらしい

89:デフォルトの名無しさん
13/11/05 22:27:01.58
そんだけのものでも、これページ数にしたら結構なもんやで

90:デフォルトの名無しさん
13/11/05 22:51:11.87
>>87
いやそれでいいんだ
画面で見るのと本で読むのとではなぜか全然違う

91:デフォルトの名無しさん
13/11/06 00:16:50.51
もともと日本語で読める標準C++(11)の規格の解説を書くというテーマだからそういうもの

92:デフォルトの名無しさん
13/11/06 01:46:49.72
JISの事か
ゴニョ・・・・

93:デフォルトの名無しさん
13/11/06 07:17:36.23
universal referenceてスコットメイヤーズの造語だった気がするけど
禿の本にも出てるんだっけ?
規格的にはreference collpasingだとか言ったと思う

94:デフォルトの名無しさん
13/11/06 10:06:47.95
>>93
collapsing

95:デフォルトの名無しさん
13/11/06 16:20:04.94
Varidec Templatesの使い所がいまいち分からないんだけど
うまくまとめてあるページない?

96:デフォルトの名無しさん
13/11/07 19:03:11.05
型安全なprintfが作れます

97:デフォルトの名無しさん
13/11/07 22:00:17.76
iostreamと同じで、真似してはいけない悪い見本ですね

98:デフォルトの名無しさん
13/11/07 22:07:37.37
stream << 4 << "番目の素数は" << prime(4) << "です。" << 3.1415926 << "は円周率の近似値です。";

99:デフォルトの名無しさん
13/11/07 22:33:00.72
>>95
本質的には引数の数が違うだけのテンプレートを手で書かなくても自動生成してくれるってだけだから

template<class T1> void f(T1 t)
template<class T1, class T2> void f(T1 t1, T2 t2)
template<class T1, class T2, class T3> void f(T1 t1, T2 t2, T3 t3)
...

みたいなコードを書いてたり書きたかったりした場面で使うだけ

100:デフォルトの名無しさん
13/11/07 23:27:04.00
そんな説明じゃ わからんだろ
正しい使い方の例はstd::threadのコンストラクター

101:デフォルトの名無しさん
13/11/08 00:21:50.94
03までで型の数の制限無し・・・は無理だから制限のゆるいtupleをどう実装するか考えれば
variadic templateのありがたみと使い所の一つは理解できるでしょ

102:デフォルトの名無しさん
13/11/08 07:00:33.48
>>100
いやemplace_pushの方だろう

103:デフォルトの名無しさん
13/11/09 04:59:13.42
このアニメで久しぶりに萌え豚の感覚が蘇った気がする

104:デフォルトの名無しさん
13/11/09 05:00:13.92
ごめんまちがえた

105:デフォルトの名無しさん
13/11/09 11:40:28.99
>>104
どこ?紅以外にあるのか?

106:デフォルトの名無しさん
13/11/10 15:35:37.68
>>95
std::functionの仕様とかみてみ

107:デフォルトの名無しさん
13/11/10 15:52:03.54
14になってもまだ自動委譲搭載されないのかよ
何とかしろよハゲ、残った両サイドの毛も全部引き抜くぞ

108:デフォルトの名無しさん
13/11/10 15:58:11.26
>>107
そんな提案あったっけ?

109:デフォルトの名無しさん
13/11/10 16:00:02.53
Java使いは身の程知らん癖にC++をJava化しようとするから嫌いだ

110:デフォルトの名無しさん
13/11/10 16:01:10.48
>>108
URLリンク(www.open-std.org)

111:デフォルトの名無しさん
13/11/10 16:05:06.13
>>110
きもいな

112:デフォルトの名無しさん
13/11/10 16:14:09.94
>>111
C++がきもいのは今に始まった事じゃないだろ

ともかく、ポインターに対する委譲のために
ひたすら、関数の引数を同じ名前の関数に引き渡すとかやってらんない。
コンセプトマップさんが生きてりゃ似たようなコト出来たんだがな。
惜しい人をなくしたもんだ。

113:デフォルトの名無しさん
13/11/10 16:33:28.81
C++のスレ…だよね?

114:デフォルトの名無しさん
13/11/10 17:33:24.95
「まだ C++ ではないもの」のスレだ

115:デフォルトの名無しさん
13/11/10 20:12:45.88
助けてびよーねすっぽすっぽ先生

116:デフォルトの名無しさん
13/11/10 20:19:08.29
びょーんすぽすっぽだろ。

117:デフォルトの名無しさん
13/11/10 20:24:40.51
自慢じゃねーが英語は分かんねーぞ!
誰か>>110を日本語で説明してくれろ

118:デフォルトの名無しさん
13/11/10 20:35:00.09
プログラマのほとんどが英語を理解できない現状では
日本語の参考書は必要

119:デフォルトの名無しさん
13/11/10 21:01:05.25
VC++2010のratio_equalとratio_lessがバグってることに気付いた。
2012では直ってる?

120:デフォルトの名無しさん
13/11/10 21:01:39.68
std::ratio_equalとstd::ratio_less ね。
念のため

121:デフォルトの名無しさん
13/11/10 21:31:43.45
>>117
英語読まんでも
this is new stuff
ってとこから後のコード例だけ見れば何となく分かる

委譲する関数一個ずつ書かされるくらいなら今のままでいいよな
最後の方に提案外だけどpublicメンバーを一括委譲する案も出てるけど
個人的にはたぶんそっちしか使わないと思う
書き方は
inline m_pimpl;
とかの方がいいな、inline namespaceとなんか似てるし

122:デフォルトの名無しさん
13/11/10 21:35:07.14
usingはきもいよね = もそうだけど

123:デフォルトの名無しさん
13/11/10 22:06:33.22
>>121
委譲する関数名を書くのはIDEのコード補完が助けてくれそうな気がする。
ただ、usingだと後に続くのがネームスペースなのが委譲関数なのか特定できない気がする。
using以外の新しいキーワード導入してほしい。

124:デフォルトの名無しさん
13/11/10 22:13:59.05
C++は機能が少なすぎる

125:デフォルトの名無しさん
13/11/10 22:14:15.98
>>119
関係ないけどratioはここが美しいなw

typedef ratio<1, (_LONGLONG)1000000000 * 1000000000> atto;
typedef ratio<1, (_LONGLONG)1000000 * 1000000000> femto;
typedef ratio<1, (_LONGLONG)1000 * 1000000000> pico;
typedef ratio<1, 1000000000> nano;
typedef ratio<1, 1000000> micro;
typedef ratio<1, 1000> milli;
typedef ratio<1, 100> centi;
typedef ratio<1, 10> deci;
typedef ratio<10, 1> deca;
typedef ratio<100, 1> hecto;
typedef ratio<1000, 1> kilo;
typedef ratio<1000000, 1> mega;
typedef ratio<1000000000, 1> giga;
typedef ratio<(_LONGLONG)1000 * 1000000000, 1> tera;
typedef ratio<(_LONGLONG)1000000 * 1000000000, 1> peta;
typedef ratio<(_LONGLONG)1000000000 * 1000000000, 1> exa;

126:デフォルトの名無しさん
13/11/10 22:18:57.79
>>125
ソースが巨大AAというのも探せばありそうだなw

127:デフォルトの名無しさん
13/11/10 22:24:55.62
ラムダ式の型を取得できないのは知ってたけど以下のコードの2)もダメなんだな。

 auto lamda1 = [](int a) { return (a * 2) << 2; };
 auto lamda2 = [](int a) { return (a * 2) << 2; };
 lamda1 = lamda1; // 1)
 lamda1 = lamda2; // 2)

1)はOK

128:デフォルトの名無しさん
13/11/10 22:26:43.93
型が違うんだからそりゃそうだろ

129:デフォルトの名無しさん
13/11/10 22:31:09.54
>>125
#if で囲まれてるところも余さず引用しなきゃw

typedef ratio<1, (_LONGLONG)1000000 * 1000000000 * 1000000000> yocto;
typedef ratio<1, (_LONGLONG)1000 * 1000000000 * 1000000000> zepto;
typedef ratio<1, (_LONGLONG)1000000000 * 1000000000> atto;
typedef ratio<1, (_LONGLONG)1000000 * 1000000000> femto;
typedef ratio<1, (_LONGLONG)1000 * 1000000000> pico;
typedef ratio<1, 1000000000> nano;
typedef ratio<1, 1000000> micro;
typedef ratio<1, 1000> milli;
typedef ratio<1, 100> centi;
typedef ratio<1, 10> deci;
typedef ratio<10, 1> deca;
typedef ratio<100, 1> hecto;
typedef ratio<1000, 1> kilo;
typedef ratio<1000000, 1> mega;
typedef ratio<1000000000, 1> giga;
typedef ratio<(_LONGLONG)1000 * 1000000000, 1> tera;
typedef ratio<(_LONGLONG)1000000 * 1000000000, 1> peta;
typedef ratio<(_LONGLONG)1000000000 * 1000000000, 1> exa;
typedef ratio<(_LONGLONG)1000 * 1000000000 * 1000000000, 1> zetta;
typedef ratio<(_LONGLONG)1000000 * 1000000000 * 1000000000, 1> yotta;

130:デフォルトの名無しさん
13/11/10 22:39:01.24
>>128
メンバにラムダを持つクラスが作れないってことか

131:デフォルトの名無しさん
13/11/10 22:40:55.44
>>130
つ function

132:デフォルトの名無しさん
13/11/10 22:46:06.47
EffectiveC++14はよ

133:デフォルトの名無しさん
13/11/10 22:49:47.26
>>132
おっと、それはVC++がC++11対応を終えるまで待っていただこう

134:デフォルトの名無しさん
13/11/10 22:51:10.60
一生でないな

135:デフォルトの名無しさん
13/11/10 22:58:58.72
>>131
重いよー

136:デフォルトの名無しさん
13/11/10 23:25:06.08
C++のどこを指して機能が少なすぎると言ってるのか全く理解出来ないが
(OSのエントリポイントをコードできないという意味か?)
C++は最高の柔軟性を持っている。アセンブラを除けば他の言語に出来て
C++に出来ない事は存在しない

137:デフォルトの名無しさん
13/11/10 23:29:29.85
標準ライブラリが少ないというのには同意する

138:デフォルトの名無しさん
13/11/10 23:37:58.19
他の言語がありすぎな気も

139:デフォルトの名無しさん
13/11/10 23:43:02.49
boostさんがいれば大概のことはなんとかなる

140:デフォルトの名無しさん
13/11/10 23:56:02.18
>>136
>>127

141:デフォルトの名無しさん
13/11/10 23:57:21.87
>>140
記述方式と言語の能力をごっちゃにしてる当たり「高級」言語しか使えないの丸見え

142:デフォルトの名無しさん
13/11/11 00:11:14.72
127 は型が「違う」のではなく「同じである保証がない」
つまりは「同じであることに依存してはならない」ということだ

C++ の元来のポリシーからして複数の typedef や typename が
たまたま同じなら通るわけで、127 が NG なのは唐突な印象だが

143:デフォルトの名無しさん
13/11/11 00:12:16.57
委譲の話、データメンバーのinline指定で委譲になって
usingで選択、とかならいいな
んでusing指定はdecrarator-idだけ指定すればOKで
必要ならdeclarator全体書けば特定のoverloadが指定できるとか
class A {
void f();
void f(int);
void g();
void g() const;
};
class B {
inline A impl using { f(int), g };
};
とか

まあ、そんな大きくコア言語いじるほど欲しい機能じゃないけど…

>>123
IDEに任せるなら今でもやろうと思えば可能なような
あとn1363のはusing identifier { }だけど、名前空間でそんなのあるっけ?

>>122
n1363の別名定義は=の左右の向きが受け入れがたいよね

144:デフォルトの名無しさん
13/11/11 00:16:18.11
VLAISとかgccが独自拡張してるのを追ってったらなんぼでもあるだろ
古い言語でもPascalの関数内関数と同じ機械語パターンはC++のラムダじゃ吐けないが

145:デフォルトの名無しさん
13/11/11 00:17:40.35
gccはデファクトスタンダードなのでgccの拡張を取り込んでいない
標準規格のほうが規格違反。

146:デフォルトの名無しさん
13/11/11 00:18:55.74
>>142
結局記述方式の問題だろ?

147:デフォルトの名無しさん
13/11/11 00:28:12.95
>>146
一致を狙ってくる意図のほうだと思うが

148:デフォルトの名無しさん
13/11/11 00:33:43.08
Cにウンコな記述方式を追加したのがC++なんだから
記述方式を否定したら何も残らん

149:デフォルトの名無しさん
13/11/11 00:41:27.94
って事は今の言語はみんなウンコ

150:デフォルトの名無しさん
13/11/11 00:55:07.19
>>123
C++03の時点でusingをclass内に書くとメンバー関数の
アクセス権昇格と降格に使えるようになってるから問題ない。
C++03の知識すら無いのにこのスレくんな

151:デフォルトの名無しさん
13/11/11 01:08:34.24
>>143
戻り値で得たオブジェクトに機能追加する際大活躍するぞ

std::unique_ptr< Base > base = Function();
Extention extention = std::move( base );

extension.BaseFunction();//Base型に自動委譲された関数
extension.ExtendFunction();//Extensionで追加した関数

IDEで自動生成すればいいという話も出てるが、
委譲先の型に関数追加するたびに自動生成とかやっとられん。
特に既にライブラリー化されたものだと自動生成は使えない。

152:デフォルトの名無しさん
13/11/11 02:08:13.18
なるほど、確かにそういうのはアリかも

そういえばスマートポインタが絡むとどう宣言するか難しいな

153:デフォルトの名無しさん
13/11/11 07:06:35.91
ポインターに限定せず、指定した変数の->が
自動で呼ばれる仕様にしとけばいいんじゃね。
委譲用の関数がコンパイル時に自動生成される実装に
なってりゃそれ程難しくもない。

154:デフォルトの名無しさん
13/11/11 13:16:54.80
多重継承恐怖症患者の憂鬱

155:デフォルトの名無しさん
13/11/11 14:03:59.01
C++がやっぱり覇権言語のような気がする

156:デフォルトの名無しさん
13/11/11 14:31:55.45
>>154
多重継承じゃポインターは継承できないぞ

157:デフォルトの名無しさん
13/11/11 15:33:24.45
イミフ

158:デフォルトの名無しさん
13/11/11 23:00:37.29
関数の戻り値から単純な図形と2次Bezierぐらいしか対応して無いPainter拾って来て、
3次BezierとSplineを追加したいなんて時に委譲すんだが
かったるいんだよな。特に委譲先のメンバーが20個以上あるような場合。

159:デフォルトの名無しさん
13/11/12 00:22:39.31
gccのfloat最適化が期待したほどじゃなかった人?

160:デフォルトの名無しさん
13/11/12 08:45:52.81
>>159
誤爆か?

161:デフォルトの名無しさん
13/11/21 12:03:51.85
質問です

URLリンク(ideone.com)

2つのクラスの間でoperatorを定義したいのですが、先行宣言した方のクラスではdecltypeが書けません。
これをdecltypeを使えるようにするにはどのように書けば良いのでしょうか?

この例ではdoubleと書いてありますが、templateで他の型も使えるようにしたいと思っています。

162:デフォルトの名無しさん
13/11/21 12:57:06.26
テンプレにすりゃいいんじゃねーの

163:デフォルトの名無しさん
13/11/21 14:05:23.08
>>162
ありがとうございます

URLリンク(ideone.com)

これで行けそうです
classの中でoperator*を定義しようとすると、もう一つのclassのdがprivateで
型を取得出来ないので、アクセサを付けるとカプセル化を破る事になるし、
だったらfriendでoperator*を外部に関数で定義した方が良さそうでした

164:デフォルトの名無しさん
13/11/22 07:58:38.52
んな現行規格の話はC++初心者スレで聞けよ

165:デフォルトの名無しさん
13/11/22 10:45:50.90
decltypeが現行規格か?C++11ならそうだけど
初心者スレは03までじゃないとスレチな気が

166:デフォルトの名無しさん
13/11/22 12:34:18.94
>>165
スレタイ見て物を言え

167:デフォルトの名無しさん
13/11/22 13:24:27.31
現行規格は C++11
異論をはさむ余地はない

ただし >>163 は decltype なくても typedef で解決できることだね
template <class T>
class A {
public:
typedef T D;
private:
D d;
public:
A(D a) : d(a) {}
};

168:デフォルトの名無しさん
13/11/22 13:34:32.78
>>167
typeを外に晒してもoperatorの戻すtypeは結局decltypeが必要になるんじゃね?
どんなtypeとどんなtypeを演算するのかわからないんだから

169:デフォルトの名無しさん
13/11/22 14:16:20.77
>>168
それは確かに C++11 で改良された点だが
cout<< に流せる型なら特殊化でもしておけば?

class T は理屈の上ではあらゆる型だが
class A で達成しようとしている目的から外れすぎた
馬鹿げた T はシカトってのもよく使う手だね

C++11 なら、これも type_traits や static_assert でもうちっと善処できるけど

170:デフォルトの名無しさん
13/11/22 14:17:40.69
特殊化したんじゃtemplateにする意味がない
どんな型でも受けたいんだから

171:デフォルトの名無しさん
13/11/22 14:28:49.50
結局>>167でdecltypeを使わずに具体的にどう書くかは示されてないのか

172:デフォルトの名無しさん
13/11/22 14:29:55.90
あるいは何型の戻りを期待するのか陽に指定とかね
operator * では無理だけど、そんなら普通の関数だし

173:デフォルトの名無しさん
13/11/22 14:42:23.80
どんな型でもって、特定のメソッド要求してる時点で型が限定されてんじゃん?

174:デフォルトの名無しさん
13/11/22 17:46:59.67
>>173
特殊化されてない同名メソッドと
型に付随する特定のメソッドとは別概念じゃん?

175:デフォルトの名無しさん
13/11/22 17:51:22.08
はよ初心者スレに帰れよ

176:デフォルトの名無しさん
13/11/22 18:03:43.31
ガタガタ抜かさんと>>167書いた奴はideone.comに何かプログラム例上げてみ

177:デフォルトの名無しさん
13/11/22 18:18:17.64
>>176
やだね、べろべろばー

178:デフォルトの名無しさん
13/11/22 18:50:08.40
書けない癖に偉そうな口を聞くからそうなるんだよアホ

179:デフォルトの名無しさん
13/11/22 20:29:56.47
>>178
煽れば何か見せてもらえると思ってんだろバーカ

180:デフォルトの名無しさん
13/11/22 23:43:06.64
お前のは見たくないからいいよ。

181:デフォルトの名無しさん
13/11/23 02:17:07.60
勿体付けてるんじゃなくて、本当に書けないのは誰が見ても分かる

182:デフォルトの名無しさん
13/11/23 07:24:06.67
退屈だからoperator ** (ベキ乗)でも定義するか

class num {
double a;
struct num2 { double a; num2(double src) : a(src) { } };
public:
num(double src) : a(src) { }
const num2 operator *() const { return num2(a); }
double operator *(const num2& b) const { return pow(a, b.a); }
double operator *(const num& b) const { return a * b.a; }
};

int main()
{
num a(3.0), b(4.0);
double c = a * b; //12
double d = a ** b; //81
return 0;
}

183:デフォルトの名無しさん
13/11/23 07:59:59.46
class num2 { friend num; double a; num2(double src) : a(src) { } };
としてもっと完全に隠蔽すべきだったな

184:デフォルトの名無しさん
13/11/23 11:22:58.52
>>182-183
スレ違いだボケ

185:デフォルトの名無しさん
13/11/23 12:36:41.30
threadとかasync周りについて詳しく解説したページない?
何かよくわからん

186:デフォルトの名無しさん
13/11/23 13:07:54.38
>>185
このスレで聞くな

187:デフォルトの名無しさん
13/11/23 13:22:08.54
threadはともかくasyncは出来損ないなので勉強するだけ無駄

188:デフォルトの名無しさん
13/11/23 13:23:37.41
>>182-183
num2 無しにしたらどうよ

class num {
double a;
public:
num(double src) : a(src) { }
operator double() const { return a; }
const num *operator *() const { return this; }
const num operator *(const num *p) const { return pow(a, *p); }
const num operator *(const num &amp;amp;b) const { return a * b; }
};

int main()
{
num a(3.0), b(4.0), x(0), y(0);
double c = a * b; //12
double d = a ** b; //81
x = a * b; //12
y = a ** b; //81
return 0;
}

189:デフォルトの名無しさん
13/11/23 13:28:58.41
>>188
荒らしかよおめーは

190:デフォルトの名無しさん
13/11/23 13:47:35.56
相手されないと死ぬ幼児です

191:デフォルトの名無しさん
13/11/23 17:19:44.89
threadはどうなの
C++14で何か変更あるの

192:デフォルトの名無しさん
13/11/23 18:18:35.60
shared_(mutex|lock)

193:デフォルトの名無しさん
13/11/23 18:34:32.77
async 件、誰か kwsk!

194:デフォルトの名無しさん
13/11/23 20:30:20.81
>>9

195:デフォルトの名無しさん
13/11/24 01:04:48.21
>>193
URLリンク(www.amazon.co.jp)

196:193
13/11/24 02:46:41.05
ごめん少し言葉足らずだった
asyncができそこないって件kwsk!

197:デフォルトの名無しさん
13/11/24 04:47:47.62
getせずにfutureが破棄されたらどうすんのか決まってなかったけど、そのままデタッチしたら危ないから終了までブロックするようにした。
そしたら、
「それasync違うじゃん、止まってほしくない時まで止まっちゃうの問題じゃね?非同期処理を行いたい時はUIスレッド止めずにバックグラウンドで何かしたいときとかなのに!」
とか、
「非同期ならそのスレッド止めずに結果はコールバックで受け取るようにすべきで、そのライブラリ無いのおかしくない?でもそれ作ったらいまのasyncいらんよね。」
とか、
「Windowsだとこんな使い方してもスレッド起動のコストでかすぎて大抵遅くなるだけだわー」

とか、色々なネガティブ要素でもういっそdeprecateにしたほうがいいんじゃないか?って話しになってるんだと思ってる。
個人的にはできそこないって言うほどダメなもんでもないと思うけど・・・。

違ったら詳しいひとツッコミよろ

198:デフォルトの名無しさん
13/11/24 08:28:19.73
The C++ Standard Library 2nd ed - A Tutorial and Reference - Nicolai M. Josuttis

URLリンク(www.amazon.co.jp)

これいいな
C++11わからんとか言ってるやつはここのサンプルプログラムを手で打ち込んで全部試してみれ
英語版しかないのが玉に瑕だがそんなに難しい英語じゃない

199:デフォルトの名無しさん
13/11/24 10:01:08.30
時代はC++14

200:デフォルトの名無しさん
13/11/24 11:33:31.84
コンパイラがない

201:デフォルトの名無しさん
13/11/24 11:38:02.86
僕達にはclangがある

202:デフォルトの名無しさん
13/11/24 11:55:58.66
vc++のことも忘れないであげてください

203:デフォルトの名無しさん
13/11/24 12:57:42.87
パターンマッチは入らないのかな

204:デフォルトの名無しさん
13/11/24 14:05:48.12
スマポが配列を指す時に苦労した
これデフォルトのデリータがdeleteなんだな
だからカスタムデリータでdelete[]をラムダ式か何かで指定するか、
std::default_delete()を使わないといけないのか

205:デフォルトの名無しさん
13/11/24 14:42:02.32
デフォで配列版が用意されてるのはunique_ptrだけなんだな。
なぜだろ?

206:デフォルトの名無しさん
13/11/24 16:10:40.65
>>205
オブジェクトを複数のオブジェクトで共有するならまだしも、
生配列を複数のオブジェクトで共有して何に使うんだよ。
要は生配列共有すんなって事だ。

207:デフォルトの名無しさん
13/11/24 16:20:29.44
vectorかarrayを使っておけというところじゃね。

C++の動的配列って中途半端だよね。
delete[]で各要素のデストラクタ呼べるように
サイズとか内部的に持っているのに普通には使えないとか。
deleteとdelete[]使い分けろとか。

208:デフォルトの名無しさん
13/11/24 16:38:04.69
>>207
new T;で生成したオブジェクトdeleteする時にnew T[];とどうやって区別するんだ。
常にnew T[]した時余計な情報載せるのか?

209:デフォルトの名無しさん
13/11/24 16:59:52.30
>>207
デストラクターが無い場合に要素数を持たないようメモリをケチること許す言語仕様ゆえ

210:デフォルトの名無しさん
13/11/24 17:07:57.10
>>209
Cの配列と互換性持たせるためでもあるな。

211:デフォルトの名無しさん
13/11/24 17:13:06.24
それは関係ないんじゃ
使う側が見たnew式の結果は区別が付かないだから

212:デフォルトの名無しさん
13/11/24 17:19:54.68
>>206
配列の時だけってか?

213:デフォルトの名無しさん
13/11/24 21:23:17.89
>>205
unique_ptrには他のスマポと違ってコピーコンストラクタがないから
配列版=>単一版への誤ったコピーが起きにくい。

214:デフォルトの名無しさん
13/11/24 22:22:47.31
>>207
ぶぁか

215:デフォルトの名無しさん
13/11/24 23:26:15.38
>>211
単体のnewに要素数情報乗っけられるのも困るな
1000回newしたら8000バイト近くdeleteの為だけに主記憶領域食われるんだからな

216:デフォルトの名無しさん
13/11/24 23:41:30.04
>>213
テンプレートコンストラクタだから正しく言うとコピーコンストラクタじゃない

217:デフォルトの名無しさん
13/11/24 23:49:40.23
コピコンじゃないの!?

218:デフォルトの名無しさん
13/11/25 00:09:23.90
コピコンが無いってのは確かだが、配列=>単一のコピーの話をするんであれば問題なのはそこじゃない

219:デフォルトの名無しさん
13/11/25 01:00:10.11
配列=>単一のコピーってどういう話?

220:デフォルトの名無しさん
13/11/25 06:19:02.67
>>219
unique_ptr<T[]> a(new T[8]>;
unique_ptr<T> b(a>;
ってのが通ったらまずいが、unique_ptrには下のコンストラクタがないから大丈夫。

shared_ptr<T[]> c(new T[16]>;
shared_ptr<T> d(c);
ってのが通ったらまずいが、shared_ptr<T[]>なんてものはないから大丈夫。

221:デフォルトの名無しさん
13/11/25 09:59:08.91
shared_from_this()というのがいまいち理解できない

これどうなってんの?

222:デフォルトの名無しさん
13/11/25 21:53:44.84
やってることはトリッキーだけど単純なことなんだがシンプルで具体的な使用例がだせないな

shared_ptrで管理されてるオブジェクトがなんらかの事情で普通のポインタで渡されたときに
そのポインタから元のshared_ptrと管理権を共有するshared_ptrを得るというイディオムで使うんだけどな

223:デフォルトの名無しさん
13/11/25 22:26:31.25
URLリンク(www.ogis-ri.co.jp)
のコラム2

224:デフォルトの名無しさん
13/11/25 22:40:55.34
なるほどかなり特殊なケースみたいだな

225:デフォルトの名無しさん
13/11/25 22:42:55.82
>>222
「shared_ptrで管理されてるオブジェクトがなんらかの事情で普通のポインタで渡されたときに
そのポインタから元のshared_ptrと管理権を共有するshared_ptrを得る」というイディオム

長えよ

226:デフォルトの名無しさん
13/11/26 00:02:08.16
イディオム名はそのまま『shared from this イディオム』でそれはどういうもの?って説明が>>222だろ

227:デフォルトの名無しさん
13/11/26 21:33:57.58
boost::shared_ptrに記憶領域の番地を入れた際、
要約値を鍵にした連想配列(hash map)に
記憶領域の番地を格納。
boost::shared_from_thisを実行した際、
この連想配列からthisの持つ番地で、
boost::shared_ptrをとってくるって仕組みじゃないか?

228:デフォルトの名無しさん
13/11/26 22:00:12.84
内部にthisを指すweak_ptr持ってるだけだよ
後はshared_ptrのコンストラクタがenable_shared_thisを継承したクラスを特別扱いしている

229:デフォルトの名無しさん
13/11/26 22:40:40.37
参照カウンターの整合性はどうなるんだ?

230:デフォルトの名無しさん
13/11/27 09:48:18.32
>>229 どんなケースで問題が起こると思ってるの?

231:デフォルトの名無しさん
13/11/27 18:38:48.13
newして返したboost::shared_ptrと、
boost::shared_ptrで確保した、boost::shared_ptrを返した時。
特に片方が共同所有権としてつかわれ、
片方がEventの委譲用とかよくありがちじゃん。

232:デフォルトの名無しさん
13/11/27 18:42:03.66
それで何か問題になるのか

233:デフォルトの名無しさん
13/11/27 19:47:52.61
>>232
二重delete

234:デフォルトの名無しさん
13/11/27 21:00:11.72
長文失礼
shared_ptrのオブジェクトの管理領域は次のようになっている
管理領域の参照カウンタ、オブジェクトの参照カウンタ、オブジェクトへのポインタ、デリータへのポインタ
ここで、shared_ptrは管理領域、オブジェクト両方のカウンタを増減させる。 weak_ptrは管理領域のカウンタのみを変更する。
shared_ptrの破棄によってオブジェクトのカウンタが0になったとき、オブジェクトは解放される。
しかし、管理領域は全てのweak_ptrが破棄されるまで生存する
そして、weak_ptrからshared_ptrを構築する際には、shared_ptrの管理領域へのポインタをweak_ptrが指す管理領域へのポインタへと設定している

235:デフォルトの名無しさん
13/11/27 21:02:36.06
長すぎと言われた、連レスすまん
enable_shared_from_thisは内部にweak_ptrを持っていて、shared_ptrのコンストラクタはenable_shared_from_thisを継承したクラスに対しては特殊な動作、すなわち内部のweak_ptrに管理領域へのポインタを設定する動作をする
shared_from_this関数は内部のweak_ptrからshared_ptrを構築する関数で、前述のように同じ管理領域を指すポインタが新たに構築される
全てのスマートポインタが同じ管理領域を指しているので、二重解放は起こらない

236:デフォルトの名無しさん
13/11/28 01:04:05.46
>>231
> newして返したboost::shared_ptr
わからん。何を new ?返すってどこからどこに?
> boost::shared_ptrで確保
わからん。 shared_ptr に何かを「確保」する機能なんて無いよね?

さっぱりわからん。

237:デフォルトの名無しさん
13/11/28 10:41:28.04
>>231 >>233
こいつはたぶんshared_ptrそのものを理解してない

238:デフォルトの名無しさん
13/11/28 19:18:57.03
普通に使えば普通に使えるライブラリを
浅知恵で細工して可読性もパフォーマンスもセキュリティもぶち壊す

C++ではよくあること

239:デフォルトの名無しさん
13/11/28 22:25:36.50
そういや shared_ptr を使っているインスタンスに対してVisitorパターンだったかやってみようとしたら
途中で生ポインタに変わっちゃうんであきらめたことがあった

class Hage : public Element
{
virtual void accept(Visitor &v){ v.visit(this); } // <- このとき
};

enable_shared_from_this ってのを知っていたらうまいことできたんだろうか

240:デフォルトの名無しさん
13/11/29 01:14:30.49
うん

241:デフォルトの名無しさん
13/11/29 10:18:00.12
static_pointer_castとか面倒だけどこれ使わないと未定義の動作になっちゃうのね

242:デフォルトの名無しさん
13/11/29 10:37:25.12
std::accumulateって情報落ちの対策してるの?

243:デフォルトの名無しさん
13/11/29 11:42:28.09
全然

244:デフォルトの名無しさん
13/11/29 12:21:41.45
なんで現行規格や規格外の話ばっかしてんの?

245:デフォルトの名無しさん
13/11/29 18:26:52.04
規格とか仕様とかどうでもいいと思ってるから

246:デフォルトの名無しさん
13/11/29 21:46:12.55
もうそれ以上VC++さんを責めるのはやめてあげてください。
Windowsユーザーを嫌いになっても、VC++のことは嫌いにならないください!

247:デフォルトの名無しさん
13/11/30 07:24:14.22
2013でもconstexprコンストラクタが使えないんだっけ?

248:デフォルトの名無しさん
13/11/30 12:44:25.52
スレ違い

249:デフォルトの名無しさん
13/11/30 15:16:58.20
じゃあC++1yの話題をふってくれ

250:デフォルトの名無しさん
13/11/30 21:20:02.98
何も無理してスレを伸ばすことは無い。

251:デフォルトの名無しさん
13/12/01 09:43:34.66
template <typename T>
void foo (T val)
{
if (std::is_reference<T>())
std::cout << val << " is reference." << std::endl;
else
std::cout << val << " is not reference." << std::endl;

if (std::is_const<T>())
std::cout << val << " is const." << std::endl;
else
std::cout << val << " is not const." << std::endl;
}

int main()
{
int x;

foo(std::ref(x));
foo(std::cref(x));
}

これちゃんと動く?俺の所では両方とも"not"になってしまうんだが
gcc4.8.1

252:デフォルトの名無しさん
13/12/01 09:53:12.44
そりゃそれ自体はコピーだからな

253:デフォルトの名無しさん
13/12/01 10:38:08.55
ああなるほど

254:デフォルトの名無しさん
13/12/01 11:05:40.87
ついでにvoid f(T &&)にしたところで
const int &自体はconstじゃないから

255:デフォルトの名無しさん
13/12/01 13:17:53.77
コピーだからじゃなくて、fooに渡されるのはstd::reference_wrapper<T>だからだろ

256:デフォルトの名無しさん
13/12/01 13:55:11.13
std::reference_wrapper<int> じゃないの

257:デフォルトの名無しさん
13/12/01 14:07:07.83
そうだね
>>251のfooのTは
1番目 std::reference_wrapper<int>
2番目 std::reference_wrapper<const int>
になる

258:デフォルトの名無しさん
13/12/01 15:15:10.61
うへ('A`)

259:デフォルトの名無しさん
13/12/01 15:17:50.10
これ間違いなんかい
C++ Standard Library 2nd P132

5.4.3 Reference Wrappers
Class std::reference_wrapper<>, declared in <functional>, is used primarily to “feed” references
to function templates that take their parameter by value. For a given type T, this class provides
ref() for an implicit conversion to T& and cref() for an implicit conversion to const T&, which
usually allows function templates to work on references without specialization.
For example, after a declaration such as
template <typename T>
void foo (T val);
by calling
int x;
foo (std::ref(x));
T becomes int&, whereas by calling
int x;
foo (std::cref(x));
T becomes const int&.

260:デフォルトの名無しさん
13/12/01 16:27:32.40
間違ってるね

261:デフォルトの名無しさん
13/12/06 19:51:23.63
Standard Library 2ndのasync/thread回りをようやく読み終えた
これは難しい・・・

次はC++ Concurrency in Actionを読むけどどこまで理解出来るやら・・・
しかしこれを理解しないとマルチコアのメリットが活かせないわけだしなあ

262:デフォルトの名無しさん
13/12/06 20:17:59.91
何を言っているんだ
 マルチスレッドが難しい→まあそうだがスレ違いだ
 C++のasyncが難しい→んなもの知らなくてもマルチコアは活かせる

263:デフォルトの名無しさん
13/12/06 20:26:17.66
ライブラリ作る人のための最低限のツールだもんね。
GC周りと一緒で。

264:デフォルトの名無しさん
13/12/06 20:27:53.55
OpenMPとかだろ?そういうのじゃなくて移植性の高いのが欲しいわけで

265:デフォルトの名無しさん
13/12/06 21:00:59.87
ぶっちゃけスレ違いです。

266:デフォルトの名無しさん
13/12/06 21:25:50.97
asyncとthreadはスレ違いじゃないだろ

267:デフォルトの名無しさん
13/12/06 21:33:06.89
スレを扱うからスレは違って当たり前・・・w

268:デフォルトの名無しさん
13/12/06 21:39:56.32
どうでもいいけどなんでいつもageて書いてんの?バレバレなんですけど

269:デフォルトの名無しさん
13/12/06 21:58:36.96
sageる義務がないからさ
そんなことも知らないの? 馬鹿なの? 死ぬの?

270:デフォルトの名無しさん
13/12/06 22:02:52.04
あーだめだこいつ頭おかしいや
相手にしないでおこう

OpenMPはスレ違いだが、threadやasyncはスレ違いではない
れっきとしたC++11の話題だ

271:デフォルトの名無しさん
13/12/06 22:11:13.55
どうでもいいことは始めからぬかすな 顔おかしいの? 不細工なの? 相手いないの? 単為生殖なの?

272:デフォルトの名無しさん
13/12/06 22:58:05.20
>>270
ここはC++第三版(2011/9/1改訂)のスレではない

 馬 鹿

273:デフォルトの名無しさん
13/12/07 00:41:02.43
11で追加された新参者だから14/1yで変更されない保障はないっていう意味だとか

274:デフォルトの名無しさん
13/12/07 02:34:31.91
C++11の話題はスレ違い
async退学の話ならして良い

275:デフォルトの名無しさん
13/12/07 05:34:44.72
clangでも入れるしかないか
VSに入れられるんだからそれで遊べる

276:デフォルトの名無しさん
13/12/07 11:24:24.94
現行規格はスレ違い

277:デフォルトの名無しさん
13/12/07 11:27:15.41
じゃあ次期の話をしようか。
委員会ドラフトってどうなったの?
無かったことにされるレベルで変更入りまくり?

278:デフォルトの名無しさん
13/12/07 13:37:43.49
C++11のスレがないじゃないか

279:デフォルトの名無しさん
13/12/07 13:51:57.55
C++相談室 part107
スレリンク(tech板)
【初心者歓迎】C/C++室 Ver.88【環境依存OK】
スレリンク(tech板)

280:デフォルトの名無しさん
13/12/07 15:19:00.84
C++11は現行規格なわけだし、
特別扱いする必要は無いんだお

281:デフォルトの名無しさん
13/12/07 16:13:58.10
了解した
しかし今のC++スレの質の低下はひどいもんだ
あそこでスレッドやらasyncを質問して果たして答えてくれるのやら
試してみよう

282:デフォルトの名無しさん
13/12/07 18:48:32.64
必要だと思う人がいるのなら、C++11のスレ作ったらいいんじゃないの?

283:デフォルトの名無しさん
13/12/07 19:03:22.93
アイちゃん認定されそう

284:デフォルトの名無しさん
13/12/07 19:48:05.55
C++14をやるのにどのコンパイラ使っている?
VC2013?

>>281
実際にthread,asyncを使っている奴は少ないだろうからな
対応遅すぎたって感じだし

285:デフォルトの名無しさん
13/12/07 21:20:09.07
VS2012でも2013でもいいからClangを入れてしまえばいいだろう

threadは実際にマルチスレッドプログラミングをするにはプリミティブ過ぎて使いにくいから
asyncが考えられたんだろうが、まだ完成度が低い
それにデッドロックやレース状態、リソーススタベーションを起こさずにスラスラプログラムを
書ける奴がどの位いるやら
C++14でもっとまともになるっしょ

286:デフォルトの名無しさん
13/12/07 21:36:02.04
僕ちゃんバカだからVSでのビルドわかんなーい><

287:デフォルトの名無しさん
13/12/07 22:04:49.66
何言ってんの

"clang visual studio 2013" とかでぐぐればいくらでも出てくるだろ

288:デフォルトの名無しさん
13/12/08 05:08:13.45
C++14なんてもう出るのか。C++11からすぐだったけど、何か不具合でもあったの?
禿も、またプログラミング言語C++書き直しやん。

289:デフォルトの名無しさん
13/12/08 08:32:22.14
これからのコンパイラはClangだらけになったりして
一番対応が早くて楽だしな

290:デフォルトの名無しさん
13/12/08 11:06:23.03
>>287
ぜんぜんないよ!失敗談はたまにでてくるけど

291:デフォルトの名無しさん
13/12/08 13:11:37.44
MSがclangを採用するって噂も一時期あったね、そういえば

292:デフォルトの名無しさん
13/12/08 14:14:26.48
よく知らんけどclang使うとなんかいいことあんの?

293:デフォルトの名無しさん
13/12/08 14:48:39.05
>>292
今すぐC++14が使える

294:デフォルトの名無しさん
13/12/08 15:39:04.90
オナニーができます

295:デフォルトの名無しさん
13/12/08 16:43:50.07
>>291
clang関係のリクルート出してた件?
VSで採用って話までは疑問視されてたような
でも何やらされてるんだろうね

296:デフォルトの名無しさん
13/12/08 17:19:07.49
そそ、それ
疑問視されてたって話は知らなかったけど

IntelliSenseとかIDE側で使っているのかも知れないね

297:デフォルトの名無しさん
13/12/08 17:29:11.81
>>296
使ってたらコードが混ざってるだろ。
VSでclangを使うことを想定した作業とか、
差し替えた時の互換性を高める作業とか、そのへんじゃねーの?

298:デフォルトの名無しさん
13/12/08 17:43:25.22
この辺じゃないの? C++ AMP の clang 対応。
URLリンク(hsafoundation.com)

299:デフォルトの名無しさん
13/12/08 19:52:19.02
C++ AMP がMSのC++後続の標準の言語になるのかね
規格のC++じゃ時代遅れなのかもな。C#で脱C++を開始した感じがあるからな

300:デフォルトの名無しさん
13/12/08 20:26:03.49
C++ AMPが何か知ってから語れ。

301:デフォルトの名無しさん
13/12/08 20:35:43.88
>>300
規格のC++じゃヘテロ対応できないだろ。GPU載っているCPUが普通だし
そんなのに対応するのにC++プラスアルファが必要で独自拡張。

302:デフォルトの名無しさん
13/12/08 21:02:22.52
脱C++

303:デフォルトの名無しさん
13/12/09 00:05:43.36
VS2013Expressでのclangのビルドってどうやるんですか?

304:デフォルトの名無しさん
13/12/09 00:24:11.61
>>303
clangをビルドしたいのかclangでビルドしたいのか。

305:デフォルトの名無しさん
13/12/09 00:26:22.84
>>301
それ、プラスするもんであって後続として元の物を置換するもんではないだろ。

306:デフォルトの名無しさん
13/12/09 00:45:43.62
スレ違いになるけど、いまデスクトップ用のGPGPUプログラミングって何が多いん?
C++AMP、openCL、CUDA等のGPUベンダの言語...
先端大好きのC++14野郎のお前らはGPGPUプログラムしている?

307:デフォルトの名無しさん
13/12/09 00:59:40.49
>>305
ClangをVS2013に統合したいんじゃないのかな

308:デフォルトの名無しさん
13/12/09 01:04:03.94
>>307>>304あてだった

309:デフォルトの名無しさん
13/12/09 01:09:58.35
>>307
いやだから…
単に「clangとの互換性向上(統合含む)目的」とか
「MSがC++ AMP絡みでclang組み込む目的」とか
って推測なら、ああそうかもね、で済む話だろ

何故か>>299が「C++ AMP」が「MSのC++後続の標準の言語」
だとか変なこと言い出すから>>300みたいなツッコミされてんだよ

310:デフォルトの名無しさん
13/12/09 01:16:50.36
>>308
アンカミスかよ…変だとは思ったけど>>299,301ならやりかねないと思ってその流れでレスしちまったorz

まず間違いなくそっちだろうけど、「clang"の"ビルド」と「clang"で"ビルド」を間違えてるなら指摘すべきじゃないの?

311:デフォルトの名無しさん
13/12/09 06:35:27.00
cの__Genericどう?いい感じ?
visualCみたいに使えるのかな?
他にやることあって出来ないんだよね

312:デフォルトの名無しさん
13/12/09 06:50:43.07
C++にはテンプレートがあるし…

313:303
13/12/09 10:30:36.34
すんません、clangをビルドしたいんです

314:デフォルトの名無しさん
13/12/09 10:34:23.11
clangはclangでできてないの?

315:デフォルトの名無しさん
13/12/09 10:50:48.50
VS2013のbuild targetは最近入ったばっかりだからVSは古いの使え。

316:デフォルトの名無しさん
13/12/09 12:20:25.97
>>313
Windows でやりたいのなら
教えて君には厳しすぎる。あきらめろん
ちなみに自称上級者の俺も(ry

317:デフォルトの名無しさん
13/12/10 08:42:48.32
>>290
マジメに調べてんの?

URLリンク(www.ishani.org)

318:デフォルトの名無しさん
13/12/10 09:06:11.37
>>290
URLリンク(llvm.org)

こんなんもあるぞ

319:デフォルトの名無しさん
13/12/10 09:06:59.17
>>311
cのすれで聞けよ

320:デフォルトの名無しさん
13/12/10 16:08:58.08
茶化している奴がこのスレにはいるみたいなんだよ
炎上学習法という正式名称もあるみたいだけどw、このスレには通用しないから

321:デフォルトの名無しさん
13/12/10 18:11:33.09
>>311
最悪
お前と同じ

322:デフォルトの名無しさん
13/12/13 23:25:05.29
C++って肥大化しすぎてもう終わりだ、なんて声聞くけど、代替言語あるの?
D言語ってどうなった?消えた?

323:デフォルトの名無しさん
13/12/13 23:31:56.25
facebookが採用したとかなんとか

324:デフォルトの名無しさん
13/12/13 23:38:21.13
facebookってPHP採用して、PHPが広く普及するのを牽引したらしいけど、
Dもそうなるのか?まさかな…

325:デフォルトの名無しさん
13/12/14 00:23:27.61
C++2011はオナニー言語なので代替など必要ありません。
実用には2003をお使い下さい

326:デフォルトの名無しさん
13/12/14 00:41:41.83
時代は Haskell
C++er なら割と簡単に Haskell を使い熟せると思うなぁ

327:デフォルトの名無しさん
13/12/14 05:50:08.94
>>326
関数を作ったり使ったりはわりと簡単
コンピネータまでいくと概念を理解できるかどうかだけど

問題は副作用の記述が面倒なところ
最初は文字列の表示もよくわからなかったよ

328:デフォルトの名無しさん
13/12/14 08:27:20.84
グリーがハスケル使ってたりするな。

329:デフォルトの名無しさん
13/12/14 10:37:11.59
ところで来年は本当に規格が改訂されるんだろうな
0xとか言い続けて2009年までに出せなかった能無し共の仕事は信用ならない

330:デフォルトの名無しさん
13/12/14 11:11:50.60
0x0b年に出たんだから良いではないか

331:デフォルトの名無しさん
13/12/14 11:14:27.04
GHもそんなこと言ってたな

332:デフォルトの名無しさん
13/12/14 11:19:59.15
0xXXでなく0xだったのでその解釈はおかしい

333:デフォルトの名無しさん
13/12/14 11:22:07.81
凄腕コンパイラ製作者のN氏は袖をまくりあげながらこう言い放つのだった

334:デフォルトの名無しさん
13/12/14 11:24:18.18
>>329
concept入らないと出さないでしょ

335:デフォルトの名無しさん
13/12/14 11:26:45.72
つまりは泥沼という訳ですね

336:デフォルトの名無しさん
13/12/14 11:30:12.71
>>332
メンドくせえな
16進数ってのを分かり易いように0x付けただけだよ

じゃあもう一度な
16進数で0b年に出たんだから良いではないか

337:デフォルトの名無しさん
13/12/14 11:40:16.54
>>325
autoは使える

338:デフォルトの名無しさん
13/12/14 11:50:00.42
>>336
もともと09年までに出す予定で0xと称していたものを
出せなかったら「0xを0?hと解釈すれば問題ない」などとのたまう
最低のゴミクズだな。
こういう奴らは次は「35進数と解釈すれば…」と言い出すに違いない

339:デフォルトの名無しさん
13/12/14 12:15:29.95
>>338
って言うか、お前本気で言ってるのか?
禿の洒落なんだが…

340:デフォルトの名無しさん
13/12/14 12:23:49.16
じゃあハゲはゴミクズってことで
ところでハゲって誰?

341:デフォルトの名無しさん
13/12/14 12:48:15.83
>>340
俺、ストラウストラップ(`ェ´)ビャーネ

342:デフォルトの名無しさん
13/12/14 13:33:26.32
C++11のおかげで自分の所ではboostがほとんど不要になった。
C++1yにboost::format相当は入るかな?

343:デフォルトの名無しさん
13/12/14 13:37:26.12
入りません

344:デフォルトの名無しさん
13/12/14 14:19:02.83
そうなんだ。
まあ便利だけど、あれだけのためにboostを入れる必要はないな。

345:デフォルトの名無しさん
13/12/14 14:20:22.28
うちはstdガン無視でboost継続利用中
今更変えると逆にトラブる

346:デフォルトの名無しさん
13/12/14 16:42:55.67
Boost.Format そのものじゃないけど
printf ライクに出力できるように
しようってのはペーパー出てた気がする。

347:デフォルトの名無しさん
13/12/15 21:26:22.20
お前らどうやって勉強してんの
アイエスオーとか買って読んでるのけ?
そんなの買う金あったらソープ池よ

348:デフォルトの名無しさん
13/12/15 21:27:12.71
isoならただで見れるだろ
お前はアホか

349:デフォルトの名無しさん
13/12/15 23:39:03.96
ソープ行く金で女口説けるだろ
特にこの季節、余り物オーラ見抜けば安いぞ
使い捨てませ

350:デフォルトの名無しさん
13/12/16 11:33:14.99
>余り物オーラ見抜けば

御教示ください

351:デフォルトの名無しさん
13/12/16 15:40:20.77
オーラ漏れは地雷の目印
触っちゃダメだよ、ひどい目に遭うよ

352:デフォルトの名無しさん
13/12/16 16:49:37.22
構ってもらえないオーラの方が食いつきがよさそう

353:デフォルトの名無しさん
13/12/16 19:54:45.71
ISO規格ってタダで見れたか?
C++2014ドラフトはタダだけど

354:デフォルトの名無しさん
13/12/16 20:46:30.59
最終ドラフトで充分って江添が言ってなかったっけ?
っていうか、 C++11 を見るくらいなら C++14 のドラフトの方がいいじゃん。

355:デフォルトの名無しさん
13/12/16 21:50:35.25
C++11のFDISはちゃっかりゲットしてる

356:デフォルトの名無しさん
13/12/16 22:35:41.60
俺はFDISの一歩手前のWDと、ISの一歩後のWDしか手に入らなかった。

357:デフォルトの名無しさん
13/12/16 23:58:18.44
>>354
規格に何を求めてるんだよ。求めるのは絶対的に正しい仕様だろ。
99%内容が同じでもドラフトに価値など無い。
おおざっぱに勉強したきゃそこらのサイトでも見た方が早い。

358:デフォルトの名無しさん
13/12/17 00:06:13.45
もうISOだけじゃなくて、ANSIでも安く売ってるんだから買えよな。
知らない奴は規格なんて縁のない人間なんだよ。

// しかしISOのサイトの広告は何とかならんのか。

359:デフォルトの名無しさん
13/12/17 21:35:26.59
ANSIがISO規格を売っているのですか?
初耳です。

360:デフォルトの名無しさん
13/12/18 01:02:58.85
ANSI 版(INCITS 版)
URLリンク(webstore.ansi.org)
も売ってるけど ISO 版
URLリンク(webstore.ansi.org)
も売ってるんだな、これが。安いの INCITS 版だけど。でも一時よりえらい値上がりしてる気が。

361:デフォルトの名無しさん
13/12/18 05:48:10.46
本当に縁のある人はFDIS持ってると思う

362:デフォルトの名無しさん
13/12/18 17:00:54.23
円のある人は規格で
縁のある乞食はドラフトという訳ですね。
規格の話をしたいときにドラフトを持ち出すような
ナンセンスなことをしなければよいけど

363:デフォルトの名無しさん
13/12/18 19:25:30.50
日本規格協会でISO/IEC 14882を買ったら
PDFに「しおり」が付いていなくてブチ切れだったでござる。
JIS規格が時々画像のスキャンとか、夜道に気を付けろと言いたい。

364:デフォルトの名無しさん
13/12/18 19:30:50.23
なぜスキャン画像なのかと聞いたら、
検索できないようにするため、との答え。
2度ぶちぎれですよ!。

365:デフォルトの名無しさん
13/12/18 19:42:24.38
公文書を「売る」変な団体だしな

366:デフォルトの名無しさん
13/12/18 19:49:49.93
企業をタダで働かせて作ったものを売る
ことで経済産業省はボロ儲け。
そしてC++は企業に見捨てられたので
JIS規格が出せなくなった

367:デフォルトの名無しさん
13/12/18 20:01:29.41
>>362
FDISは最終案で、OK出たらそのまま出版なんですけど

368:デフォルトの名無しさん
13/12/18 20:13:56.06
>>367
OKが出たFDIS以外にドラフトは無いのか?

369:デフォルトの名無しさん
13/12/18 20:26:13.66
>>367
FDISは修正して再提出があるわけだが
「これが本当に最後のファイルドラフト」とか
恥ずかしい

370:デフォルトの名無しさん
13/12/18 20:31:33.12
「これが規格です」と名乗るための表紙の付いたお布施。
高々3万円ぐらい買ってやれよ。
江添がメシ食っていけないだろ。

371:デフォルトの名無しさん
13/12/18 20:38:21.25
もう都落ちしたそうだな

372:デフォルトの名無しさん
13/12/18 20:52:38.59
規格買ってもエゾたんに円は入らんだろ

373:デフォルトの名無しさん
13/12/18 21:00:56.06
規格を読むのはハードル高いけど最新仕様に関心はある層がいないと江添たん儲からない。

374:デフォルトの名無しさん
13/12/18 21:04:13.46
江添は正直どうでもよくて
規格策定にも金はかかるんだから
適切なキャッシュフローのためにも
お布施しておけっていう話だろ

375:デフォルトの名無しさん
13/12/18 21:18:01.78
取り敢えずコンセプトは要らんから
はよ出せ

376:デフォルトの名無しさん
13/12/18 21:42:07.79
>>374
規格団体が制定すりゃ使われるかっていうとそんなことないだろ。
コンパイラがちゃんと追従して、わかりやすい関連書籍も出て皆が使うから規格に意味があるんだ。
ちゃんと産業で使われるなら規格策定なんぞどこかしらの企業がスポンサーに付くわい。
言語のエンドユーザーたるプログラマが直接 ISO やら ANSI やらに金を出すのは適切なキャッシュフローではない。

377:デフォルトの名無しさん
13/12/18 21:45:41.25
というのが江添さんの持論です

378:デフォルトの名無しさん
13/12/18 22:06:23.22
規格委員って規格委員会から活動経費とか言ってお金貰っているのか? 
それとも、無償でやっているのか。顔合わせてのミーティングとかだと
交通費とかかかるよな。

379:デフォルトの名無しさん
13/12/18 22:18:37.13
>プログラマが直接 ISO やら ANSI やらに金を出すのは適切なキャッシュフローではない

規格はよだせ(出して欲しい)
→でも俺は金 払わない
→金はどこかの企業がだせ

この思考がヤバい

380:デフォルトの名無しさん
13/12/18 22:26:53.37
それ美しい日本の精神じゃないか。

381:デフォルトの名無しさん
13/12/18 22:32:46.33
規格の本来の目的は乱立していたものが統一されることで
産業全体が効率化されて最終的にエンドユーザーが
メリットを享受できるようにすることだろ。
今のC++1yは規格策定=新機能の開発になっていて
何か違うと思うんだ。

382:デフォルトの名無しさん
13/12/18 22:47:10.58
なんで最初にわざわざカオスな状況を用意しなきゃいかんのよ
新機能を開発したい人たちが複数居て、ばらばらにやったら方言が乱立するから、一カ所でやって即規格化しようぜ
ってのが今のC++の規格策定プロセスなわけでしょ?
誰にとってもその方が望ましいと思うんだが

383:376
13/12/18 22:56:16.55
>>379
> →でも俺は金 払わない

だってそうだろう。 工作が趣味だからってネジやら合板やらの規格策定に金出すか?
エンドユーザーは金を払って部品を書い、工作指南本を書い、道具を買うけど、
その背景にある規格を一貫させるのは各業界でやるのが筋だろ。
規格策定の分の費用が売り物の値段に上乗せされてたってかまわないが、
直接支援するのは筋が違う。

384:デフォルトの名無しさん
13/12/18 23:09:23.94
>>383
「統一された規格を実装したコンパイラーが欲しい」と
「規格書が欲しい」を一緒にするなよ。
前者の人が規格策定行為に直接金払わないのは当たり前。

385:デフォルトの名無しさん
13/12/18 23:32:58.20
江添さんが金くれってごねてるの?

386:デフォルトの名無しさん
13/12/18 23:36:49.20
>>377
どうでも良いことだが
江添は長音表記が通産省労害派(JIS Z 8301)じゃなくて
内閣府1991告示二号派だから別人
・コンパイラー
・コンピューター
・メンバー関数
・コンストラクター

>>385
江添はFDIS推奨らしいから違うだろ?

387:デフォルトの名無しさん
13/12/18 23:48:00.41
【重要】
落ち武者ネタは禁止します、使用しないでください。
万が一 アスペ落ち武者ネタが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。

※ スレタイと>>1をよく読んで下さい

388:デフォルトの名無しさん
13/12/18 23:50:35.22
落ち武者ネタって何?

389:デフォルトの名無しさん
13/12/19 00:19:26.90
エゾたんのことか?
スレに沿う話題ソースにも非常に有益な御仁だし、話題から外すのは反対だな
偏屈ジジイなのは否定せんけど、アスペ落ち武者呼ばわりされるほど恨み持たれるような事してるのか?w

390:デフォルトの名無しさん
13/12/19 00:26:52.22
まーああいう人が浪人してて金に困ってる、って時点で盛り下がってるんだな~とは思う。
本来なら引く手あまたじゃなきゃまずいと。

391:デフォルトの名無しさん
13/12/19 00:49:09.70
ああいう人は金に困ってなきゃおかしいです。
好きなことしかやらないんだから。

392:デフォルトの名無しさん
13/12/19 01:01:26.54
どちらにも同意できて困る

393:デフォルトの名無しさん
13/12/19 02:27:13.52
もし江添を雇うならエウ゛ァンジェリストとしてだろうな。
ああいうのは本人が面白そうにやってると説得力があるからな。

394:デフォルトの名無しさん
13/12/19 03:01:12.82
不自由な製品はお断りだからな

395:デフォルトの名無しさん
13/12/19 03:16:02.14
あいつはpdfに親でも殺されたのか

396:デフォルトの名無しさん
13/12/19 03:52:41.94
偏屈ジジイっておまえなあ、江添くんまだ20代だぞ

397:デフォルトの名無しさん
13/12/19 03:54:30.73
あんな自由に縛られた奴が20代なわけないだろ

398:デフォルトの名無しさん
13/12/19 08:04:48.44
>>383
JISやISOは企業で使うために制定してるもの
趣味で作る分には規格書不要、コンパイラ付属のマニュアルでも読んどけ

399:デフォルトの名無しさん
13/12/19 08:16:23.50
見てて面白いから良いだろ

400:デフォルトの名無しさん
13/12/19 08:40:00.84
>>378
他のISOに関わったことあるけど、手弁当でした。海外出張年4回と普段のも。規格をネタに解説書書いて出版しましたが、マイナーな規格なので、予想通り初版5000部で絶版しましたし。

401:デフォルトの名無しさん
13/12/19 08:52:37.49
>>378
2005年くらいまでは会社から支給があったけど、
今はもう持ち出しですよ
普通の勉強会の方が交通費が出ることもあるくらい

402:デフォルトの名無しさん
13/12/19 13:40:53.43
江添とか IT 成金企業が飼っときゃいいのに。

403:デフォルトの名無しさん
13/12/19 14:22:00.93
なんで企業が金にもならんキチガイ雇わにゃならんのよ

404:デフォルトの名無しさん
13/12/19 14:23:10.68
>>401
それは援助金を集める担当者がサボっているのが原因に間違いない

405:デフォルトの名無しさん
13/12/19 14:25:53.72
>>403
話題にはなるんじゃ
忘年会に集まるような怪しい連中じゃ無理だろ

406:デフォルトの名無しさん
13/12/19 14:38:54.05
知り合いにやね某やえぴなんとかさんみたいな身の振り方上手い人がいくらでもいるのにどうしてこうなったんだろう

407:デフォルトの名無しさん
13/12/19 16:55:18.12
えぴなんとかはともかく、その例だと知り合いが悪いんじゃねえの。

408:デフォルトの名無しさん
13/12/19 17:53:56.86
誰か江○添を食わせてやれ
→俺は金出さないけど
→どこかの成金企業は金持ってるだろ

この思考がヤバい

409:デフォルトの名無しさん
13/12/19 18:39:57.38
やねさんと江添さんて知り合いだっけ?

というかさ、C++関係で専業の人間なんていないだろ
えぴさんにしろ、若手だとBoost勉強会の人にしろ、本業は別にあるわけだしさ
C++の専業伝道師のロールモデルなんてないわけで
それでも副業するのが嫌なら、苦労するしかないわいな

410:デフォルトの名無しさん
13/12/19 19:00:05.27
えぴさんの本業ってなんなの?

411:デフォルトの名無しさん
13/12/19 19:05:41.21
直接仕事取ってこれるタイプのIT土方

412:デフォルトの名無しさん
13/12/19 19:40:29.11
いんちき競馬予想ソフト書かされて
いやになったんじゃなかったっけ

413:デフォルトの名無しさん
13/12/19 20:10:26.17
Will Code HTML for Food

414:デフォルトの名無しさん
13/12/19 20:12:43.92
仕事で使うのはC++のみって奴ってどれぐらいいるんだ
仕事では他の言語が主でC++が副って奴が多いんじゃないか

415:デフォルトの名無しさん
13/12/19 20:26:49.22
専業ってなんだよ
シープラプラなんて既に
天ぷらオナニー用言語だろ
趣味でやるのが正しい使い方

416:デフォルトの名無しさん
13/12/19 20:52:25.18
趣味なら余計にこんな糞言語使いたくねえ

417:デフォルトの名無しさん
13/12/19 20:56:10.73
むしろそれがいい
右辺値山椒だけでご飯3杯はイケる

418:デフォルトの名無しさん
13/12/19 21:21:41.88
web言語の方が御飯たべれる

419:デフォルトの名無しさん
13/12/19 21:45:24.39
と、ここまでITドカタで御飯食べるのが精一杯な人間の世界観

420:デフォルトの名無しさん
13/12/19 21:58:05.96
えぴさん、普段はとってもわかりやすい文を書く方なのにどうして本にするとわかりにくいの?
ファンとして悲しい‥

421:デフォルトの名無しさん
13/12/19 22:00:45.88
その程度の能力だからなんだろ
誰だか知らんがソイツは

422:デフォルトの名無しさん
13/12/19 22:09:05.64
読んだ直後は分かったような気になるけど、暫く経ってよくよく考えてみると実は全然分かってない。
リピーターを生み出す良い本とはそういうものだ!w

423:デフォルトの名無しさん
13/12/19 22:17:23.98
>>412
それpmokyだろ

424:デフォルトの名無しさん
13/12/19 22:23:13.87
>>422
マは底辺・低脳者の職種だから、全然分かってないが当たり前だよ
日本語ができない奴でもOKな職だし

425:デフォルトの名無しさん
13/12/19 22:24:21.68
422のような馬鹿な信者が湧くことから
当人のレベルの低さが伺える

426:デフォルトの名無しさん
13/12/19 22:29:23.76
けれど、皆さん、日本語は話せないけれど英語は読み書き出来るんでしょ?

427:デフォルトの名無しさん
13/12/19 22:34:17.30
なぜ、c++のWeb Frameworkは流行らないのか

428:デフォルトの名無しさん
13/12/19 22:51:21.22
危ないから

429:デフォルトの名無しさん
13/12/19 22:52:05.11
>>427
何それ。emscripten?
サーバー側の話?

430:デフォルトの名無しさん
13/12/19 22:57:44.76
>>369
修正されなかった事も知らないの

431:デフォルトの名無しさん
13/12/20 00:18:14.60
>>379
コンパイラに金を払ってりゃコンパイラのマニュアル読んでりゃ問題なくね。
gccとかclangとかはそれらが規格に準拠してて欲しいと思う個人や企業が身銭を切る。

ただ、規格に準拠してて欲しいと思う個人や企業ってのが、
規格に興味のない個人や企業が生んだ非互換のゴミに悩まされた被害者だと考えるといろいろとアレだけどな。

432:デフォルトの名無しさん
13/12/20 00:58:35.02
>>429
CppCMS, Wt, Tree Frog

433:デフォルトの名無しさん
13/12/20 08:14:45.07
>コンパイラのマニュアル読んでりゃ問題なくね
間違いではないんだが、独自の方言が普遍的と勘違い
する人を量産してしまう罪は重い

434:デフォルトの名無しさん
13/12/20 08:15:40.39
sdkjla;hjklfdjl

435:デフォルトの名無しさん
13/12/20 17:04:18.77
>コンパイラのマニュアル
文法の説明が無いくせに方言まみれのG++は
どうしようもないUNKOという訳ですね。
規格への準拠を期待して騙され続けているG++ユーザーは不憫です。

436:デフォルトの名無しさん
13/12/20 17:34:57.30
規格書に金出せないアマチュアなんだからそれで問題無い

437:デフォルトの名無しさん
13/12/20 19:52:30.45
プロは目的と手段を混同したりしない

438:デフォルトの名無しさん
13/12/20 19:57:41.24
こういうこと言う奴に限って混同したプロ崩れのクズ。
特長は「いつも他人からみて幸せそうには見えず、
愚痴ばかりこぼしている」タイプ

439:デフォルトの名無しさん
13/12/20 20:01:16.90
おまえのことかw

440:デフォルトの名無しさん
13/12/20 20:11:14.74
プロはプロを自称しない。

441:デフォルトの名無しさん
13/12/20 20:20:03.81
おまいら、コンパイラやインタプリタの企画書なんて読むの?

442:デフォルトの名無しさん
13/12/20 20:28:13.35
    【新 企 画】

新 宿 コ ン パ 2 0 1 3

ホ ゲ ホ ゲ 株 式 会 社

443:デフォルトの名無しさん
13/12/20 20:30:10.12
企画など読む気も無いし読む必要も無い
言語の規格とコンパイラーの説明だけでok

444:デフォルトの名無しさん
13/12/20 20:39:18.09
おまいら、規格書を元に修正要望とかバグパッチ書いたりするの?

445:デフォルトの名無しさん
13/12/20 20:44:54.33
規格書はム板でアホを叩くために必携

446:デフォルトの名無しさん
13/12/20 20:55:09.71
上司「今年のコンパの企画書を明日までに提出しなさい」
俺「承知しました」


447:デフォルトの名無しさん
13/12/20 20:57:16.25
「開催の趣旨が薄れたため 今年度は開催しない」

448:デフォルトの名無しさん
13/12/20 21:09:05.45
☆★★

449:デフォルトの名無しさん
13/12/20 21:42:23.42
同音(本当は同音じゃないけど)異義語が、いつまで経っても痛いね

450:デフォルトの名無しさん
13/12/21 03:32:38.20
>>444
MSにバグレポート出してるよ
別のチームはOSS向けのパッチ書いたりしてる

451:デフォルトの名無しさん
13/12/21 05:14:56.16
言語の規格でなくコンパイラー/インタープリターの規格
に相当するものと言ったらJavaか?
読んでない

452:デフォルトの名無しさん
13/12/21 15:06:16.48
>>431
> 規格に準拠してて欲しいと思う個人や企業

いやいやw

453:デフォルトの名無しさん
13/12/21 19:38:28.44
>>431が何を言っているのかよくわからない

454:デフォルトの名無しさん
13/12/21 20:06:39.42
俺は金を出さないけどお前らは出せって意味じゃね

455:デフォルトの名無しさん
13/12/21 21:46:16.53
gccやclangが規格に準拠して無くても構わないから規格購入費とか知ったこっちゃねーです。
VSは金払って買ってるから準拠してて欲しいと思うが金は払ったからあとはMSさん宜しくです。

456:デフォルトの名無しさん
13/12/22 04:35:05.93
VisualStudioから入って、どうやってプログラムが書けるようになるのか謎杉
文法を覚えたばかりで小説を読んだことのない小学生に、
小説を書けって言ってるようなもの

457:デフォルトの名無しさん
13/12/22 06:02:59.88
スレ違い&釣りはスルー

458:デフォルトの名無しさん
13/12/22 21:10:21.66
>>456
C++14のドラフト規格を暗記だな

459:デフォルトの名無しさん
13/12/22 23:26:19.23
言語の規格から入って、どうやってプログラムが書けるようになるのか謎杉
文法を覚えたばかりで小説を読んだことのない小学生に、
小説を書けって言ってるようなもの

460:デフォルトの名無しさん
13/12/23 02:23:24.83
規格にはコード例が載っているじゃないか。

461:デフォルトの名無しさん
13/12/23 02:38:15.61
規格は仕様の背景や考え方の説明が乏しいので
初心者の学習には不向きです
禿にウザい信者が湧くのにはそれなりの理由がある

462:デフォルトの名無しさん
13/12/23 11:05:02.18
規格は文法だけじゃなくて用例も少し載ってるから>>459はちょっと違うね。

463:デフォルトの名無しさん
13/12/23 11:06:19.83
そういやANSI C, ISO C++の規格に用例が多いのはK&Rの影響かね。

464:デフォルトの名無しさん
13/12/23 13:24:49.71
規格に載ってるサンプルはあくまで規格を説明するためのもので、適切な使用例というわけではないよ。

465:デフォルトの名無しさん
13/12/23 13:47:18.66
むしろ変な例が多い気がする

466:デフォルトの名無しさん
13/12/23 13:57:18.25
規格の落とし穴や注意点を説明するような例が多いしな

467:片山博文MZコスモ ◆T6xkBnTXz7B0
13/12/23 15:07:27.42
URLリンク(dl.dropboxusercontent.com)

468:デフォルトの名無しさん
13/12/23 19:48:58.24
むしろルールを仕様として書かずに
例が仕様となっているクソ説明

469:デフォルトの名無しさん
13/12/23 21:04:22.02
いやいや。

470:デフォルトの名無しさん
13/12/24 11:50:05.02
>>468
それはDR出していい。

471:デフォルトの名無しさん
14/01/11 16:47:14.70
誘導されてきました。

14のジェネリックlambdaが待ち遠しいんですけど、デフォルト引数を与えたりできますか?
fn を例えば2変数のファンクタとして、
[fn](auto x = 8) { return fn(1, x); }; みたいな。

よろしくお願いします。

472:デフォルトの名無しさん
14/01/11 21:00:03.63
無理

473:デフォルトの名無しさん
14/01/11 22:15:52.14
無理ですか・・・。
じゃあ仕方ないですね。
どうもありがとう。

474:デフォルトの名無しさん
14/01/12 00:13:06.45
可変長引数使うとか。

475:デフォルトの名無しさん
14/01/12 09:09:35.68
>>474
[fn](auto x、...) { return fn(1, x ~
という形で、~の部分を自分で埋めてくってことですよね。
可変長引数はできるんですか?

476:デフォルトの名無しさん
14/01/13 02:40:07.76
C++でfopen_sが使えるようなるのはいつですか?

477:デフォルトの名無しさん
14/01/13 02:56:51.06
_s系には何も期待していない

478:デフォルトの名無しさん
14/01/13 03:03:42.61
_s系の関数なんてつかってる人いるの?
あれって、存在の必要性をまるで感じないんだけど。
個人的には、iosteamくらいいらない子
それより、snprintfがほしい。

479:デフォルトの名無しさん
14/01/13 03:37:31.52
>>478
std::stringstreamとかstd::istream_iteratorとか捨てたもんじゃないと思う。
でもprintfは欲しいよなぁ・・・

480:デフォルトの名無しさん
14/01/13 03:38:29.43
sprintf_sでいいじゃん

481:デフォルトの名無しさん
14/01/13 03:50:31.58
iosteamに対して使いたいんだよ!

482:デフォルトの名無しさん
14/01/13 08:37:43.53
スチーム?

483:デフォルトの名無しさん
14/01/13 08:47:01.15
Boost.Formatを使うかstd::putfが標準に入るのを待つか

484:475
14/01/13 09:56:30.21
失礼しました。ドラフト見たら明確にできることが書いてました。(5.1.2p5)
ラムダにリプレースできるツールの候補があるんで、これ使ってデフォルト引数が実現できるか考えてみます。

485:481
14/01/13 16:06:08.12
>>482
タイポしたら嫌だから478からコピペしたらこれだよ!
よく見てコピペするんだった・・・

486:デフォルトの名無しさん
14/01/13 18:38:40.24
>>484
何がしたいのかよくわからないよ。
デフォルト引数がしたいのか、可変長引数がしたいのか、何?

487:デフォルトの名無しさん
14/01/13 20:32:46.40
>>486

>>471にある通り
ファンクタ fn に対して
[fn](auto x, auto y = 8) { return fn(1, x, y); }; //yにデフォルト値あり
ということがしたい。
自作のbindモドキをラムダにリプレースできないか検討中。

bind(fn, 1, _1, _2 = 8);
ということをやっているので、ラムダ引数でのautoの使用とデフォルト値が必要になる。
なければ他の手段でできないか、ということです。

488:デフォルトの名無しさん
14/01/13 20:43:32.48
C++14なら完全対応してるclangがあるんだからそれ使えばいいやん

489:デフォルトの名無しさん
14/01/13 22:22:11.62
いままでのあらすじ

ジェネリックΛ期待。デフォルト引数もok?
 ↓
それはダメ
 ↓
他の手段で無い?
 ↓
C++14ならclang使えば? ←話が理解できないバカ

490:デフォルトの名無しさん
14/01/13 22:39:48.62
ラムダ式って言語レベルの話じゃん?
それをライブラリで何とかしようとするのがおかしい
boostになければ諦めろって

491:デフォルトの名無しさん
14/01/13 23:19:26.86
>>490
まあそうなんですけどね。

今使ってるライブラリのデフォルト引数機能が便利なので、
 ラムダで同じことができるようになるならリプレース
 そうじゃないなら継続利用(レベルアップ含む)
のどっちに行くべきか見きわめたくなって。
できないっぽいので後者で行くことになるかな。

492:デフォルトの名無しさん
14/01/14 00:41:24.49
>>491
んーと、今現在
bind(fn, 1, _1, _2 = 8);
というのを実現してるってこと?

493:デフォルトの名無しさん
14/01/14 07:01:52.07
>>492
そうですよ。
関数名とプレースホルダはちょっと変えてるけど。

494:デフォルトの名無しさん
14/01/14 12:46:18.88
関数ポインタとかラムダにオーバーロードがあればいいのに

495:デフォルトの名無しさん
14/01/14 12:53:56.29
一体何をオーバーロードする気だ

496:デフォルトの名無しさん
14/01/14 14:19:40.75
まああれだ、C++14でラムダ式にジェネリックが入るというのは必要だからだろう
多分もっとSTLが最適化出来る

497:デフォルトの名無しさん
14/01/14 14:27:51.74
とりあえずboostのoverloaded_functionつかっとけい

498:デフォルトの名無しさん
14/01/14 17:28:49.81
STL?
15年ぐらい前にそんなのあったな
まだ使ってるなんて化石も甚だしい

499:デフォルトの名無しさん
14/01/14 17:30:57.86
使える化石だからな

500:デフォルトの名無しさん
14/01/14 20:11:25.90
C#に超便利なLINQがあるだろうが
C++11ももっとSTLとかラムダ式を柔軟にしないと性能はともかくユーザー層で負ける

501:デフォルトの名無しさん
14/01/14 21:14:35.66
いいからお前は黙ってC#使ってろよ
>ユーザー層で負ける
アイドルの人気投票じゃないんだからw

502:デフォルトの名無しさん
14/01/14 21:19:48.95
STL?
15年ぐらい前にそんなのあったな
そんなメンテもされていない化石をまだ使ってるなんて

503:デフォルトの名無しさん
14/01/14 21:39:02.69
ふーん
algorithm系って何にリプレースすればいいの?

504:デフォルトの名無しさん
14/01/14 22:14:00.90
>>497
感動した!
実装は簡単ぽいな。

505:デフォルトの名無しさん
14/01/14 22:56:59.82
>>497
ちょっと苛めてみた

boost::overloaded_function<int(int),
                 int(int*),
                 int(int**),
                 int(int***),
                 int(int****),
                 int(int*****),
                 int(int******),
                 int(int*******),
                 int(int********),
                 int(int*********),
                 int(int**********),
                 nt(int***********),
                 int(int************),
                 int(int*************),
                 int(int**************)
                 >mem(int a) const;

error 'boost::overloaded_function' : テンプレート 引数の数が多すぎます

506:デフォルトの名無しさん
14/01/15 23:33:00.31
>>502
おいalgorithm系は何にリプレースすればいいんだよ?

507:デフォルトの名無しさん
14/01/15 23:47:39.55
STLじゃなくてC++標準ライブラリを使えってことだろ。
何を言っているんだオマエは。

508:デフォルトの名無しさん
14/01/15 23:52:16.47
<algorithm>はSLTだろうが。
何を言ってるんだオマエは。
それともコンテナとイテレータだけだとでも言うつもりか?

509:デフォルトの名無しさん
14/01/15 23:53:28.46
×SLT
○STL

510:デフォルトの名無しさん
14/01/15 23:54:28.36
定義を明確にせず否定も肯定もできないと思います。

511:デフォルトの名無しさん
14/01/15 23:56:39.10
>>508
STL?
そんなものがISO/IEC 14882:2011のどこに書いてあるのですか?
SGIかステパンと勘違いしてるのでは?

512:デフォルトの名無しさん
14/01/16 00:01:37.78
・STLは標準化前の遺物派
・コンテナ、イテレーター、アルゴ、ファンクタのみSTL派(string含まず)
・stringもSTL派(iostream含まず)
・テンプレートは全てSTL派
・C++の標準ライブラリは全てSTL派
・なんとなくライブラリは全てSTL派

厳密に正しいのは最初で他は誤り

513:デフォルトの名無しさん
14/01/16 00:02:19.36
>>511
だったら「STLなどというものは初めからありません」と言わなきゃつじつまが合わんだろ。
STLという言葉を使った以上、その定義や守備範囲を自分の中に持っているはずだ。
「15年くらい前にあったな」というからには、その当時は存在していたわけだ。
<algorithm>がSTLでなくC++標準ライブラリだというなら、どこかの時点で定義なり認識が変わったわけだろ。
その根拠を出せ。

514:デフォルトの名無しさん
14/01/16 00:11:43.65
根拠なんてあるわけないだろ。
差別化のネタにしたいだけなんだから。

515:デフォルトの名無しさん
14/01/16 00:12:06.32
>>513
>「15年くらい前にあったな」というからには、その当時は存在していたわけだ。
それがSGIとかステパノフなんだろ。

516:デフォルトの名無しさん
14/01/16 00:15:38.61
>>515
>>498,502

517:デフォルトの名無しさん
14/01/16 00:22:36.04
>>512のコピペとか見ろよ
・STLは標準化前の遺物派
が正しいとしても、そのSTLの範囲がなんだったかについては何も語ってないだろ。
だから2番目以降の選択肢の正誤なんてわかりっこない。
どうでもいい争いなんだからヤメトケ。

518:デフォルトの名無しさん
14/01/16 00:29:19.04
>STLは標準化前の遺物派
このコピペは修正が必要だな。
「STLは標準化前の遺物派(ステパノフのアレ、もしくはSGIのアレ)」

519:デフォルトの名無しさん
14/01/16 00:42:35.61
・STLは標準化前の遺物派
 (ステパノフのアレ、もしくはSGIのアレ)
・コンテナ、イテレーター、アルゴ、ファンクタ
 のみSTL派(string含まず)
・stringもSTL派(iostream含まず)
・テンプレートは全てSTL派
・C++の標準ライブラリは全てSTL派
・なんとなくライブラリは全てSTL派

STLという用語の根拠があるのは最初のみで
他はコンセンサスの得られない脳内定義


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch