C++14/C++1y

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:2013/10/28(月) 08:53:28.04
18 ブギ、未来を俺にくれ
3デフォルトの名無しさん:2013/10/28(月) 11:29:11.92
>>2
残念だ、その未来に君はもういないんだよ...
4デフォルトの名無しさん:2013/10/28(月) 19:27:47.38
このスレ、通し番号入ってないけど、良いの?
5デフォルトの名無しさん:2013/10/28(月) 19:40:29.79
14はどうせすぐ来年だし過去ログが必要になるようなスレでもないからなければないでべつにいいと思うよ
6デフォルトの名無しさん:2013/10/28(月) 19:40:53.14
C++11のスレは終わった
7デフォルトの名無しさん:2013/10/28(月) 20:04:57.00
C++学園の人々:飛躍と混沌の14年の巻

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

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

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

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

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

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

○autoさん
型なんかもう全部autoでいいんじゃねえかなと思わせるような八面六臂の大活躍。
不動の学園アイドルの座を射止めた彼女をD組から睨み続けるregisterさんとは目を合わせてはいけない。
8デフォルトの名無しさん:2013/10/28(月) 20:05:29.04
○数値リテラル三姉妹(十進さん、八進さん、十六進さん)
一部の教師のゴリ押しで、ケタクギリなるおかしなアクセサリーを付けさせられることになった。
汚い見た目は主にユーザー定義リテラルさんのせいらしく、恨み節が止まらない。

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

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

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

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

○Traversalさん
元Rangeさん。「お前わかりにくいから」と改名させられ、大変わかりにくくなった。
拡張for文さんが精神を病んでいく様を辛そうに眺めている。
9デフォルトの名無しさん:2013/10/28(月) 20:07:00.27
○asyncさん
入学早々D組行きを宣告された悲劇の子。
ときどき当てても反応しないと、ある先生が職員会議でもらしたばっかりに大問題になり
とても通学できない重病だと判断されたらしい。かわいそうに。

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

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

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

○禿
校長先生。動的配列さんを自分好みに魔改造すべく企んでいるという噂。
10デフォルトの名無しさん:2013/10/28(月) 20:54:50.41
面白いなあ。誰かラノベ書くしかw
11デフォルトの名無しさん:2013/10/28(月) 20:59:46.67
俺のC++達の妹は友達が少ないがこんなにかわいいわけがない
12デフォルトの名無しさん:2013/10/28(月) 21:08:09.18
C++学園キターーーー!!
13デフォルトの名無しさん:2013/10/28(月) 21:18:30.11
俺がC++学園に底辺サンプルとして拉致された件
14デフォルトの名無しさん:2013/10/28(月) 21:44:22.38
動的配列さんはC99クラスには通ったけどC11でクラスになじめず保健室登校(Optional feature)になってしまった
今では、いない子扱いされてる
15デフォルトの名無しさん:2013/10/28(月) 22:06:46.90
>>11
待て、そのfriendは危険すぎる!
16デフォルトの名無しさん:2013/10/28(月) 22:10:47.27
俺のC++コードが修羅場すぎる
17デフォルトの名無しさん:2013/10/28(月) 22:11:38.77
やはり俺のコードは間違っている
18デフォルトの名無しさん:2013/10/28(月) 22:20:04.27
俺の脳内選択肢が、C++11を全力で邪険にしている
19デフォルトの名無しさん:2013/10/28(月) 22:23:47.67
みんなC++のことが大好きで仕方ないんだね
20デフォルトの名無しさん:2013/10/28(月) 22:25:27.00
私が書けないのはどう考えてもC++の言語仕様が悪い
21デフォルトの名無しさん:2013/10/28(月) 22:32:24.16
プログラマーにしようと校長先生そっくりの禿を錬成してみたら、
俺がアスペになっていました
22デフォルトの名無しさん:2013/10/28(月) 22:51:47.32
>>20
それな。
23デフォルトの名無しさん:2013/10/28(月) 22:58:44.74
お前ら俺の同類ばっかかよw
24デフォルトの名無しさん:2013/10/28(月) 23:31:49.72
俺の教室にC++はいない
25デフォルトの名無しさん:2013/10/29(火) 01:49:56.28
Cぷらぷら!
26デフォルトの名無しさん:2013/10/29(火) 02:07:44.15
とりあえずいままで出番がなかった auto さんが大活躍してくれればおれは他どうでもいいや
27デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/10/29(火) 02:44:41.64
さすがにその場合expとeqはloop型にするだろ……常識的に考えて……
29デフォルトの名無しさん:2013/10/29(火) 02:46:32.24
bool型のtypoだ。疲れてるんだな
30デフォルトの名無しさん:2013/10/29(火) 15:34:51.26
>>27
const 付けない奴は死ねばいいのに
31デフォルトの名無しさん:2013/10/29(火) 15:55:45.92
ラムダ式を書き連ねて合成して伸ばして等間隔に刻んでサッと茹でて丼に盛って複雑な関数を作る
って書き方は、その関数の生成が実行時になる現在だと悪い冗談だけど、constexprが一般化して
コンパイル時に回るようになったら、思いの他流行りそうな気がしてる。

近い将来、関数言語かぶれ死ね!黙れロートル!というやり取りがされるのかな?とw
32デフォルトの名無しさん:2013/10/29(火) 21:40:46.16
>>31
今でも実行時じゃ無いだろ
33デフォルトの名無しさん:2013/10/30(水) 17:29:16.93
gccのトランポリンコードと勘違いしてんじゃねーの
34デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/03(日) 20:36:07.95
vectorにunique_ptrを入れていろいろやってみているんですけど、これ結構不便ですよね?
Range-based forを使おうとするとconstがなんたらかんたらでエラーが出るし、
無理に代入しようとするとmoveが起きて、元のスマポの中身が空っぽになる

イテレータでunique_ptrのポインタでも何でもいいからうまく回す方法ないですか?
36デフォルトの名無しさん:2013/11/03(日) 20:47:46.81
お前のコードが悪いんだと思うよ
37デフォルトの名無しさん:2013/11/03(日) 20:49:31.55
ttp://ideone.com/GlMvnm
コードとエラーの内容張れよ
38デフォルトの名無しさん:2013/11/03(日) 20:53:17.11
http://ideone.com/OccVCn

すみません
こんなコードで、要するに一度内容を表示してからソートした後の内容を表示したいんです
中に入れるクラスはintとは限りません(簡単のためにintにしてあります)
39デフォルトの名無しさん:2013/11/03(日) 21:18:19.87
auto_ptrの破壊的セマンティクスからmoveセマンティクスに変わっただけで、コンテナに入れられたり
デリータを指定出来るところは改良されているが、そういう用途には適してないだろ
40デフォルトの名無しさん:2013/11/03(日) 21:41:06.77
>>39
そうですか・・・ありがとうございます
大人しくshared_ptrでも使う事にします
41デフォルトの名無しさん:2013/11/03(日) 23:47:10.45
for (auto& i : v)
std::cout << *i.get() << ' ';
こんな感じでコンパイル通るけど?
42デフォルトの名無しさん:2013/11/04(月) 00:15:07.83
例として出したコードではエラーにならず動いてるのになにを問題にしているのかがわからん
43デフォルトの名無しさん:2013/11/04(月) 00:20:30.67
for (auto i : v) にしたいってことか?
44デフォルトの名無しさん:2013/11/04(月) 00:26:44.23
constなんたらだの、代入だの、forにauto使わずconst参照じゃない型を書いたんじゃねーの
45デフォルトの名無しさん:2013/11/04(月) 00:50:55.31
>>41
gcc4.8.1ですがエラーになります

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

>>44
違います

moveコンストラクタがいつ動くのかしっかりと把握しないとunique_ptrは怖いですね
楽をするならshared_ptr一本です
46デフォルトの名無しさん:2013/11/04(月) 01:10:27.94
エラーになるコードをideoneに貼れば一発でここの住人が直してくれるって言ってるんだよ。
>でも実行結果がおかしいですよね
きちんとソートされているように見えますけれど。
>moveコンストラクタがいつ動くのかしっかりと把握しないとunique_ptrは怖いですね
ちょっと言ってる意味が分からないですね。
47デフォルトの名無しさん:2013/11/04(月) 01:27:35.47
>>46
低脳はちょっと黙ってて
48デフォルトの名無しさん:2013/11/04(月) 01:37:20.87
gcc4.6.4だと動くな
49デフォルトの名無しさん:2013/11/04(月) 01:38:22.51
4.7.3と4.8.2も動くな
50デフォルトの名無しさん:2013/11/04(月) 01:39:33.95
必死ww

動かないソースコードも貼ってないのに
51デフォルトの名無しさん:2013/11/04(月) 06:34:35.12
意地でもエラーを書かないあたりは釣りなんだろう
52デフォルトの名無しさん:2013/11/04(月) 10:47:57.30
お前が書いたコードが糞でFA
53デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/04(月) 13:54:32.08
>v.push_back(std::unique_ptr<int>(new int(distribution(twister))));

氏ね
55デフォルトの名無しさん:2013/11/04(月) 14:42:05.87
これはひどい
56デフォルトの名無しさん:2013/11/04(月) 14:55:03.47
>>54
どこが死ぬに値するのか全然理解できませんが
57デフォルトの名無しさん:2013/11/04(月) 18:24:50.74
>>54
何がまずいんだっけ?
58デフォルトの名無しさん:2013/11/04(月) 18:55:08.12
デバッグしづらい
59デフォルトの名無しさん:2013/11/04(月) 19:28:11.61
複数の実引数の評価順で問題がでる場合と勘違いしてるか
右辺値をとってムーブするpush_backがあることを知らないかだろ
60デフォルトの名無しさん:2013/11/04(月) 19:37:32.08
emplace_back使うとか?
61デフォルトの名無しさん:2013/11/04(月) 20:16:45.13
敢えて言うならoperator newの後に
distributionが例外をスローすると困る?
62デフォルトの名無しさん:2013/11/04(月) 21:00:41.95
その場合は大丈夫でしょ
63デフォルトの名無しさん:2013/11/04(月) 22:32:27.25
正解は?
64デフォルトの名無しさん:2013/11/04(月) 22:33:23.35
問題ない
65デフォルトの名無しさん:2013/11/04(月) 23:13:12.62
変更に弱い(変更で問題を起こしやすい)コードではあるよな。
66デフォルトの名無しさん:2013/11/04(月) 23:38:13.41
emplace_back()を使うと実行結果がおかしくなるな
なんで?
67デフォルトの名無しさん:2013/11/04(月) 23:42:03.50
まず66のレスが馬鹿っぽいことから
原因は66のおつむにあるとみていいだろう
68デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/04(月) 23:59:18.15
そもそもintなんかvectorに直接突っ込めばいいだろ
わざわざunique_ptrなんか持ち出すまでもない
70デフォルトの名無しさん:2013/11/04(月) 23:59:58.20
大丈夫、みんなそう思ったけど敢えて突っ込んでない
71デフォルトの名無しさん:2013/11/05(火) 00:35:30.93
いやそこは突っ込みどころじゃないから
>>38
>中に入れるクラスはintとは限りません(簡単のためにintにしてあります)
72デフォルトの名無しさん:2013/11/05(火) 00:54:20.47
>>69
>>38

>中に入れるクラスはintとは限りません(簡単のためにintにしてあります)
73デフォルトの名無しさん:2013/11/05(火) 01:21:16.39
emplace_backの使い方は合ってるのか?
何書いてるのか知らんけど
74デフォルトの名無しさん:2013/11/05(火) 08:20:00.66
emlace_backはクラスにmoveコンストラクタが書いてないとコンパイル時にエラーになるな
75デフォルトの名無しさん:2013/11/05(火) 09:00:38.12
普通のコンストラクタだけで大丈夫だろ
76デフォルトの名無しさん:2013/11/05(火) 15:51:03.57
http://stackoverflow.com/questions/4303513/push-back-vs-emplace-back

右辺値参照してるのに通るんかい
77デフォルトの名無しさん:2013/11/05(火) 19:50:58.39
emplace_backの&&はテンプレートパラメータに対しての指定だから右辺値参照と確定するわけじゃない
universal referenceでぐぐれ
78デフォルトの名無しさん:2013/11/05(火) 20:11:06.59
右辺値参照、時々なんとなく分かった気になるけど、暫くしてよく考え直してみると
分かった気がしただけでやっぱりイマイチよく分かってないことに気付く。死にたいorz
79デフォルトの名無しさん:2013/11/05(火) 20:29:50.06
詰まるところpush_back()とemplace_back()の違いは何よ

いや

http://d.hatena.ne.jp/faith_and_brave/20080930/1222768173

こういう所に答えは書いてあるけどさ
いまいちピンと来ない
80デフォルトの名無しさん:2013/11/05(火) 20:33:10.05
思い切り重いクラスでもvectorに入れて速度比較してメリットを実感するしか方法はなさそうだ

universal reference 初めて聞いたわ
というかプログラミング言語C++11の日本語訳まだ出ないのか
英語版は持ってるけど目がチカチカする
ISO/IECもあるけど
81デフォルトの名無しさん:2013/11/05(火) 20:37:36.95
日本語が欲しいなら江添さん()のオナニー書がオヌヌメ。
82デフォルトの名無しさん:2013/11/05(火) 20:37:39.89
参照の縮約?
83デフォルトの名無しさん:2013/11/05(火) 20:39:16.27
>>81
C++11本書くから寄付くれって言ってた人?
有耶無耶にして逃げるのかと思ってたら、無事完成したのかw
84デフォルトの名無しさん:2013/11/05(火) 20:41:17.44
>>83
書きかけで公開したようだ
85デフォルトの名無しさん:2013/11/05(火) 20:52:53.78
>>84
なるほど、事実だけを端的に表現すると「完成はしなかった」ということかw
86デフォルトの名無しさん:2013/11/05(火) 22:01:44.75
ラストスパート中。まもなく一応の完成となる、と本人は言ってる。
87デフォルトの名無しさん:2013/11/05(火) 22:14:37.21
途中まで読んだんだけど、ひたすら規格書の仕様を
呪文のごとく垂れ流ししてるようなつまらなさ。
規格を読んでれば知ってることばかりだし
Exceptional C++とか禿本のように
読んでwktkするものではない。
88デフォルトの名無しさん:2013/11/05(火) 22:24:20.04
>>86
コア言語だけは完成、な
ライブラリは執筆の目途すら経ってないらしい
89デフォルトの名無しさん:2013/11/05(火) 22:27:01.58
そんだけのものでも、これページ数にしたら結構なもんやで
90デフォルトの名無しさん:2013/11/05(火) 22:51:11.87
>>87
いやそれでいいんだ
画面で見るのと本で読むのとではなぜか全然違う
91デフォルトの名無しさん:2013/11/06(水) 00:16:50.51
もともと日本語で読める標準C++(11)の規格の解説を書くというテーマだからそういうもの
92デフォルトの名無しさん:2013/11/06(水) 01:46:49.72
JISの事か
ゴニョ・・・・
93デフォルトの名無しさん:2013/11/06(水) 07:17:36.23
universal referenceてスコットメイヤーズの造語だった気がするけど
禿の本にも出てるんだっけ?
規格的にはreference collpasingだとか言ったと思う
94デフォルトの名無しさん:2013/11/06(水) 10:06:47.95
>>93
collapsing
95デフォルトの名無しさん:2013/11/06(水) 16:20:04.94
Varidec Templatesの使い所がいまいち分からないんだけど
うまくまとめてあるページない?
96デフォルトの名無しさん:2013/11/07(木) 19:03:11.05
型安全なprintfが作れます
97デフォルトの名無しさん:2013/11/07(木) 22:00:17.76
iostreamと同じで、真似してはいけない悪い見本ですね
98デフォルトの名無しさん:2013/11/07(木) 22:07:37.37
stream << 4 << "番目の素数は" << prime(4) << "です。" << 3.1415926 << "は円周率の近似値です。";
99デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/07(木) 23:27:04.00
そんな説明じゃ わからんだろ
正しい使い方の例はstd::threadのコンストラクター
101デフォルトの名無しさん:2013/11/08(金) 00:21:50.94
03までで型の数の制限無し・・・は無理だから制限のゆるいtupleをどう実装するか考えれば
variadic templateのありがたみと使い所の一つは理解できるでしょ
102デフォルトの名無しさん:2013/11/08(金) 07:00:33.48
>>100
いやemplace_pushの方だろう
103デフォルトの名無しさん:2013/11/09(土) 04:59:13.42
このアニメで久しぶりに萌え豚の感覚が蘇った気がする
104デフォルトの名無しさん:2013/11/09(土) 05:00:13.92
ごめんまちがえた
105デフォルトの名無しさん:2013/11/09(土) 11:40:28.99
>>104
どこ?紅以外にあるのか?
106デフォルトの名無しさん:2013/11/10(日) 15:35:37.68
>>95
std::functionの仕様とかみてみ
107デフォルトの名無しさん:2013/11/10(日) 15:52:03.54
14になってもまだ自動委譲搭載されないのかよ
何とかしろよハゲ、残った両サイドの毛も全部引き抜くぞ
108デフォルトの名無しさん:2013/11/10(日) 15:58:11.26
>>107
そんな提案あったっけ?
109デフォルトの名無しさん:2013/11/10(日) 16:00:02.53
Java使いは身の程知らん癖にC++をJava化しようとするから嫌いだ
110デフォルトの名無しさん:2013/11/10(日) 16:01:10.48
111デフォルトの名無しさん:2013/11/10(日) 16:05:06.13
>>110
きもいな
112デフォルトの名無しさん:2013/11/10(日) 16:14:09.94
>>111
C++がきもいのは今に始まった事じゃないだろ

ともかく、ポインターに対する委譲のために
ひたすら、関数の引数を同じ名前の関数に引き渡すとかやってらんない。
コンセプトマップさんが生きてりゃ似たようなコト出来たんだがな。
惜しい人をなくしたもんだ。
113デフォルトの名無しさん:2013/11/10(日) 16:33:28.81
C++のスレ…だよね?
114デフォルトの名無しさん:2013/11/10(日) 17:33:24.95
「まだ C++ ではないもの」のスレだ
115デフォルトの名無しさん:2013/11/10(日) 20:12:45.88
助けてびよーねすっぽすっぽ先生
116デフォルトの名無しさん:2013/11/10(日) 20:19:08.29
びょーんすぽすっぽだろ。
117デフォルトの名無しさん:2013/11/10(日) 20:24:40.51
自慢じゃねーが英語は分かんねーぞ!
誰か>>110を日本語で説明してくれろ
118デフォルトの名無しさん:2013/11/10(日) 20:35:00.09
プログラマのほとんどが英語を理解できない現状では
日本語の参考書は必要
119デフォルトの名無しさん:2013/11/10(日) 21:01:05.25
VC++2010のratio_equalとratio_lessがバグってることに気付いた。
2012では直ってる?
120デフォルトの名無しさん:2013/11/10(日) 21:01:39.68
std::ratio_equalとstd::ratio_less ね。
念のため
121デフォルトの名無しさん:2013/11/10(日) 21:31:43.45
>>117
英語読まんでも
this is new stuff
ってとこから後のコード例だけ見れば何となく分かる

委譲する関数一個ずつ書かされるくらいなら今のままでいいよな
最後の方に提案外だけどpublicメンバーを一括委譲する案も出てるけど
個人的にはたぶんそっちしか使わないと思う
書き方は
inline m_pimpl;
とかの方がいいな、inline namespaceとなんか似てるし
122デフォルトの名無しさん:2013/11/10(日) 21:35:07.14
usingはきもいよね = もそうだけど
123デフォルトの名無しさん:2013/11/10(日) 22:06:33.22
>>121
委譲する関数名を書くのはIDEのコード補完が助けてくれそうな気がする。
ただ、usingだと後に続くのがネームスペースなのが委譲関数なのか特定できない気がする。
using以外の新しいキーワード導入してほしい。
124デフォルトの名無しさん:2013/11/10(日) 22:13:59.05
C++は機能が少なすぎる
125デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/10(日) 22:18:57.79
>>125
ソースが巨大AAというのも探せばありそうだなw
127デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/10(日) 22:26:43.93
型が違うんだからそりゃそうだろ
129デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/10(日) 22:39:01.24
>>128
メンバにラムダを持つクラスが作れないってことか
131デフォルトの名無しさん:2013/11/10(日) 22:40:55.44
>>130
つ function
132デフォルトの名無しさん:2013/11/10(日) 22:46:06.47
EffectiveC++14はよ
133デフォルトの名無しさん:2013/11/10(日) 22:49:47.26
>>132
おっと、それはVC++がC++11対応を終えるまで待っていただこう
134デフォルトの名無しさん:2013/11/10(日) 22:51:10.60
一生でないな
135デフォルトの名無しさん:2013/11/10(日) 22:58:58.72
>>131
重いよー
136デフォルトの名無しさん:2013/11/10(日) 23:25:06.08
C++のどこを指して機能が少なすぎると言ってるのか全く理解出来ないが
(OSのエントリポイントをコードできないという意味か?)
C++は最高の柔軟性を持っている。アセンブラを除けば他の言語に出来て
C++に出来ない事は存在しない
137デフォルトの名無しさん:2013/11/10(日) 23:29:29.85
標準ライブラリが少ないというのには同意する
138デフォルトの名無しさん:2013/11/10(日) 23:37:58.19
他の言語がありすぎな気も
139デフォルトの名無しさん:2013/11/10(日) 23:43:02.49
boostさんがいれば大概のことはなんとかなる
140デフォルトの名無しさん:2013/11/10(日) 23:56:02.18
141デフォルトの名無しさん:2013/11/10(日) 23:57:21.87
>>140
記述方式と言語の能力をごっちゃにしてる当たり「高級」言語しか使えないの丸見え
142デフォルトの名無しさん:2013/11/11(月) 00:11:14.72
127 は型が「違う」のではなく「同じである保証がない」
つまりは「同じであることに依存してはならない」ということだ

C++ の元来のポリシーからして複数の typedef や typename が
たまたま同じなら通るわけで、127 が NG なのは唐突な印象だが
143デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/11(月) 00:16:18.11
VLAISとかgccが独自拡張してるのを追ってったらなんぼでもあるだろ
古い言語でもPascalの関数内関数と同じ機械語パターンはC++のラムダじゃ吐けないが
145デフォルトの名無しさん:2013/11/11(月) 00:17:40.35
gccはデファクトスタンダードなのでgccの拡張を取り込んでいない
標準規格のほうが規格違反。
146デフォルトの名無しさん:2013/11/11(月) 00:18:55.74
>>142
結局記述方式の問題だろ?
147デフォルトの名無しさん:2013/11/11(月) 00:28:12.95
>>146
一致を狙ってくる意図のほうだと思うが
148デフォルトの名無しさん:2013/11/11(月) 00:33:43.08
Cにウンコな記述方式を追加したのがC++なんだから
記述方式を否定したら何も残らん
149デフォルトの名無しさん:2013/11/11(月) 00:41:27.94
って事は今の言語はみんなウンコ
150デフォルトの名無しさん:2013/11/11(月) 00:55:07.19
>>123
C++03の時点でusingをclass内に書くとメンバー関数の
アクセス権昇格と降格に使えるようになってるから問題ない。
C++03の知識すら無いのにこのスレくんな
151デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/11(月) 02:08:13.18
なるほど、確かにそういうのはアリかも

そういえばスマートポインタが絡むとどう宣言するか難しいな
153デフォルトの名無しさん:2013/11/11(月) 07:06:35.91
ポインターに限定せず、指定した変数の->が
自動で呼ばれる仕様にしとけばいいんじゃね。
委譲用の関数がコンパイル時に自動生成される実装に
なってりゃそれ程難しくもない。
154デフォルトの名無しさん:2013/11/11(月) 13:16:54.80
多重継承恐怖症患者の憂鬱
155デフォルトの名無しさん:2013/11/11(月) 14:03:59.01
C++がやっぱり覇権言語のような気がする
156デフォルトの名無しさん:2013/11/11(月) 14:31:55.45
>>154
多重継承じゃポインターは継承できないぞ
157デフォルトの名無しさん:2013/11/11(月) 15:33:24.45
イミフ
158デフォルトの名無しさん:2013/11/11(月) 23:00:37.29
関数の戻り値から単純な図形と2次Bezierぐらいしか対応して無いPainter拾って来て、
3次BezierとSplineを追加したいなんて時に委譲すんだが
かったるいんだよな。特に委譲先のメンバーが20個以上あるような場合。
159デフォルトの名無しさん:2013/11/12(火) 00:22:39.31
gccのfloat最適化が期待したほどじゃなかった人?
160デフォルトの名無しさん:2013/11/12(火) 08:45:52.81
>>159
誤爆か?
161デフォルトの名無しさん:2013/11/21(木) 12:03:51.85
質問です

http://ideone.com/LDs6Av

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

この例ではdoubleと書いてありますが、templateで他の型も使えるようにしたいと思っています。
162デフォルトの名無しさん:2013/11/21(木) 12:57:06.26
テンプレにすりゃいいんじゃねーの
163デフォルトの名無しさん:2013/11/21(木) 14:05:23.08
>>162
ありがとうございます

http://ideone.com/WPhg2Q

これで行けそうです
classの中でoperator*を定義しようとすると、もう一つのclassのdがprivateで
型を取得出来ないので、アクセサを付けるとカプセル化を破る事になるし、
だったらfriendでoperator*を外部に関数で定義した方が良さそうでした
164デフォルトの名無しさん:2013/11/22(金) 07:58:38.52
んな現行規格の話はC++初心者スレで聞けよ
165デフォルトの名無しさん:2013/11/22(金) 10:45:50.90
decltypeが現行規格か?C++11ならそうだけど
初心者スレは03までじゃないとスレチな気が
166デフォルトの名無しさん:2013/11/22(金) 12:34:18.94
>>165
スレタイ見て物を言え
167デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/22(金) 13:34:32.78
>>167
typeを外に晒してもoperatorの戻すtypeは結局decltypeが必要になるんじゃね?
どんなtypeとどんなtypeを演算するのかわからないんだから
169デフォルトの名無しさん:2013/11/22(金) 14:16:20.77
>>168
それは確かに C++11 で改良された点だが
cout<< に流せる型なら特殊化でもしておけば?

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

C++11 なら、これも type_traits や static_assert でもうちっと善処できるけど
170デフォルトの名無しさん:2013/11/22(金) 14:17:40.69
特殊化したんじゃtemplateにする意味がない
どんな型でも受けたいんだから
171デフォルトの名無しさん:2013/11/22(金) 14:28:49.50
結局>>167でdecltypeを使わずに具体的にどう書くかは示されてないのか
172デフォルトの名無しさん:2013/11/22(金) 14:29:55.90
あるいは何型の戻りを期待するのか陽に指定とかね
operator * では無理だけど、そんなら普通の関数だし
173デフォルトの名無しさん:2013/11/22(金) 14:42:23.80
どんな型でもって、特定のメソッド要求してる時点で型が限定されてんじゃん?
174デフォルトの名無しさん:2013/11/22(金) 17:46:59.67
>>173
特殊化されてない同名メソッドと
型に付随する特定のメソッドとは別概念じゃん?
175デフォルトの名無しさん:2013/11/22(金) 17:51:22.08
はよ初心者スレに帰れよ
176デフォルトの名無しさん:2013/11/22(金) 18:03:43.31
ガタガタ抜かさんと>>167書いた奴はideone.comに何かプログラム例上げてみ
177デフォルトの名無しさん:2013/11/22(金) 18:18:17.64
>>176
やだね、べろべろばー
178デフォルトの名無しさん:2013/11/22(金) 18:50:08.40
書けない癖に偉そうな口を聞くからそうなるんだよアホ
179デフォルトの名無しさん:2013/11/22(金) 20:29:56.47
>>178
煽れば何か見せてもらえると思ってんだろバーカ
180デフォルトの名無しさん:2013/11/22(金) 23:43:06.64
お前のは見たくないからいいよ。
181デフォルトの名無しさん:2013/11/23(土) 02:17:07.60
勿体付けてるんじゃなくて、本当に書けないのは誰が見ても分かる
182デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/23(土) 07:59:59.46
class num2 { friend num; double a; num2(double src) : a(src) { } };
としてもっと完全に隠蔽すべきだったな
184デフォルトの名無しさん:2013/11/23(土) 11:22:58.52
>>182-183
スレ違いだボケ
185デフォルトの名無しさん:2013/11/23(土) 12:36:41.30
threadとかasync周りについて詳しく解説したページない?
何かよくわからん
186デフォルトの名無しさん:2013/11/23(土) 13:07:54.38
>>185
このスレで聞くな
187デフォルトの名無しさん:2013/11/23(土) 13:22:08.54
threadはともかくasyncは出来損ないなので勉強するだけ無駄
188デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/23(土) 13:28:58.41
>>188
荒らしかよおめーは
190デフォルトの名無しさん:2013/11/23(土) 13:47:35.56
相手されないと死ぬ幼児です
191デフォルトの名無しさん:2013/11/23(土) 17:19:44.89
threadはどうなの
C++14で何か変更あるの
192デフォルトの名無しさん:2013/11/23(土) 18:18:35.60
shared_(mutex|lock)
193デフォルトの名無しさん:2013/11/23(土) 18:34:32.77
async 件、誰か kwsk!
194デフォルトの名無しさん:2013/11/23(土) 20:30:20.81
>>9
195デフォルトの名無しさん:2013/11/24(日) 01:04:48.21
196193:2013/11/24(日) 02:46:41.05
ごめん少し言葉足らずだった
asyncができそこないって件kwsk!
197デフォルトの名無しさん:2013/11/24(日) 04:47:47.62
getせずにfutureが破棄されたらどうすんのか決まってなかったけど、そのままデタッチしたら危ないから終了までブロックするようにした。
そしたら、
「それasync違うじゃん、止まってほしくない時まで止まっちゃうの問題じゃね?非同期処理を行いたい時はUIスレッド止めずにバックグラウンドで何かしたいときとかなのに!」
とか、
「非同期ならそのスレッド止めずに結果はコールバックで受け取るようにすべきで、そのライブラリ無いのおかしくない?でもそれ作ったらいまのasyncいらんよね。」
とか、
「Windowsだとこんな使い方してもスレッド起動のコストでかすぎて大抵遅くなるだけだわー」

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

違ったら詳しいひとツッコミよろ
198デフォルトの名無しさん:2013/11/24(日) 08:28:19.73
The C++ Standard Library 2nd ed - A Tutorial and Reference - Nicolai M. Josuttis

http://www.amazon.co.jp/The-Standard-Library-Tutorial-Reference/dp/0321623215

これいいな
C++11わからんとか言ってるやつはここのサンプルプログラムを手で打ち込んで全部試してみれ
英語版しかないのが玉に瑕だがそんなに難しい英語じゃない
199デフォルトの名無しさん:2013/11/24(日) 10:01:08.30
時代はC++14
200デフォルトの名無しさん:2013/11/24(日) 11:33:31.84
コンパイラがない
201デフォルトの名無しさん:2013/11/24(日) 11:38:02.86
僕達にはclangがある
202デフォルトの名無しさん:2013/11/24(日) 11:55:58.66
vc++のことも忘れないであげてください
203デフォルトの名無しさん:2013/11/24(日) 12:57:42.87
パターンマッチは入らないのかな
204デフォルトの名無しさん:2013/11/24(日) 14:05:48.12
スマポが配列を指す時に苦労した
これデフォルトのデリータがdeleteなんだな
だからカスタムデリータでdelete[]をラムダ式か何かで指定するか、
std::default_delete()を使わないといけないのか
205デフォルトの名無しさん:2013/11/24(日) 14:42:02.32
デフォで配列版が用意されてるのはunique_ptrだけなんだな。
なぜだろ?
206デフォルトの名無しさん:2013/11/24(日) 16:10:40.65
>>205
オブジェクトを複数のオブジェクトで共有するならまだしも、
生配列を複数のオブジェクトで共有して何に使うんだよ。
要は生配列共有すんなって事だ。
207デフォルトの名無しさん:2013/11/24(日) 16:20:29.44
vectorかarrayを使っておけというところじゃね。

C++の動的配列って中途半端だよね。
delete[]で各要素のデストラクタ呼べるように
サイズとか内部的に持っているのに普通には使えないとか。
deleteとdelete[]使い分けろとか。
208デフォルトの名無しさん:2013/11/24(日) 16:38:04.69
>>207
new T;で生成したオブジェクトdeleteする時にnew T[];とどうやって区別するんだ。
常にnew T[]した時余計な情報載せるのか?
209デフォルトの名無しさん:2013/11/24(日) 16:59:52.30
>>207
デストラクターが無い場合に要素数を持たないようメモリをケチること許す言語仕様ゆえ
210デフォルトの名無しさん:2013/11/24(日) 17:07:57.10
>>209
Cの配列と互換性持たせるためでもあるな。
211デフォルトの名無しさん:2013/11/24(日) 17:13:06.24
それは関係ないんじゃ
使う側が見たnew式の結果は区別が付かないだから
212デフォルトの名無しさん:2013/11/24(日) 17:19:54.68
>>206
配列の時だけってか?
213デフォルトの名無しさん:2013/11/24(日) 21:23:17.89
>>205
unique_ptrには他のスマポと違ってコピーコンストラクタがないから
配列版=>単一版への誤ったコピーが起きにくい。
214デフォルトの名無しさん:2013/11/24(日) 22:22:47.31
>>207
ぶぁか
215デフォルトの名無しさん:2013/11/24(日) 23:26:15.38
>>211
単体のnewに要素数情報乗っけられるのも困るな
1000回newしたら8000バイト近くdeleteの為だけに主記憶領域食われるんだからな
216デフォルトの名無しさん:2013/11/24(日) 23:41:30.04
>>213
テンプレートコンストラクタだから正しく言うとコピーコンストラクタじゃない
217デフォルトの名無しさん:2013/11/24(日) 23:49:40.23
コピコンじゃないの!?
218デフォルトの名無しさん:2013/11/25(月) 00:09:23.90
コピコンが無いってのは確かだが、配列=>単一のコピーの話をするんであれば問題なのはそこじゃない
219デフォルトの名無しさん:2013/11/25(月) 01:00:10.11
配列=>単一のコピーってどういう話?
220デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/25(月) 09:59:08.91
shared_from_this()というのがいまいち理解できない

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

shared_ptrで管理されてるオブジェクトがなんらかの事情で普通のポインタで渡されたときに
そのポインタから元のshared_ptrと管理権を共有するshared_ptrを得るというイディオムで使うんだけどな
223デフォルトの名無しさん:2013/11/25(月) 22:26:31.25
224デフォルトの名無しさん:2013/11/25(月) 22:40:55.34
なるほどかなり特殊なケースみたいだな
225デフォルトの名無しさん:2013/11/25(月) 22:42:55.82
>>222
「shared_ptrで管理されてるオブジェクトがなんらかの事情で普通のポインタで渡されたときに
そのポインタから元のshared_ptrと管理権を共有するshared_ptrを得る」というイディオム

長えよ
226デフォルトの名無しさん:2013/11/26(火) 00:02:08.16
イディオム名はそのまま『shared from this イディオム』でそれはどういうもの?って説明が>>222だろ
227デフォルトの名無しさん:2013/11/26(火) 21:33:57.58
boost::shared_ptrに記憶領域の番地を入れた際、
要約値を鍵にした連想配列(hash map)に
記憶領域の番地を格納。
boost::shared_from_thisを実行した際、
この連想配列からthisの持つ番地で、
boost::shared_ptrをとってくるって仕組みじゃないか?
228デフォルトの名無しさん:2013/11/26(火) 22:00:12.84
内部にthisを指すweak_ptr持ってるだけだよ
後はshared_ptrのコンストラクタがenable_shared_thisを継承したクラスを特別扱いしている
229デフォルトの名無しさん:2013/11/26(火) 22:40:40.37
参照カウンターの整合性はどうなるんだ?
230デフォルトの名無しさん:2013/11/27(水) 09:48:18.32
>>229 どんなケースで問題が起こると思ってるの?
231デフォルトの名無しさん:2013/11/27(水) 18:38:48.13
newして返したboost::shared_ptrと、
boost::shared_ptrで確保した、boost::shared_ptrを返した時。
特に片方が共同所有権としてつかわれ、
片方がEventの委譲用とかよくありがちじゃん。
232デフォルトの名無しさん:2013/11/27(水) 18:42:03.66
それで何か問題になるのか
233デフォルトの名無しさん:2013/11/27(水) 19:47:52.61
>>232
二重delete
234デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/28(木) 01:04:05.46
>>231
> newして返したboost::shared_ptr
わからん。何を new ?返すってどこからどこに?
> boost::shared_ptrで確保
わからん。 shared_ptr に何かを「確保」する機能なんて無いよね?

さっぱりわからん。
237デフォルトの名無しさん:2013/11/28(木) 10:41:28.04
>>231 >>233
こいつはたぶんshared_ptrそのものを理解してない
238デフォルトの名無しさん:2013/11/28(木) 19:18:57.03
普通に使えば普通に使えるライブラリを
浅知恵で細工して可読性もパフォーマンスもセキュリティもぶち壊す

C++ではよくあること
239デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/29(金) 01:14:30.49
うん
241デフォルトの名無しさん:2013/11/29(金) 10:18:00.12
static_pointer_castとか面倒だけどこれ使わないと未定義の動作になっちゃうのね
242デフォルトの名無しさん:2013/11/29(金) 10:37:25.12
std::accumulateって情報落ちの対策してるの?
243デフォルトの名無しさん:2013/11/29(金) 11:42:28.09
全然
244デフォルトの名無しさん:2013/11/29(金) 12:21:41.45
なんで現行規格や規格外の話ばっかしてんの?
245デフォルトの名無しさん:2013/11/29(金) 18:26:52.04
規格とか仕様とかどうでもいいと思ってるから
246デフォルトの名無しさん:2013/11/29(金) 21:46:12.55
もうそれ以上VC++さんを責めるのはやめてあげてください。
Windowsユーザーを嫌いになっても、VC++のことは嫌いにならないください!
247デフォルトの名無しさん:2013/11/30(土) 07:24:14.22
2013でもconstexprコンストラクタが使えないんだっけ?
248デフォルトの名無しさん:2013/11/30(土) 12:44:25.52
スレ違い
249デフォルトの名無しさん:2013/11/30(土) 15:16:58.20
じゃあC++1yの話題をふってくれ
250デフォルトの名無しさん:2013/11/30(土) 21:20:02.98
何も無理してスレを伸ばすことは無い。
251デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/12/01(日) 09:53:12.44
そりゃそれ自体はコピーだからな
253デフォルトの名無しさん:2013/12/01(日) 10:38:08.55
ああなるほど
254デフォルトの名無しさん:2013/12/01(日) 11:05:40.87
ついでにvoid f(T &&)にしたところで
const int &自体はconstじゃないから
255デフォルトの名無しさん:2013/12/01(日) 13:17:53.77
コピーだからじゃなくて、fooに渡されるのはstd::reference_wrapper<T>だからだろ
256デフォルトの名無しさん:2013/12/01(日) 13:55:11.13
std::reference_wrapper<int> じゃないの
257デフォルトの名無しさん:2013/12/01(日) 14:07:07.83
そうだね
>>251のfooのTは
1番目 std::reference_wrapper<int>
2番目 std::reference_wrapper<const int>
になる
258デフォルトの名無しさん:2013/12/01(日) 15:15:10.61
うへ('A`)
259デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/12/01(日) 16:27:32.40
間違ってるね
261デフォルトの名無しさん:2013/12/06(金) 19:51:23.63
Standard Library 2ndのasync/thread回りをようやく読み終えた
これは難しい・・・

次はC++ Concurrency in Actionを読むけどどこまで理解出来るやら・・・
しかしこれを理解しないとマルチコアのメリットが活かせないわけだしなあ
262デフォルトの名無しさん:2013/12/06(金) 20:17:59.91
何を言っているんだ
 マルチスレッドが難しい→まあそうだがスレ違いだ
 C++のasyncが難しい→んなもの知らなくてもマルチコアは活かせる
263デフォルトの名無しさん:2013/12/06(金) 20:26:17.66
ライブラリ作る人のための最低限のツールだもんね。
GC周りと一緒で。
264デフォルトの名無しさん:2013/12/06(金) 20:27:53.55
OpenMPとかだろ?そういうのじゃなくて移植性の高いのが欲しいわけで
265デフォルトの名無しさん:2013/12/06(金) 21:00:59.87
ぶっちゃけスレ違いです。
266デフォルトの名無しさん:2013/12/06(金) 21:25:50.97
asyncとthreadはスレ違いじゃないだろ
267デフォルトの名無しさん:2013/12/06(金) 21:33:06.89
スレを扱うからスレは違って当たり前・・・w
268デフォルトの名無しさん:2013/12/06(金) 21:39:56.32
どうでもいいけどなんでいつもageて書いてんの?バレバレなんですけど
269デフォルトの名無しさん:2013/12/06(金) 21:58:36.96
sageる義務がないからさ
そんなことも知らないの? 馬鹿なの? 死ぬの?
270デフォルトの名無しさん:2013/12/06(金) 22:02:52.04
あーだめだこいつ頭おかしいや
相手にしないでおこう

OpenMPはスレ違いだが、threadやasyncはスレ違いではない
れっきとしたC++11の話題だ
271デフォルトの名無しさん:2013/12/06(金) 22:11:13.55
どうでもいいことは始めからぬかすな 顔おかしいの? 不細工なの? 相手いないの? 単為生殖なの?
272デフォルトの名無しさん:2013/12/06(金) 22:58:05.20
>>270
ここはC++第三版(2011/9/1改訂)のスレではない

 馬 鹿
273デフォルトの名無しさん:2013/12/07(土) 00:41:02.43
11で追加された新参者だから14/1yで変更されない保障はないっていう意味だとか
274デフォルトの名無しさん:2013/12/07(土) 02:34:31.91
C++11の話題はスレ違い
async退学の話ならして良い
275デフォルトの名無しさん:2013/12/07(土) 05:34:44.72
clangでも入れるしかないか
VSに入れられるんだからそれで遊べる
276デフォルトの名無しさん:2013/12/07(土) 11:24:24.94
現行規格はスレ違い
277デフォルトの名無しさん:2013/12/07(土) 11:27:15.41
じゃあ次期の話をしようか。
委員会ドラフトってどうなったの?
無かったことにされるレベルで変更入りまくり?
278デフォルトの名無しさん:2013/12/07(土) 13:37:43.49
C++11のスレがないじゃないか
279デフォルトの名無しさん:2013/12/07(土) 13:51:57.55
C++相談室 part107
http://toro.2ch.net/test/read.cgi/tech/1384818417/
【初心者歓迎】C/C++室 Ver.88【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1384061494/
280デフォルトの名無しさん:2013/12/07(土) 15:19:00.84
C++11は現行規格なわけだし、
特別扱いする必要は無いんだお
281デフォルトの名無しさん:2013/12/07(土) 16:13:58.10
了解した
しかし今のC++スレの質の低下はひどいもんだ
あそこでスレッドやらasyncを質問して果たして答えてくれるのやら
試してみよう
282デフォルトの名無しさん:2013/12/07(土) 18:48:32.64
必要だと思う人がいるのなら、C++11のスレ作ったらいいんじゃないの?
283デフォルトの名無しさん:2013/12/07(土) 19:03:22.93
アイちゃん認定されそう
284デフォルトの名無しさん:2013/12/07(土) 19:48:05.55
C++14をやるのにどのコンパイラ使っている?
VC2013?

>>281
実際にthread,asyncを使っている奴は少ないだろうからな
対応遅すぎたって感じだし
285デフォルトの名無しさん:2013/12/07(土) 21:20:09.07
VS2012でも2013でもいいからClangを入れてしまえばいいだろう

threadは実際にマルチスレッドプログラミングをするにはプリミティブ過ぎて使いにくいから
asyncが考えられたんだろうが、まだ完成度が低い
それにデッドロックやレース状態、リソーススタベーションを起こさずにスラスラプログラムを
書ける奴がどの位いるやら
C++14でもっとまともになるっしょ
286デフォルトの名無しさん:2013/12/07(土) 21:36:02.04
僕ちゃんバカだからVSでのビルドわかんなーい><
287デフォルトの名無しさん:2013/12/07(土) 22:04:49.66
何言ってんの

"clang visual studio 2013" とかでぐぐればいくらでも出てくるだろ
288デフォルトの名無しさん:2013/12/08(日) 05:08:13.45
C++14なんてもう出るのか。C++11からすぐだったけど、何か不具合でもあったの?
禿も、またプログラミング言語C++書き直しやん。
289デフォルトの名無しさん:2013/12/08(日) 08:32:22.14
これからのコンパイラはClangだらけになったりして
一番対応が早くて楽だしな
290デフォルトの名無しさん:2013/12/08(日) 11:06:23.03
>>287
ぜんぜんないよ!失敗談はたまにでてくるけど
291デフォルトの名無しさん:2013/12/08(日) 13:11:37.44
MSがclangを採用するって噂も一時期あったね、そういえば
292デフォルトの名無しさん:2013/12/08(日) 14:14:26.48
よく知らんけどclang使うとなんかいいことあんの?
293デフォルトの名無しさん:2013/12/08(日) 14:48:39.05
>>292
今すぐC++14が使える
294デフォルトの名無しさん:2013/12/08(日) 15:39:04.90
オナニーができます
295デフォルトの名無しさん:2013/12/08(日) 16:43:50.07
>>291
clang関係のリクルート出してた件?
VSで採用って話までは疑問視されてたような
でも何やらされてるんだろうね
296デフォルトの名無しさん:2013/12/08(日) 17:19:07.49
そそ、それ
疑問視されてたって話は知らなかったけど

IntelliSenseとかIDE側で使っているのかも知れないね
297デフォルトの名無しさん:2013/12/08(日) 17:29:11.81
>>296
使ってたらコードが混ざってるだろ。
VSでclangを使うことを想定した作業とか、
差し替えた時の互換性を高める作業とか、そのへんじゃねーの?
298デフォルトの名無しさん:2013/12/08(日) 17:43:25.22
この辺じゃないの? C++ AMP の clang 対応。
http://hsafoundation.com/bringing-camp-beyond-windows-via-clang-llvm/
299デフォルトの名無しさん:2013/12/08(日) 19:52:19.02
C++ AMP がMSのC++後続の標準の言語になるのかね
規格のC++じゃ時代遅れなのかもな。C#で脱C++を開始した感じがあるからな
300デフォルトの名無しさん:2013/12/08(日) 20:26:03.49
C++ AMPが何か知ってから語れ。
301デフォルトの名無しさん:2013/12/08(日) 20:35:43.88
>>300
規格のC++じゃヘテロ対応できないだろ。GPU載っているCPUが普通だし
そんなのに対応するのにC++プラスアルファが必要で独自拡張。
302デフォルトの名無しさん:2013/12/08(日) 21:02:22.52
脱C++
303デフォルトの名無しさん:2013/12/09(月) 00:05:43.36
VS2013Expressでのclangのビルドってどうやるんですか?
304デフォルトの名無しさん:2013/12/09(月) 00:24:11.61
>>303
clangをビルドしたいのかclangでビルドしたいのか。
305デフォルトの名無しさん:2013/12/09(月) 00:26:22.84
>>301
それ、プラスするもんであって後続として元の物を置換するもんではないだろ。
306デフォルトの名無しさん:2013/12/09(月) 00:45:43.62
スレ違いになるけど、いまデスクトップ用のGPGPUプログラミングって何が多いん?
C++AMP、openCL、CUDA等のGPUベンダの言語...
先端大好きのC++14野郎のお前らはGPGPUプログラムしている?
307デフォルトの名無しさん:2013/12/09(月) 00:59:40.49
>>305
ClangをVS2013に統合したいんじゃないのかな
308デフォルトの名無しさん:2013/12/09(月) 01:04:03.94
>>307>>304あてだった
309デフォルトの名無しさん:2013/12/09(月) 01:09:58.35
>>307
いやだから…
単に「clangとの互換性向上(統合含む)目的」とか
「MSがC++ AMP絡みでclang組み込む目的」とか
って推測なら、ああそうかもね、で済む話だろ

何故か>>299が「C++ AMP」が「MSのC++後続の標準の言語」
だとか変なこと言い出すから>>300みたいなツッコミされてんだよ
310デフォルトの名無しさん:2013/12/09(月) 01:16:50.36
>>308
アンカミスかよ…変だとは思ったけど>>299,301ならやりかねないと思ってその流れでレスしちまったorz

まず間違いなくそっちだろうけど、「clang"の"ビルド」と「clang"で"ビルド」を間違えてるなら指摘すべきじゃないの?
311デフォルトの名無しさん:2013/12/09(月) 06:35:27.00
cの__Genericどう?いい感じ?
visualCみたいに使えるのかな?
他にやることあって出来ないんだよね
312デフォルトの名無しさん:2013/12/09(月) 06:50:43.07
C++にはテンプレートがあるし…
313303:2013/12/09(月) 10:30:36.34
すんません、clangをビルドしたいんです
314デフォルトの名無しさん:2013/12/09(月) 10:34:23.11
clangはclangでできてないの?
315デフォルトの名無しさん:2013/12/09(月) 10:50:48.50
VS2013のbuild targetは最近入ったばっかりだからVSは古いの使え。
316デフォルトの名無しさん:2013/12/09(月) 12:20:25.97
>>313
Windows でやりたいのなら
教えて君には厳しすぎる。あきらめろん
ちなみに自称上級者の俺も(ry
317デフォルトの名無しさん:2013/12/10(火) 08:42:48.32
318デフォルトの名無しさん:2013/12/10(火) 09:06:11.37
319デフォルトの名無しさん:2013/12/10(火) 09:06:59.17
>>311
cのすれで聞けよ
320デフォルトの名無しさん:2013/12/10(火) 16:08:58.08
茶化している奴がこのスレにはいるみたいなんだよ
炎上学習法という正式名称もあるみたいだけどw、このスレには通用しないから
321デフォルトの名無しさん:2013/12/10(火) 18:11:33.09
>>311
最悪
お前と同じ
322デフォルトの名無しさん:2013/12/13(金) 23:25:05.29
C++って肥大化しすぎてもう終わりだ、なんて声聞くけど、代替言語あるの?
D言語ってどうなった?消えた?
323デフォルトの名無しさん:2013/12/13(金) 23:31:56.25
facebookが採用したとかなんとか
324デフォルトの名無しさん:2013/12/13(金) 23:38:21.13
facebookってPHP採用して、PHPが広く普及するのを牽引したらしいけど、
Dもそうなるのか?まさかな…
325デフォルトの名無しさん:2013/12/14(土) 00:23:27.61
C++2011はオナニー言語なので代替など必要ありません。
実用には2003をお使い下さい
326デフォルトの名無しさん:2013/12/14(土) 00:41:41.83
時代は Haskell
C++er なら割と簡単に Haskell を使い熟せると思うなぁ
327デフォルトの名無しさん:2013/12/14(土) 05:50:08.94
>>326
関数を作ったり使ったりはわりと簡単
コンピネータまでいくと概念を理解できるかどうかだけど

問題は副作用の記述が面倒なところ
最初は文字列の表示もよくわからなかったよ
328デフォルトの名無しさん:2013/12/14(土) 08:27:20.84
グリーがハスケル使ってたりするな。
329デフォルトの名無しさん:2013/12/14(土) 10:37:11.59
ところで来年は本当に規格が改訂されるんだろうな
0xとか言い続けて2009年までに出せなかった能無し共の仕事は信用ならない
330デフォルトの名無しさん:2013/12/14(土) 11:11:50.60
0x0b年に出たんだから良いではないか
331デフォルトの名無しさん:2013/12/14(土) 11:14:27.04
GHもそんなこと言ってたな
332デフォルトの名無しさん:2013/12/14(土) 11:19:59.15
0xXXでなく0xだったのでその解釈はおかしい
333デフォルトの名無しさん:2013/12/14(土) 11:22:07.81
凄腕コンパイラ製作者のN氏は袖をまくりあげながらこう言い放つのだった
334デフォルトの名無しさん:2013/12/14(土) 11:24:18.18
>>329
concept入らないと出さないでしょ
335デフォルトの名無しさん:2013/12/14(土) 11:26:45.72
つまりは泥沼という訳ですね
336デフォルトの名無しさん:2013/12/14(土) 11:30:12.71
>>332
メンドくせえな
16進数ってのを分かり易いように0x付けただけだよ

じゃあもう一度な
16進数で0b年に出たんだから良いではないか
337デフォルトの名無しさん:2013/12/14(土) 11:40:16.54
>>325
autoは使える
338デフォルトの名無しさん:2013/12/14(土) 11:50:00.42
>>336
もともと09年までに出す予定で0xと称していたものを
出せなかったら「0xを0?hと解釈すれば問題ない」などとのたまう
最低のゴミクズだな。
こういう奴らは次は「35進数と解釈すれば…」と言い出すに違いない
339デフォルトの名無しさん:2013/12/14(土) 12:15:29.95
>>338
って言うか、お前本気で言ってるのか?
禿の洒落なんだが…
340デフォルトの名無しさん:2013/12/14(土) 12:23:49.16
じゃあハゲはゴミクズってことで
ところでハゲって誰?
341デフォルトの名無しさん:2013/12/14(土) 12:48:15.83
>>340
俺、ストラウストラップ(`ェ´)ビャーネ
342デフォルトの名無しさん:2013/12/14(土) 13:33:26.32
C++11のおかげで自分の所ではboostがほとんど不要になった。
C++1yにboost::format相当は入るかな?
343デフォルトの名無しさん:2013/12/14(土) 13:37:26.12
入りません
344デフォルトの名無しさん:2013/12/14(土) 14:19:02.83
そうなんだ。
まあ便利だけど、あれだけのためにboostを入れる必要はないな。
345デフォルトの名無しさん:2013/12/14(土) 14:20:22.28
うちはstdガン無視でboost継続利用中
今更変えると逆にトラブる
346デフォルトの名無しさん:2013/12/14(土) 16:42:55.67
Boost.Format そのものじゃないけど
printf ライクに出力できるように
しようってのはペーパー出てた気がする。
347デフォルトの名無しさん:2013/12/15(日) 21:26:22.20
お前らどうやって勉強してんの
アイエスオーとか買って読んでるのけ?
そんなの買う金あったらソープ池よ
348デフォルトの名無しさん:2013/12/15(日) 21:27:12.71
isoならただで見れるだろ
お前はアホか
349デフォルトの名無しさん:2013/12/15(日) 23:39:03.96
ソープ行く金で女口説けるだろ
特にこの季節、余り物オーラ見抜けば安いぞ
使い捨てませ
350デフォルトの名無しさん:2013/12/16(月) 11:33:14.99
>余り物オーラ見抜けば

御教示ください
351デフォルトの名無しさん:2013/12/16(月) 15:40:20.77
オーラ漏れは地雷の目印
触っちゃダメだよ、ひどい目に遭うよ
352デフォルトの名無しさん:2013/12/16(月) 16:49:37.22
構ってもらえないオーラの方が食いつきがよさそう
353デフォルトの名無しさん:2013/12/16(月) 19:54:45.71
ISO規格ってタダで見れたか?
C++2014ドラフトはタダだけど
354デフォルトの名無しさん:2013/12/16(月) 20:46:30.59
最終ドラフトで充分って江添が言ってなかったっけ?
っていうか、 C++11 を見るくらいなら C++14 のドラフトの方がいいじゃん。
355デフォルトの名無しさん:2013/12/16(月) 21:50:35.25
C++11のFDISはちゃっかりゲットしてる
356デフォルトの名無しさん:2013/12/16(月) 22:35:41.60
俺はFDISの一歩手前のWDと、ISの一歩後のWDしか手に入らなかった。
357デフォルトの名無しさん:2013/12/16(月) 23:58:18.44
>>354
規格に何を求めてるんだよ。求めるのは絶対的に正しい仕様だろ。
99%内容が同じでもドラフトに価値など無い。
おおざっぱに勉強したきゃそこらのサイトでも見た方が早い。
358デフォルトの名無しさん:2013/12/17(火) 00:06:13.45
もうISOだけじゃなくて、ANSIでも安く売ってるんだから買えよな。
知らない奴は規格なんて縁のない人間なんだよ。

// しかしISOのサイトの広告は何とかならんのか。
359デフォルトの名無しさん:2013/12/17(火) 21:35:26.59
ANSIがISO規格を売っているのですか?
初耳です。
360デフォルトの名無しさん:2013/12/18(水) 01:02:58.85
ANSI 版(INCITS 版)
http://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2fISO%2fIEC+14882-2012
も売ってるけど ISO 版
http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2fIEC+14882%3a2011
も売ってるんだな、これが。安いの INCITS 版だけど。でも一時よりえらい値上がりしてる気が。
361デフォルトの名無しさん:2013/12/18(水) 05:48:10.46
本当に縁のある人はFDIS持ってると思う
362デフォルトの名無しさん:2013/12/18(水) 17:00:54.23
円のある人は規格で
縁のある乞食はドラフトという訳ですね。
規格の話をしたいときにドラフトを持ち出すような
ナンセンスなことをしなければよいけど
363デフォルトの名無しさん:2013/12/18(水) 19:25:30.50
日本規格協会でISO/IEC 14882を買ったら
PDFに「しおり」が付いていなくてブチ切れだったでござる。
JIS規格が時々画像のスキャンとか、夜道に気を付けろと言いたい。
364デフォルトの名無しさん:2013/12/18(水) 19:30:50.23
なぜスキャン画像なのかと聞いたら、
検索できないようにするため、との答え。
2度ぶちぎれですよ!。
365デフォルトの名無しさん:2013/12/18(水) 19:42:24.38
公文書を「売る」変な団体だしな
366デフォルトの名無しさん:2013/12/18(水) 19:49:49.93
企業をタダで働かせて作ったものを売る
ことで経済産業省はボロ儲け。
そしてC++は企業に見捨てられたので
JIS規格が出せなくなった
367デフォルトの名無しさん:2013/12/18(水) 20:01:29.41
>>362
FDISは最終案で、OK出たらそのまま出版なんですけど
368デフォルトの名無しさん:2013/12/18(水) 20:13:56.06
>>367
OKが出たFDIS以外にドラフトは無いのか?
369デフォルトの名無しさん:2013/12/18(水) 20:26:13.66
>>367
FDISは修正して再提出があるわけだが
「これが本当に最後のファイルドラフト」とか
恥ずかしい
370デフォルトの名無しさん:2013/12/18(水) 20:31:33.12
「これが規格です」と名乗るための表紙の付いたお布施。
高々3万円ぐらい買ってやれよ。
江添がメシ食っていけないだろ。
371デフォルトの名無しさん:2013/12/18(水) 20:38:21.25
もう都落ちしたそうだな
372デフォルトの名無しさん:2013/12/18(水) 20:52:38.59
規格買ってもエゾたんに円は入らんだろ
373デフォルトの名無しさん:2013/12/18(水) 21:00:56.06
規格を読むのはハードル高いけど最新仕様に関心はある層がいないと江添たん儲からない。
374デフォルトの名無しさん:2013/12/18(水) 21:04:13.46
江添は正直どうでもよくて
規格策定にも金はかかるんだから
適切なキャッシュフローのためにも
お布施しておけっていう話だろ
375デフォルトの名無しさん:2013/12/18(水) 21:18:01.78
取り敢えずコンセプトは要らんから
はよ出せ
376デフォルトの名無しさん:2013/12/18(水) 21:42:07.79
>>374
規格団体が制定すりゃ使われるかっていうとそんなことないだろ。
コンパイラがちゃんと追従して、わかりやすい関連書籍も出て皆が使うから規格に意味があるんだ。
ちゃんと産業で使われるなら規格策定なんぞどこかしらの企業がスポンサーに付くわい。
言語のエンドユーザーたるプログラマが直接 ISO やら ANSI やらに金を出すのは適切なキャッシュフローではない。
377デフォルトの名無しさん:2013/12/18(水) 21:45:41.25
というのが江添さんの持論です
378デフォルトの名無しさん:2013/12/18(水) 22:06:23.22
規格委員って規格委員会から活動経費とか言ってお金貰っているのか? 
それとも、無償でやっているのか。顔合わせてのミーティングとかだと
交通費とかかかるよな。
379デフォルトの名無しさん:2013/12/18(水) 22:18:37.13
>プログラマが直接 ISO やら ANSI やらに金を出すのは適切なキャッシュフローではない

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

この思考がヤバい
380デフォルトの名無しさん:2013/12/18(水) 22:26:53.37
それ美しい日本の精神じゃないか。
381デフォルトの名無しさん:2013/12/18(水) 22:32:46.33
規格の本来の目的は乱立していたものが統一されることで
産業全体が効率化されて最終的にエンドユーザーが
メリットを享受できるようにすることだろ。
今のC++1yは規格策定=新機能の開発になっていて
何か違うと思うんだ。
382デフォルトの名無しさん:2013/12/18(水) 22:47:10.58
なんで最初にわざわざカオスな状況を用意しなきゃいかんのよ
新機能を開発したい人たちが複数居て、ばらばらにやったら方言が乱立するから、一カ所でやって即規格化しようぜ
ってのが今のC++の規格策定プロセスなわけでしょ?
誰にとってもその方が望ましいと思うんだが
383376:2013/12/18(水) 22:56:16.55
>>379
> →でも俺は金 払わない

だってそうだろう。 工作が趣味だからってネジやら合板やらの規格策定に金出すか?
エンドユーザーは金を払って部品を書い、工作指南本を書い、道具を買うけど、
その背景にある規格を一貫させるのは各業界でやるのが筋だろ。
規格策定の分の費用が売り物の値段に上乗せされてたってかまわないが、
直接支援するのは筋が違う。
384デフォルトの名無しさん:2013/12/18(水) 23:09:23.94
>>383
「統一された規格を実装したコンパイラーが欲しい」と
「規格書が欲しい」を一緒にするなよ。
前者の人が規格策定行為に直接金払わないのは当たり前。
385デフォルトの名無しさん:2013/12/18(水) 23:32:58.20
江添さんが金くれってごねてるの?
386デフォルトの名無しさん:2013/12/18(水) 23:36:49.20
>>377
どうでも良いことだが
江添は長音表記が通産省労害派(JIS Z 8301)じゃなくて
内閣府1991告示二号派だから別人
・コンパイラー
・コンピューター
・メンバー関数
・コンストラクター

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

※ スレタイと>>1をよく読んで下さい
388デフォルトの名無しさん:2013/12/18(水) 23:50:35.22
落ち武者ネタって何?
389デフォルトの名無しさん:2013/12/19(木) 00:19:26.90
エゾたんのことか?
スレに沿う話題ソースにも非常に有益な御仁だし、話題から外すのは反対だな
偏屈ジジイなのは否定せんけど、アスペ落ち武者呼ばわりされるほど恨み持たれるような事してるのか?w
390デフォルトの名無しさん:2013/12/19(木) 00:26:52.22
まーああいう人が浪人してて金に困ってる、って時点で盛り下がってるんだな〜とは思う。
本来なら引く手あまたじゃなきゃまずいと。
391デフォルトの名無しさん:2013/12/19(木) 00:49:09.70
ああいう人は金に困ってなきゃおかしいです。
好きなことしかやらないんだから。
392デフォルトの名無しさん:2013/12/19(木) 01:01:26.54
どちらにも同意できて困る
393デフォルトの名無しさん:2013/12/19(木) 02:27:13.52
もし江添を雇うならエウ゛ァンジェリストとしてだろうな。
ああいうのは本人が面白そうにやってると説得力があるからな。
394デフォルトの名無しさん:2013/12/19(木) 03:01:12.82
不自由な製品はお断りだからな
395デフォルトの名無しさん:2013/12/19(木) 03:16:02.14
あいつはpdfに親でも殺されたのか
396デフォルトの名無しさん:2013/12/19(木) 03:52:41.94
偏屈ジジイっておまえなあ、江添くんまだ20代だぞ
397デフォルトの名無しさん:2013/12/19(木) 03:54:30.73
あんな自由に縛られた奴が20代なわけないだろ
398デフォルトの名無しさん:2013/12/19(木) 08:04:48.44
>>383
JISやISOは企業で使うために制定してるもの
趣味で作る分には規格書不要、コンパイラ付属のマニュアルでも読んどけ
399デフォルトの名無しさん:2013/12/19(木) 08:16:23.50
見てて面白いから良いだろ
400デフォルトの名無しさん:2013/12/19(木) 08:40:00.84
>>378
他のISOに関わったことあるけど、手弁当でした。海外出張年4回と普段のも。規格をネタに解説書書いて出版しましたが、マイナーな規格なので、予想通り初版5000部で絶版しましたし。
401デフォルトの名無しさん:2013/12/19(木) 08:52:37.49
>>378
2005年くらいまでは会社から支給があったけど、
今はもう持ち出しですよ
普通の勉強会の方が交通費が出ることもあるくらい
402デフォルトの名無しさん:2013/12/19(木) 13:40:53.43
江添とか IT 成金企業が飼っときゃいいのに。
403デフォルトの名無しさん:2013/12/19(木) 14:22:00.93
なんで企業が金にもならんキチガイ雇わにゃならんのよ
404デフォルトの名無しさん:2013/12/19(木) 14:23:10.68
>>401
それは援助金を集める担当者がサボっているのが原因に間違いない
405デフォルトの名無しさん:2013/12/19(木) 14:25:53.72
>>403
話題にはなるんじゃ
忘年会に集まるような怪しい連中じゃ無理だろ
406デフォルトの名無しさん:2013/12/19(木) 14:38:54.05
知り合いにやね某やえぴなんとかさんみたいな身の振り方上手い人がいくらでもいるのにどうしてこうなったんだろう
407デフォルトの名無しさん:2013/12/19(木) 16:55:18.12
えぴなんとかはともかく、その例だと知り合いが悪いんじゃねえの。
408デフォルトの名無しさん:2013/12/19(木) 17:53:56.86
誰か江○添を食わせてやれ
→俺は金出さないけど
→どこかの成金企業は金持ってるだろ

この思考がヤバい
409デフォルトの名無しさん:2013/12/19(木) 18:39:57.38
やねさんと江添さんて知り合いだっけ?

というかさ、C++関係で専業の人間なんていないだろ
えぴさんにしろ、若手だとBoost勉強会の人にしろ、本業は別にあるわけだしさ
C++の専業伝道師のロールモデルなんてないわけで
それでも副業するのが嫌なら、苦労するしかないわいな
410デフォルトの名無しさん:2013/12/19(木) 19:00:05.27
えぴさんの本業ってなんなの?
411デフォルトの名無しさん:2013/12/19(木) 19:05:41.21
直接仕事取ってこれるタイプのIT土方
412デフォルトの名無しさん:2013/12/19(木) 19:40:29.11
いんちき競馬予想ソフト書かされて
いやになったんじゃなかったっけ
413デフォルトの名無しさん:2013/12/19(木) 20:10:26.17
Will Code HTML for Food
414デフォルトの名無しさん:2013/12/19(木) 20:12:43.92
仕事で使うのはC++のみって奴ってどれぐらいいるんだ
仕事では他の言語が主でC++が副って奴が多いんじゃないか
415デフォルトの名無しさん:2013/12/19(木) 20:26:49.22
専業ってなんだよ
シープラプラなんて既に
天ぷらオナニー用言語だろ
趣味でやるのが正しい使い方
416デフォルトの名無しさん:2013/12/19(木) 20:52:25.18
趣味なら余計にこんな糞言語使いたくねえ
417デフォルトの名無しさん:2013/12/19(木) 20:56:10.73
むしろそれがいい
右辺値山椒だけでご飯3杯はイケる
418デフォルトの名無しさん:2013/12/19(木) 21:21:41.88
web言語の方が御飯たべれる
419デフォルトの名無しさん:2013/12/19(木) 21:45:24.39
と、ここまでITドカタで御飯食べるのが精一杯な人間の世界観
420デフォルトの名無しさん:2013/12/19(木) 21:58:05.96
えぴさん、普段はとってもわかりやすい文を書く方なのにどうして本にするとわかりにくいの?
ファンとして悲しい‥
421デフォルトの名無しさん:2013/12/19(木) 22:00:45.88
その程度の能力だからなんだろ
誰だか知らんがソイツは
422デフォルトの名無しさん:2013/12/19(木) 22:09:05.64
読んだ直後は分かったような気になるけど、暫く経ってよくよく考えてみると実は全然分かってない。
リピーターを生み出す良い本とはそういうものだ!w
423デフォルトの名無しさん:2013/12/19(木) 22:17:23.98
>>412
それpmokyだろ
424デフォルトの名無しさん:2013/12/19(木) 22:23:13.87
>>422
マは底辺・低脳者の職種だから、全然分かってないが当たり前だよ
日本語ができない奴でもOKな職だし
425デフォルトの名無しさん:2013/12/19(木) 22:24:21.68
422のような馬鹿な信者が湧くことから
当人のレベルの低さが伺える
426デフォルトの名無しさん:2013/12/19(木) 22:29:23.76
けれど、皆さん、日本語は話せないけれど英語は読み書き出来るんでしょ?
427デフォルトの名無しさん:2013/12/19(木) 22:34:17.30
なぜ、c++のWeb Frameworkは流行らないのか
428デフォルトの名無しさん:2013/12/19(木) 22:51:21.22
危ないから
429デフォルトの名無しさん:2013/12/19(木) 22:52:05.11
>>427
何それ。emscripten?
サーバー側の話?
430デフォルトの名無しさん:2013/12/19(木) 22:57:44.76
>>369
修正されなかった事も知らないの
431デフォルトの名無しさん:2013/12/20(金) 00:18:14.60
>>379
コンパイラに金を払ってりゃコンパイラのマニュアル読んでりゃ問題なくね。
gccとかclangとかはそれらが規格に準拠してて欲しいと思う個人や企業が身銭を切る。

ただ、規格に準拠してて欲しいと思う個人や企業ってのが、
規格に興味のない個人や企業が生んだ非互換のゴミに悩まされた被害者だと考えるといろいろとアレだけどな。
432デフォルトの名無しさん:2013/12/20(金) 00:58:35.02
>>429
CppCMS, Wt, Tree Frog
433デフォルトの名無しさん:2013/12/20(金) 08:14:45.07
>コンパイラのマニュアル読んでりゃ問題なくね
間違いではないんだが、独自の方言が普遍的と勘違い
する人を量産してしまう罪は重い
434デフォルトの名無しさん:2013/12/20(金) 08:15:40.39
sdkjla;hjklfdjl
435デフォルトの名無しさん:2013/12/20(金) 17:04:18.77
>コンパイラのマニュアル
文法の説明が無いくせに方言まみれのG++は
どうしようもないUNKOという訳ですね。
規格への準拠を期待して騙され続けているG++ユーザーは不憫です。
436デフォルトの名無しさん:2013/12/20(金) 17:34:57.30
規格書に金出せないアマチュアなんだからそれで問題無い
437デフォルトの名無しさん:2013/12/20(金) 19:52:30.45
プロは目的と手段を混同したりしない
438デフォルトの名無しさん:2013/12/20(金) 19:57:41.24
こういうこと言う奴に限って混同したプロ崩れのクズ。
特長は「いつも他人からみて幸せそうには見えず、
愚痴ばかりこぼしている」タイプ
439デフォルトの名無しさん:2013/12/20(金) 20:01:16.90
おまえのことかw
440デフォルトの名無しさん:2013/12/20(金) 20:11:14.74
プロはプロを自称しない。
441デフォルトの名無しさん:2013/12/20(金) 20:20:03.81
おまいら、コンパイラやインタプリタの企画書なんて読むの?
442デフォルトの名無しさん:2013/12/20(金) 20:28:13.35
    【新 企 画】

新 宿 コ ン パ 2 0 1 3

ホ ゲ ホ ゲ 株 式 会 社
443デフォルトの名無しさん:2013/12/20(金) 20:30:10.12
企画など読む気も無いし読む必要も無い
言語の規格とコンパイラーの説明だけでok
444デフォルトの名無しさん:2013/12/20(金) 20:39:18.09
おまいら、規格書を元に修正要望とかバグパッチ書いたりするの?
445デフォルトの名無しさん:2013/12/20(金) 20:44:54.33
規格書はム板でアホを叩くために必携
446デフォルトの名無しさん:2013/12/20(金) 20:55:09.71
上司「今年のコンパの企画書を明日までに提出しなさい」
俺「承知しました」
447デフォルトの名無しさん:2013/12/20(金) 20:57:16.25
「開催の趣旨が薄れたため 今年度は開催しない」
448デフォルトの名無しさん:2013/12/20(金) 21:09:05.45
☆★★
449デフォルトの名無しさん:2013/12/20(金) 21:42:23.42
同音(本当は同音じゃないけど)異義語が、いつまで経っても痛いね
450デフォルトの名無しさん:2013/12/21(土) 03:32:38.20
>>444
MSにバグレポート出してるよ
別のチームはOSS向けのパッチ書いたりしてる
451デフォルトの名無しさん:2013/12/21(土) 05:14:56.16
言語の規格でなくコンパイラー/インタープリターの規格
に相当するものと言ったらJavaか?
読んでない
452デフォルトの名無しさん:2013/12/21(土) 15:06:16.48
>>431
> 規格に準拠してて欲しいと思う個人や企業

いやいやw
453デフォルトの名無しさん:2013/12/21(土) 19:38:28.44
>>431が何を言っているのかよくわからない
454デフォルトの名無しさん:2013/12/21(土) 20:06:39.42
俺は金を出さないけどお前らは出せって意味じゃね
455デフォルトの名無しさん:2013/12/21(土) 21:46:16.53
gccやclangが規格に準拠して無くても構わないから規格購入費とか知ったこっちゃねーです。
VSは金払って買ってるから準拠してて欲しいと思うが金は払ったからあとはMSさん宜しくです。
456デフォルトの名無しさん:2013/12/22(日) 04:35:05.93
VisualStudioから入って、どうやってプログラムが書けるようになるのか謎杉
文法を覚えたばかりで小説を読んだことのない小学生に、
小説を書けって言ってるようなもの
457デフォルトの名無しさん:2013/12/22(日) 06:02:59.88
スレ違い&釣りはスルー
458デフォルトの名無しさん:2013/12/22(日) 21:10:21.66
>>456
C++14のドラフト規格を暗記だな
459デフォルトの名無しさん:2013/12/22(日) 23:26:19.23
言語の規格から入って、どうやってプログラムが書けるようになるのか謎杉
文法を覚えたばかりで小説を読んだことのない小学生に、
小説を書けって言ってるようなもの
460デフォルトの名無しさん:2013/12/23(月) 02:23:24.83
規格にはコード例が載っているじゃないか。
461デフォルトの名無しさん:2013/12/23(月) 02:38:15.61
規格は仕様の背景や考え方の説明が乏しいので
初心者の学習には不向きです
禿にウザい信者が湧くのにはそれなりの理由がある
462デフォルトの名無しさん:2013/12/23(月) 11:05:02.18
規格は文法だけじゃなくて用例も少し載ってるから>>459はちょっと違うね。
463デフォルトの名無しさん:2013/12/23(月) 11:06:19.83
そういやANSI C, ISO C++の規格に用例が多いのはK&Rの影響かね。
464デフォルトの名無しさん:2013/12/23(月) 13:24:49.71
規格に載ってるサンプルはあくまで規格を説明するためのもので、適切な使用例というわけではないよ。
465デフォルトの名無しさん:2013/12/23(月) 13:47:18.66
むしろ変な例が多い気がする
466デフォルトの名無しさん:2013/12/23(月) 13:57:18.25
規格の落とし穴や注意点を説明するような例が多いしな
467片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/12/23(月) 15:07:27.42
468デフォルトの名無しさん:2013/12/23(月) 19:48:58.24
むしろルールを仕様として書かずに
例が仕様となっているクソ説明
469デフォルトの名無しさん:2013/12/23(月) 21:04:22.02
いやいや。
470デフォルトの名無しさん:2013/12/24(火) 11:50:05.02
>>468
それはDR出していい。
471デフォルトの名無しさん:2014/01/11(土) 16:47:14.70
誘導されてきました。

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

よろしくお願いします。
472デフォルトの名無しさん:2014/01/11(土) 21:00:03.63
無理
473デフォルトの名無しさん:2014/01/11(土) 22:15:52.14
無理ですか・・・。
じゃあ仕方ないですね。
どうもありがとう。
474デフォルトの名無しさん:2014/01/12(日) 00:13:06.45
可変長引数使うとか。
475デフォルトの名無しさん:2014/01/12(日) 09:09:35.68
>>474
[fn](auto x、...) { return fn(1, x 〜
という形で、〜の部分を自分で埋めてくってことですよね。
可変長引数はできるんですか?
476デフォルトの名無しさん:2014/01/13(月) 02:40:07.76
C++でfopen_sが使えるようなるのはいつですか?
477デフォルトの名無しさん:2014/01/13(月) 02:56:51.06
_s系には何も期待していない
478デフォルトの名無しさん:2014/01/13(月) 03:03:42.61
_s系の関数なんてつかってる人いるの?
あれって、存在の必要性をまるで感じないんだけど。
個人的には、iosteamくらいいらない子
それより、snprintfがほしい。
479デフォルトの名無しさん:2014/01/13(月) 03:37:31.52
>>478
std::stringstreamとかstd::istream_iteratorとか捨てたもんじゃないと思う。
でもprintfは欲しいよなぁ・・・
480デフォルトの名無しさん:2014/01/13(月) 03:38:29.43
sprintf_sでいいじゃん
481デフォルトの名無しさん:2014/01/13(月) 03:50:31.58
iosteamに対して使いたいんだよ!
482デフォルトの名無しさん:2014/01/13(月) 08:37:43.53
スチーム?
483デフォルトの名無しさん:2014/01/13(月) 08:47:01.15
Boost.Formatを使うかstd::putfが標準に入るのを待つか
484475:2014/01/13(月) 09:56:30.21
失礼しました。ドラフト見たら明確にできることが書いてました。(5.1.2p5)
ラムダにリプレースできるツールの候補があるんで、これ使ってデフォルト引数が実現できるか考えてみます。
485481:2014/01/13(月) 16:06:08.12
>>482
タイポしたら嫌だから478からコピペしたらこれだよ!
よく見てコピペするんだった・・・
486デフォルトの名無しさん:2014/01/13(月) 18:38:40.24
>>484
何がしたいのかよくわからないよ。
デフォルト引数がしたいのか、可変長引数がしたいのか、何?
487デフォルトの名無しさん:2014/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デフォルトの名無しさん:2014/01/13(月) 20:43:32.48
C++14なら完全対応してるclangがあるんだからそれ使えばいいやん
489デフォルトの名無しさん:2014/01/13(月) 22:22:11.62
いままでのあらすじ

ジェネリックΛ期待。デフォルト引数もok?
 ↓
それはダメ
 ↓
他の手段で無い?
 ↓
C++14ならclang使えば? ←話が理解できないバカ
490デフォルトの名無しさん:2014/01/13(月) 22:39:48.62
ラムダ式って言語レベルの話じゃん?
それをライブラリで何とかしようとするのがおかしい
boostになければ諦めろって
491デフォルトの名無しさん:2014/01/13(月) 23:19:26.86
>>490
まあそうなんですけどね。

今使ってるライブラリのデフォルト引数機能が便利なので、
 ラムダで同じことができるようになるならリプレース
 そうじゃないなら継続利用(レベルアップ含む)
のどっちに行くべきか見きわめたくなって。
できないっぽいので後者で行くことになるかな。
492デフォルトの名無しさん:2014/01/14(火) 00:41:24.49
>>491
んーと、今現在
bind(fn, 1, _1, _2 = 8);
というのを実現してるってこと?
493デフォルトの名無しさん:2014/01/14(火) 07:01:52.07
>>492
そうですよ。
関数名とプレースホルダはちょっと変えてるけど。
494デフォルトの名無しさん:2014/01/14(火) 12:46:18.88
関数ポインタとかラムダにオーバーロードがあればいいのに
495デフォルトの名無しさん:2014/01/14(火) 12:53:56.29
一体何をオーバーロードする気だ
496デフォルトの名無しさん:2014/01/14(火) 14:19:40.75
まああれだ、C++14でラムダ式にジェネリックが入るというのは必要だからだろう
多分もっとSTLが最適化出来る
497デフォルトの名無しさん:2014/01/14(火) 14:27:51.74
とりあえずboostのoverloaded_functionつかっとけい
498デフォルトの名無しさん:2014/01/14(火) 17:28:49.81
STL?
15年ぐらい前にそんなのあったな
まだ使ってるなんて化石も甚だしい
499デフォルトの名無しさん:2014/01/14(火) 17:30:57.86
使える化石だからな
500デフォルトの名無しさん:2014/01/14(火) 20:11:25.90
C#に超便利なLINQがあるだろうが
C++11ももっとSTLとかラムダ式を柔軟にしないと性能はともかくユーザー層で負ける
501デフォルトの名無しさん:2014/01/14(火) 21:14:35.66
いいからお前は黙ってC#使ってろよ
>ユーザー層で負ける
アイドルの人気投票じゃないんだからw
502デフォルトの名無しさん:2014/01/14(火) 21:19:48.95
STL?
15年ぐらい前にそんなのあったな
そんなメンテもされていない化石をまだ使ってるなんて
503デフォルトの名無しさん:2014/01/14(火) 21:39:02.69
ふーん
algorithm系って何にリプレースすればいいの?
504デフォルトの名無しさん:2014/01/14(火) 22:14:00.90
>>497
感動した!
実装は簡単ぽいな。
505デフォルトの名無しさん:2014/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デフォルトの名無しさん:2014/01/15(水) 23:33:00.31
>>502
おいalgorithm系は何にリプレースすればいいんだよ?
507デフォルトの名無しさん:2014/01/15(水) 23:47:39.55
STLじゃなくてC++標準ライブラリを使えってことだろ。
何を言っているんだオマエは。
508デフォルトの名無しさん:2014/01/15(水) 23:52:16.47
<algorithm>はSLTだろうが。
何を言ってるんだオマエは。
それともコンテナとイテレータだけだとでも言うつもりか?
509デフォルトの名無しさん:2014/01/15(水) 23:53:28.46
×SLT
○STL
510デフォルトの名無しさん:2014/01/15(水) 23:54:28.36
定義を明確にせず否定も肯定もできないと思います。
511デフォルトの名無しさん:2014/01/15(水) 23:56:39.10
>>508
STL?
そんなものがISO/IEC 14882:2011のどこに書いてあるのですか?
SGIかステパンと勘違いしてるのでは?
512デフォルトの名無しさん:2014/01/16(木) 00:01:37.78
・STLは標準化前の遺物派
・コンテナ、イテレーター、アルゴ、ファンクタのみSTL派(string含まず)
・stringもSTL派(iostream含まず)
・テンプレートは全てSTL派
・C++の標準ライブラリは全てSTL派
・なんとなくライブラリは全てSTL派

厳密に正しいのは最初で他は誤り
513デフォルトの名無しさん:2014/01/16(木) 00:02:19.36
>>511
だったら「STLなどというものは初めからありません」と言わなきゃつじつまが合わんだろ。
STLという言葉を使った以上、その定義や守備範囲を自分の中に持っているはずだ。
「15年くらい前にあったな」というからには、その当時は存在していたわけだ。
<algorithm>がSTLでなくC++標準ライブラリだというなら、どこかの時点で定義なり認識が変わったわけだろ。
その根拠を出せ。
514デフォルトの名無しさん:2014/01/16(木) 00:11:43.65
根拠なんてあるわけないだろ。
差別化のネタにしたいだけなんだから。
515デフォルトの名無しさん:2014/01/16(木) 00:12:06.32
>>513
>「15年くらい前にあったな」というからには、その当時は存在していたわけだ。
それがSGIとかステパノフなんだろ。
516デフォルトの名無しさん:2014/01/16(木) 00:15:38.61
>>515
>>498,502
517デフォルトの名無しさん:2014/01/16(木) 00:22:36.04
>>512のコピペとか見ろよ
・STLは標準化前の遺物派
が正しいとしても、そのSTLの範囲がなんだったかについては何も語ってないだろ。
だから2番目以降の選択肢の正誤なんてわかりっこない。
どうでもいい争いなんだからヤメトケ。
518デフォルトの名無しさん:2014/01/16(木) 00:29:19.04
>STLは標準化前の遺物派
このコピペは修正が必要だな。
「STLは標準化前の遺物派(ステパノフのアレ、もしくはSGIのアレ)」
519デフォルトの名無しさん:2014/01/16(木) 00:42:35.61
・STLは標準化前の遺物派
 (ステパノフのアレ、もしくはSGIのアレ)
・コンテナ、イテレーター、アルゴ、ファンクタ
 のみSTL派(string含まず)
・stringもSTL派(iostream含まず)
・テンプレートは全てSTL派
・C++の標準ライブラリは全てSTL派
・なんとなくライブラリは全てSTL派

STLという用語の根拠があるのは最初のみで
他はコンセンサスの得られない脳内定義
520デフォルトの名無しさん:2014/01/16(木) 00:46:05.60
まーた始まった
521デフォルトの名無しさん:2014/01/16(木) 00:48:39.38
>>519
なるほど用語に根拠があるのですね。
で、その内容が「STLは標準化前の遺物派」ということだと。
522デフォルトの名無しさん:2014/01/16(木) 00:58:28.03
STLが髪の伸びたOTLに見えてなりません
523デフォルトの名無しさん:2014/01/16(木) 01:40:28.01
502「(標準化される前の)STLなんて化石をまだ使ってるなんて」
503,506「(俗称としての)STLを置換するライブラリってなんだよ」
507「(標準化される前の)STLじゃなくて(標準化された)C++標準ライブラリを使えってことだろ」
508「(俗称としての)(コンテナ以外も含む)STLは現役のライブラリだろ」

おまえらわざとやってるだろ。
524デフォルトの名無しさん:2014/01/16(木) 01:43:23.08
なんか「プログラミング言語C」または「C」は名称として正しいが
「C言語」は只の俗称・通称の類に過ぎないってネタとそっくりだ
525デフォルトの名無しさん:2014/01/16(木) 01:48:12.39
それを言うなら
「OSって何ですか?IBMが何故関係?」
昔STLは確かに存在したのだから
526デフォルトの名無しさん:2014/01/16(木) 01:51:37.22
voidみたいな芸風はやめろよ。
527デフォルトの名無しさん:2014/01/16(木) 02:21:52.84
A:写メ送って!
B:今時写メとは化石ですか?
A:じゃあ写メに変わる物は?
B:普通にスマホで写真撮って送れ
B:写メは2001年にJフォンが〜
A:だったら写メなどというものはありませんと言え
 当時は存在していたわけだ
B:だからそれがJフォンの
528デフォルトの名無しさん:2014/01/16(木) 03:13:33.92
> 昔STLは確かに存在したのだから
> 当時は存在していたわけだ

化石って認めてる発言だよねコレ。
529デフォルトの名無しさん:2014/01/16(木) 03:17:55.19
化石いうても標準コンテナの基本的な部分だよな
530デフォルトの名無しさん:2014/01/16(木) 07:56:19.19
話が理解できていない>>529が哀れ
「化石のSTLは標準ライブラリのコンテナの基礎となった」
が正しい。
標準ライブラリには「ここはSTL」という説明はなく
また化石STLと標準ライブラリの類似部分とは完全に一致でもない
531デフォルトの名無しさん:2014/01/16(木) 08:06:53.37
3文字の略称をつけないコミッティーの責任
それが名付けられるまでSTLを使って構わない
532デフォルトの名無しさん:2014/01/16(木) 11:32:52.17
>>530
横からサンクス、やっと話題を理解できた
533デフォルトの名無しさん:2014/01/16(木) 12:17:18.60
Cのcnd_timedwaitにPOSIXの略称を付けないのは委員会の責任
名付けられるまでは<pthread.h>のcond_timedwaitも
<thread.h>のcnd_timedwaitのどちらも
POSIXと呼んで構わない

キチガイの発想ではこうなるんだろうな
534デフォルトの名無しさん:2014/01/16(木) 12:29:03.79
そんなに標準ライブラリのなかのやつをSTLとは呼ばないって主張が重要ならこんな所で吠えてないでWikipediaの記事修正してきたら?
言語数多いけど頑張ってね。
535デフォルトの名無しさん:2014/01/16(木) 12:33:23.00
予想される展開1
「標準ライブラリーにはSTLという言葉がない」
「じゃあWikipedia直せよ」
「オマエが直せ」

予想される展開2
「標準ライブラリーにはSTLという言葉がない」
「じゃあWikipedia直せよ」
「オマエが規格を直すのが筋」
536デフォルトの名無しさん:2014/01/16(木) 12:41:35.63
すでにあった展開
「標準ライブラリーにはSTLという言葉がない」
「(531)なので規格のもSTL」←??
537デフォルトの名無しさん:2014/01/16(木) 19:46:11.59
今は、テンプレートを使って作られた標準ライブラリー、でSLTになっているから注意な
538デフォルトの名無しさん:2014/01/16(木) 20:20:44.66
はいはい、中国人の真似した糞レスはいらない
539デフォルトの名無しさん:2014/01/16(木) 20:22:52.48
ああん、お前、どこ中の張魯よ?!
540デフォルトの名無しさん:2014/01/16(木) 20:25:41.20
ワタシ、離珠と申します
541デフォルトの名無しさん:2014/01/21(火) 10:26:14.02
14っていつ出るの?
委員会ドラフトが出てから久しいのだけれど
542デフォルトの名無しさん:2014/01/22(水) 20:37:10.34
WG21は無能なので あと5年は出ません
543デフォルトの名無しさん:2014/01/28(火) 06:36:28.84
一番待たれてる機能ってなに?ジェネリックラムダ?
544デフォルトの名無しさん:2014/01/28(火) 07:11:36.74
戻り値の型推論が無いとλが使いにくい
545デフォルトの名無しさん:2014/01/28(火) 07:46:34.11
コンセプト
546デフォルトの名無しさん:2014/01/28(火) 10:54:47.70
Concept連日鬼のように議論されてるけどなかなか仕様が固まらないな
ジェネリックラムダは簡単に入りそうだけど
というかClangでは使える
547デフォルトの名無しさん:2014/01/28(火) 11:53:08.19
コンセプトは要らないな。
メンバー関数ごとに要件が違うんだから
メンバー関数内にstatic_assert(is_xxw::value)
をたくさん書いてくれりゃいいわ。
548デフォルトの名無しさん:2014/01/28(火) 14:48:34.09
テンプレートの話じゃないのか
549デフォルトの名無しさん:2014/01/28(火) 20:36:23.16
テンプレートのインタフェースみたなものという理解でいいのかな
550デフォルトの名無しさん:2014/01/29(水) 00:01:14.41
C++でプロパティを実現するココロミ
http://codezine.jp/article/detail/7571?p=3
551デフォルトの名無しさん:2014/01/29(水) 00:09:09.69
ジェネリックラムダと、constexprの制約緩和でいいよもう
552デフォルトの名無しさん:2014/01/29(水) 00:11:25.64
来る将来、片っ端からconstexprを付けることに
553デフォルトの名無しさん:2014/01/29(水) 00:19:27.99
コンパイル時レイトレーシングができるんだ。
出荷時に処理が終わっている製品とか、夢が広がリングww
554デフォルトの名無しさん:2014/01/29(水) 00:35:24.21
それよくわかってない門外漢の質問で済みませんが、単にコンパイル時にレイトレ計算完了してるって理解でいいの?
コンパイル後にシーンやモデルの入力替えることが出来ないのであれば、プロダクトとしての価値がよくわかりません
解像度上げたら十分時間かかってるようだし
555デフォルトの名無しさん:2014/01/29(水) 00:45:19.98
>>554
さすがにレイトレ完了までやってしまうのはネタだけど、
部分的にでも出来れば全体として高速化が出来る部分が増えるってことだ。
556デフォルトの名無しさん:2014/01/29(水) 00:49:50.51
わかりやすいのは、sqrtやsin/cosなどの演算目的の関数だろうか
あるいは、ビットマスクのようなものとか
557デフォルトの名無しさん:2014/01/29(水) 00:58:42.44
>>554
その理解でいい
特に価値は無い

PostScriptでレイトレと似たようなもんだな
「プリンタがレイトレしてやがるwwwおせぇwww」
「コンパイラがレイトレしてやがるwwwwおせぇwww」
「Webブラウザが仮想PCホストしてやがるwwwwおせぇwww」

あるいはメガデモ的な面白さ
558デフォルトの名無しさん:2014/01/29(水) 03:05:47.24
mailing来てるのに全く話題に出てないのな

やっぱりswap演算子はボツか
559デフォルトの名無しさん:2014/01/29(水) 06:24:26.17
本はよ
560デフォルトの名無しさん:2014/01/29(水) 21:51:33.29
本は要らんから isoははよ規格出せ
561デフォルトの名無しさん:2014/01/29(水) 23:22:02.65
>>557
本はよ
562デフォルトの名無しさん:2014/01/30(木) 00:58:06.43
>>555-557
解説どもです、スッキリしました
変態的で興味が募ったのでちょいぐぐって情報の海に溺れてきます
563デフォルトの名無しさん:2014/02/14(金) 05:45:58.14
簡単なhackで引数に明示的な型しかとらない指定ってできませんかね?
int a[1];
func( bool ); func( a ); // たまに起こるミス、型チェックを通ってしまう
たとえば
func( explicit bool ); ←こんなキーワード
func( true / false / bool(a) ); // OK
func( a ); // 暗黙の変換はエラー
564デフォルトの名無しさん:2014/02/14(金) 06:27:40.45
>>563
こういうのはtemplateが役に立つ
http://ideone.com/eFtKnq
565デフォルトの名無しさん:2014/02/14(金) 06:34:30.65
あとはbool引数を取るexplicitコンストラクタを持つクラスをつくって
それをfuncの引数にすると二重の暗黙変換はできないからfunc(explicit_bool_type);に直接intを渡せなくなる。
566デフォルトの名無しさん:2014/02/14(金) 06:36:30.97
567デフォルトの名無しさん:2014/02/14(金) 06:41:43.77
>>565は間違いだった。すまん。
568563:2014/02/14(金) 08:31:22.51
>>564-567
ありがとうございます
暗黙の変換が行われる前にテンプレート関数で引き受けて=delete宣言するのですね
目から鱗が落ちました
569デフォルトの名無しさん:2014/02/14(金) 08:39:30.06
>>563
T で受け取って戻り値 std::enable_if<std ::is_same<T,bool>::value>::type

SFINAE サイコー
570デフォルトの名無しさん:2014/02/14(金) 13:52:59.31
static_assert(std::is_same<T,bool>::value, "申し訳ないがbool以外はNG");
571デフォルトの名無しさん:2014/02/14(金) 14:11:25.48
本当に成金企業がやって吹いたw
とりあえずおめ。
572デフォルトの名無しさん:2014/02/14(金) 21:15:51.96
>>569
Tで受け取って、なら大丈夫だけど一般にはT&&とすることも多いから is_same は要注意だよな。
573デフォルトの名無しさん:2014/02/14(金) 21:33:33.45
>>572
そそ
なんかうまく呼ばれねーとなって remove_cv とかゴテゴテと追加
574デフォルトの名無しさん:2014/02/14(金) 21:38:06.90
オレはこうしてるw

template<typename T>
struct remove_ref_cv {
typedef typename std::remove_reference<typename std::remove_cv<T>::type>::type type;
};
575393:2014/02/15(土) 04:06:39.49
俺の予想が当たった!
576デフォルトの名無しさん:2014/02/16(日) 05:06:04.15
なんか言語機能が弱すぎて書き方が多様化するperlっぽくなってるな
オナニー化はダメな流れだわ
577デフォルトの名無しさん:2014/02/16(日) 07:14:28.55
C/C++より強力と言える言語はアセンブラしかないが
578デフォルトの名無しさん:2014/02/16(日) 13:07:36.64
>>577
言語「機能」っていってるじゃん
579デフォルトの名無しさん:2014/02/16(日) 13:40:57.63
オブジェクト指向アセンブラマダー?
580デフォルトの名無しさん:2014/02/16(日) 16:56:16.42
むかしむかし、SAPPというアセンブラが川に洗濯に行って流されてしもうた
581デフォルトの名無しさん:2014/02/16(日) 18:42:32.62
なんで、アセンブラと同程度の実行速度を保ちつつモダンな書き方のできる言語が登場しないのかね?
582デフォルトの名無しさん:2014/02/16(日) 19:40:01.06
Dじゃダメなの
583デフォルトの名無しさん:2014/02/16(日) 19:43:32.33
Dはどうも万年ベータ版な印象
584デフォルトの名無しさん:2014/02/16(日) 20:36:52.85
>>581
童貞度というか HDL はry
585デフォルトの名無しさん:2014/02/16(日) 21:09:46.62
C/C++が一番それっぽいといえばそれっぽいが、そもそもモダンな書き方ってなによ。
586デフォルトの名無しさん:2014/02/16(日) 21:13:25.43
C#みたいなやつ
プロパティとかテンプレートとか
587デフォルトの名無しさん:2014/02/16(日) 21:51:56.13
>>581
お前が作って公開すればいいんじゃね?
588デフォルトの名無しさん:2014/02/16(日) 23:30:49.27
c++11でも充分よくやってるとは思うけどな
でもランタイムで逃げてる言語ほどラクにはならんよなあ

ふと今c++にオプション的なランタイムと糖衣構文追加のような形で、LLっぽい共存とかできないのかなと着想したんだけど、Obj-Cがまさしくそれだと気付いて絶望した
javaより古いルーツの言語にいちゃもんつけるのもあれだが、あの言語もうちょっと記法レベルでなんとかならんもんなのかな

Obj-Cは動的言語面の実装自体はいい線行ってるから、c++のパフォーマンスを有効活用できるプリプロセッサなんか面白いかもな
Obj-C++ with Lightweight
ここまで没
589デフォルトの名無しさん:2014/02/16(日) 23:35:13.76
^が生理的に受け付けないんだが
590デフォルトの名無しさん:2014/02/16(日) 23:36:54.80
^^
591デフォルトの名無しさん:2014/02/17(月) 00:58:30.07
c++ は何が悪いんだろうなあ
一から再構築したらうまく行くもんかねぇ?
592デフォルトの名無しさん:2014/02/17(月) 01:12:08.24
何も悪いところなんて見当たらないが?
593デフォルトの名無しさん:2014/02/17(月) 01:13:19.95
C++はよくやってる部類のはずだが、
低水準から高水準までカバーしつつマルチパラダイムをサポートするという時点で
そもそも言語に与えられた問題領域が複雑すぎる部分はあると思う
594デフォルトの名無しさん:2014/02/17(月) 08:03:03.39
C++11とか使える奴はいいよな。過去のコードや古い環境があるから使いたくても使えん。boostはインストールが面倒だし。時間がない。結局家でコードを書くときしか使えんから、学習曲線が緩やか。
595デフォルトの名無しさん:2014/02/17(月) 08:03:45.48
関数ポインタの表記が分かりにくい
596デフォルトの名無しさん:2014/02/17(月) 08:49:21.69
今はusingがあるじゃない
597デフォルトの名無しさん:2014/02/17(月) 09:03:56.85
typedef さんの出番を取りやがって...
598デフォルトの名無しさん:2014/02/17(月) 14:16:06.87
> 何も悪いところなんて見当たらないが?
テンプレートとかどう?
599デフォルトの名無しさん:2014/02/17(月) 14:19:29.25
コンパイルがクソ遅かったり
クラス増やすたびにいちいちヘッダファイルを書くとか言う間抜けなことを強いられたり
テンプレートでミスるとわけのわからないコンパイラエラーにおそわれたり
っていうのは改善されたの?
600デフォルトの名無しさん:2014/02/17(月) 14:29:00.81
>クラス増やすたびにいちいちヘッダファイルを書くとか言う間抜けなことを強いられたり
他の言語でもかわらなくね
>テンプレートでミスるとわけのわからないコンパイラエラーにおそわれたり
コンセプトさんが何とかしてくれる
コンパイル遅いのは我慢しろ
601デフォルトの名無しさん:2014/02/17(月) 17:20:08.30
>>599
> クラス増やすたびにいちいちヘッダファイルを書くとか言う間抜けなことを強いられたり
それはそういうルールでコード書くことを選択したプログラマの責任だろ。
他から参照しないならヘッダファイルなんぞいらんし、なんならヘッダに全部書いてろよ。
602デフォルトの名無しさん:2014/02/17(月) 17:50:41.13
>>601=キチガイアスペ
603デフォルトの名無しさん:2014/02/17(月) 18:28:57.40
>>600
> コンセプトさんが何とかしてくれる
それ10年以上言い続けてるんだけど・・・
604デフォルトの名無しさん:2014/02/17(月) 18:31:17.01
次はその表現がまるまる自分に跳ね返ってくるって予想できない?
何かを間抜けって貶すなら自分が貶される覚悟もしておこうよ・・・・
605デフォルトの名無しさん:2014/02/17(月) 21:28:09.39
>>601
そういえば、いつも.hと.cppのファイルごとコピーしてプログラム書くから
後になってcppの中身カラじゃねーか(最初からいらなかった)と気がついたりすることあるな。
ほかにもクラスをテンプレートに変えて、面倒だから全部ヘッダーに書いてcppいらなくなったとか
でもプロジェクトに追加してるからほったらかしで意味ないcppが何個も
606デフォルトの名無しさん:2014/02/17(月) 21:34:39.70
>>598
凄く便利だけど?
607デフォルトの名無しさん:2014/02/17(月) 21:40:16.67
schemeあたりでコード生成する方がはやいのではないか
608デフォルトの名無しさん:2014/02/17(月) 21:45:02.43
c++って、どのぐらいまで仕様を把握したら足を撃たないのか一向に分からない
609デフォルトの名無しさん:2014/02/17(月) 21:46:39.42
>>607
makeheaders とかでいいんじゃないの。
610デフォルトの名無しさん:2014/02/17(月) 21:49:09.20
>>609
学生の頃、いつもc++のヘッダーファイルを手で書いてたよ
611デフォルトの名無しさん:2014/02/17(月) 21:59:25.26
ヘッダとかドキュメント生成系のソフト有るけど、
マクロ使ってちょっとソースで変わったことすると、すぐ汚い結果吐くんだよね。

言語レベルでヘッダ/ドキュメント生成のためのルールを規定すれば、
Clangとかが綺麗なのを吐いてくれるようになると思うんだが。
612デフォルトの名無しさん:2014/02/17(月) 22:35:09.02
>>611
その着想で腰を上げたとして、委員会が完璧な仕様を決めるまで十何年かかるかが問題だなw
生成系ツールや俺俺ルールでお茶濁すくらいが現実解だと思う
613デフォルトの名無しさん:2014/02/17(月) 22:43:49.78
>>608
足を撃つ、ってどんなレベルのことを言ってるのかで答えは変わる。
614デフォルトの名無しさん:2014/02/17(月) 22:44:59.29
意外とやってみれば、コンセプトさんより先に決まるかも。

constexpr より強い、comptexpr (compile time expr) が欲しい。
615デフォルトの名無しさん:2014/02/19(水) 22:14:17.07
>>608
仕様に由来しないところで幾らでも足を吹っ飛ばせるから考えるだけ無駄
・・・とか言い出すと言語に寄らずバグらせ放題ってことになるけどな
616デフォルトの名無しさん:2014/02/20(木) 11:45:50.04
>>608
C++はミドルウェアより下のレイヤーで使う言語だから、
分かる人だけ使えばいいんじゃないかな。
エリートさんたちがプログラミングする世界だから。
617デフォルトの名無しさん:2014/02/20(木) 11:52:47.95
>>616
そのポジションはCじゃね?
618デフォルトの名無しさん:2014/02/20(木) 12:03:10.74
>>608
http://ja.m.wikibooks.org/wiki/More_C%2B%2B_Idioms
言語仕様は↑これを完璧に理解出来る程度に分かっていれば良い
619デフォルトの名無しさん:2014/02/20(木) 12:04:24.13
>>617
Cが主戦力であることは否定しないけど、
iOSはデバドラにサブセットC++
WebKITもC++
gccもC++
と増えてきてる。
620デフォルトの名無しさん:2014/02/20(木) 12:19:46.28
新しいボード等が出ても、コンパイラがcしか対応してないって、ばっちゃが言ってた
621デフォルトの名無しさん:2014/02/20(木) 14:30:13.50
そのコンパイラを作って動作保障するのは誰だと思っているんだっ
622デフォルトの名無しさん:2014/02/20(木) 14:38:29.56
×保障
○保証
623デフォルトの名無しさん:2014/02/20(木) 17:58:43.05
現れては消える高級言語を使うよりC++のが楽じゃない?
624デフォルトの名無しさん:2014/03/05(水) 19:02:16.04
C++1yってC++14の次だと思ってたけど、もしかして14のこと?
625デフォルトの名無しさん:2014/03/05(水) 19:43:55.90
C++17を目指してる次のやつのことであってる
626デフォルトの名無しさん:2014/03/06(木) 01:45:01.20
gcc4.8.1で下のコードでエスケープできないってエラー吐く
#include <regex>
std::regex re("\\[(an|pan|man)\\]");
VC++では動いてたんだが
[ってどうやってエスケープするんだ?
627デフォルトの名無しさん:2014/03/06(木) 02:13:16.87
>>626
つ Google
628デフォルトの名無しさん:2014/03/06(木) 03:15:02.53
regexの仕様知らずにいうけど、それでエスケープされないならコードを打ち込む段階で
U+005C(REVERSE SOLIDUS)じゃなくてU+00A5(YEN SIGN)に変換してしまったってことはないか?
まぁ最悪\xhhとかで代用すればいい
629デフォルトの名無しさん:2014/03/06(木) 04:43:28.41
>>626
エラーメッセージは本当にエスケープできないって出るの?
gcc4.8.1は<regex>の実装がまだ不十分な段階にあるんだが。
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
630デフォルトの名無しさん:2014/03/06(木) 18:35:52.72
>>626
VCで動くなら使っているGCCのバグか>>629だろ
GCCなんて使わないでClang使ったほうが良いんじゃないか
631デフォルトの名無しさん:2014/03/06(木) 19:16:53.76
そりゃあヒーローはエスケープなんてしないもんよ
632デフォルトの名無しさん:2014/03/06(木) 19:30:39.21
そんなときはRAWリテラルでも
633626:2014/03/07(金) 00:10:48.35
>>627
http://stackoverflow.com/questions/15059162/c11-regex-matching
見つけたわダメみたいだね

>>628
std::regex re("\\[");
std::regex re("\[");
std::regex re("\0x5c[");
std::regex re("\\0x5b");
全部ダメだった

>>629
/usr/include/c++/bits/regex_compiler.h:467:50
__throw_regex_error(regex_constants::error_escape);
ここで死んでしまう

>>629
実装されていないんだな

>>630
テストコードでは動いたー!
インラインアセンブラとかgcc依存プリプロセッサ
使いまくってるメインプロジェクトですんなり使えるだろうか

>>632
std::regex re( R"(\[)");
std::regex re( "\\Q[\\E");
これもだめだった

とりあえずclangに移行進めます、C++11はスレチだったみたいでスマソ
634デフォルトの名無しさん:2014/03/07(金) 00:18:47.68
>>633
あ、うんうん
635デフォルトの名無しさん:2014/03/07(金) 00:59:17.51
>>633
stackoverflowのレスみると
C++ standard library(GCC用?)がなんか駄目なんだな。
Clangでこれ使っているならClangでも駄目。で、Boost regex使えか
636デフォルトの名無しさん:2014/03/07(金) 08:40:30.61
std::threadってどれくらい使える?
637デフォルトの名無しさん:2014/03/07(金) 09:38:35.43
普通に使える
638デフォルトの名無しさん:2014/03/07(金) 19:48:53.99
C++11 <regex> support [2013-10-03]
Regular expression support in libstdc++-v3 is now available.
だから、GCCは超最近のものでないと動かんのだな
639デフォルトの名無しさん:2014/03/09(日) 01:36:43.59
regexくらいPOSIXの方でいいじゃんと思ってしまう。
というか、エラーになるということはもしかして、std系って、POSIX関数のラッパーじゃなくてものによっては独自実装しているってことなのか。
知らんかった。
640デフォルトの名無しさん:2014/03/09(日) 02:06:43.17
>639
std::regex は ECMAScript の正規表現対応だからまず間違いなく独自実装だが。
641デフォルトの名無しさん:2014/03/09(日) 02:33:58.47
何も指定しないとECMAになるだけだろ。
バギーな動作するよりは既定でgrepになってた方がまだマシ。
642デフォルトの名無しさん:2014/03/10(月) 17:05:49.31
egrepですらないとか正気か?
それともGNU grepとかBSD grepのことか?
643デフォルトの名無しさん:2014/03/10(月) 21:38:10.28
基本正規表現も拡張正規表現も書式が違うだけでできることにたいした違いはないでしょ

わざわざ実装するとかどうしてそんなことになったんだろ。
キャプチャの問題?
644デフォルトの名無しさん:2014/03/10(月) 21:57:51.80
どのライブラリ実装も実装は別にやるに決まってるだろw
645デフォルトの名無しさん:2014/03/11(火) 05:23:11.47
定数をconstexprにするメリットってあんの?
646デフォルトの名無しさん:2014/03/11(火) 23:39:44.52 ID:fXwBZvGt
>>645
コンパイル時に決定できないとき教えてくれるからバグを防げる
647デフォルトの名無しさん:2014/03/12(水) 05:31:43.20 ID:zulvYP1L
>>646
なるほど
648デフォルトの名無しさん:2014/03/13(木) 19:03:46.54 ID:81wfXhZd
普通の定数でも決定できないとエラーになるんじゃね
649デフォルトの名無しさん:2014/03/13(木) 19:14:49.29 ID:+lIKaSU4
>>648
ならないよ。そのスコープに入るときに計算されるだけ。
650デフォルトの名無しさん:2014/03/13(木) 19:32:07.93 ID:nfV6YhIZ
>>648
constだと const int x = rand(); みたいなことが普通に出来る。constexprでは不可。
651デフォルトの名無しさん:2014/03/13(木) 19:41:03.39 ID:nfV6YhIZ
>>650を書いてから思ったけど、C++14ならコンパイル時乱数ってのもそれほど難しくないよなw
652デフォルトの名無しさん:2014/03/13(木) 19:47:59.08 ID:81wfXhZd
>>650
ああ、そうだ
const を使った時にエラーになるだけだった
(コンパイル時定数でないといけない所に使うと)
653デフォルトの名無しさん:2014/03/13(木) 21:31:28.19 ID:gZyvGjeH
>>651
コンパイルのたびに変わられてもなあw
デバッグ担当者に恨みがあるときに有用か
654デフォルトの名無しさん:2014/03/14(金) 00:55:48.19 ID:8ZkUtZ7A
これは素晴らしいコード
よく覚えておこう
655デフォルトの名無しさん:2014/03/18(火) 21:52:05.87 ID:UBk2tVSE
江添より始めよ

ドワンゴの会長が江添に、C++プログラマを招く方法を相談したところ、
「まず自分のような優秀でない者を優遇してください。
そうすれば、もっと優れたC++プログラマが次々に集まってくるだろう」と言ったという故事から。
656デフォルトの名無しさん:2014/03/19(水) 03:12:08.03 ID:eiPnsEPV
ホワイトボードにくだらねえコード書かせる
面接やめりゃいいんじゃないの
あれは萎える
657デフォルトの名無しさん:2014/03/19(水) 03:16:23.59 ID:vxKEh5eU
なにそれ
あーここ文法エラーですねーご縁なかったですねー
みたいなことでもやってんのかい
658デフォルトの名無しさん:2014/03/19(水) 09:19:45.88 ID:zT3d0OOi
>>655
何かと思ったら江添氏ドワンゴニ就職してたんだな。そりゃ妬ましいですなあ。
659デフォルトの名無しさん:2014/03/19(水) 09:54:25.98 ID:bZgbKUm9
ドワンゴに就職してからアンチ増えた気がするね。
大抵655みたいな下らない奴なんだけど
660デフォルトの名無しさん:2014/03/19(水) 13:52:16.85 ID:jfFivXOk
ドワンゴとかいうブラック企業に入ったらご愁傷様としか思わん
661デフォルトの名無しさん:2014/03/19(水) 14:05:41.36 ID:CB1HUIXp
仮にブラックだとしても、裁量労働制でノルマもないんだから羨ましいことはあっても不憫には思えないな。
662デフォルトの名無しさん:2014/03/19(水) 21:11:44.61 ID:aDPhdWIk
C++14っていつ頃の予定になってんの
663デフォルトの名無しさん:2014/03/19(水) 21:16:13.44 ID:5IXC0HIP
14年ごろ
664デフォルトの名無しさん:2014/03/20(木) 00:18:22.53 ID:1Y22wDAD
実際のところ皆はもう案件でC++11使ってる?
うちはまだダメだ。boostもダメ。
665デフォルトの名無しさん:2014/03/20(木) 22:13:56.93 ID:/M0F5d5s
>>664
実案件はまだでしょ、自分で使うツールとかで実験的に使い始めたところ
範囲ベースの for とかめちゃ便利だわ
666デフォルトの名無しさん:2014/03/20(木) 22:58:12.94 ID:N5eLnApK
納入とかない仕事なんでC++1yでさえ使ってる。
667デフォルトの名無しさん:2014/03/21(金) 01:32:54.13 ID:OkOuwegv
小規模iOSアプリで使い始めてるけど特になんの問題もない
先んじて、月単位の独自研究の成果を各自持ち寄った結果でもあるので仕事場の空気レベルで特殊な例だと思うが
668デフォルトの名無しさん:2014/03/21(金) 01:37:21.03 ID:7xig81Eo
>>664
2011年開始の案件以降、環境がVC2010になったからVCの機能の範囲で使いまくってる。
もうautoなしなんて考えられん。
669デフォルトの名無しさん:2014/03/21(金) 02:57:02.70 ID:FGAg6ToC
vs2012だからゴリゴリ使ってる
boostも使える
range based forとauto無しでは生きられん
670デフォルトの名無しさん:2014/03/21(金) 07:26:47.86 ID:21MtAdc/
>>669
> range based forとauto無しでは生きられん

range based for って、cbegin( ) 呼んでくれないんだけど、そう言うケースはどうしてる?
うちでは、その部分は従来の書き方してる。
すごくいい機能だけど、それだけにちょっとガッカリ感がハンパない。
671デフォルトの名無しさん:2014/03/21(金) 07:27:35.49 ID:sDay5++M
const auto& にすれば?
672デフォルトの名無しさん:2014/03/21(金) 08:38:07.12 ID:FGAg6ToC
>>670
for_each使うかconst auto&だなー
673デフォルトの名無しさん:2014/03/21(金) 08:54:32.73 ID:VBQzVRnq
template<typename T>
const T& const_wrap(const T& v) { return v; }

for(auto &i : const_wrap(v))

要するにconstへキャストしとけばいいんだろ?
674デフォルトの名無しさん:2014/03/21(金) 10:11:54.32 ID:876LI0nh
>>671
cbegin( ) 使ってくれる?
VS 2013 だとダメだったんだが

>>672
for_each ならいけるの?
いま出先だから、あとでちょっと試してみる

>>673
今んところこれが定番みたいなんだけど、無理矢理感ハンパない
for_each(const auto& i : const v) みたいな構文で使えればいいんだけどね
675デフォルトの名無しさん:2014/03/21(金) 11:30:52.58 ID:7xig81Eo
>>674
cbegin()を使ってくれなくてもiがconstになっていれば文句ないけどね。
676デフォルトの名無しさん:2014/03/21(金) 12:14:37.18 ID:21MtAdc/
>>675
v がメンバーだと const なメンバー関数で begin( ) 使うと怒られるんよ
て言うか、そのための cbegin( ) なんだが...
677デフォルトの名無しさん:2014/03/21(金) 12:54:02.21 ID:VQJvHtSf
>>676
あなたの使ってるコンパイラのライブラリのコンテナ群はconst付いてるbegin endが定義されてないの?
678デフォルトの名無しさん:2014/03/21(金) 13:11:49.86 ID:7xig81Eo
>>676
そういうときはconst付きのオーバーロードが自動的に選ばれるんじゃないの・・・
って、>>677に先に言われたか。
679デフォルトの名無しさん:2014/03/21(金) 16:20:44.86 ID:IxwabTo/
>>677-678
ん、ここc++14/c++1yスレですよね?
680デフォルトの名無しさん:2014/03/21(金) 16:32:21.97 ID:7xig81Eo
>>679
const付きのbegin(),end()はC++11でも削除されてないし、C++14で削除される予定もないよ。
681デフォルトの名無しさん:2014/03/21(金) 16:38:34.04 ID:pRTSEoEQ
新機能じゃないじゃん
682デフォルトの名無しさん:2014/03/21(金) 16:51:30.57 ID:B1xV2tLh
range based for に問題があるって話に対して、いやそれは問題じゃないよって話をしてるんだろ
683デフォルトの名無しさん:2014/03/21(金) 17:01:19.62 ID:VQJvHtSf
まぁrange based for自体が新機能じゃないな。
684デフォルトの名無しさん:2014/03/21(金) 17:43:07.83 ID:aQAHkMot
foreach みたいなものだろ
685デフォルトの名無しさん:2014/03/21(金) 18:01:34.42 ID:xvdwrk0X
>>677-678
え゛っ、const 付きの begin( ) にしとけば使ってくれるんか?
マジで知らんかったわ。
VS 2013 で使えるか、やってみよ。
686デフォルトの名無しさん:2014/03/21(金) 18:38:14.12 ID:lD60fRJj
使ってくれるんか?

方言かい。関西弁としてもけったいな言い方だな。
687デフォルトの名無しさん:2014/03/21(金) 18:39:36.89 ID:nNEE3Utq
つこてくれるんケ?
688デフォルトの名無しさん:2014/03/21(金) 19:01:21.39 ID:bqevYXZK
これが方言に見える地方って・・・・

頭悪そうな文体ではあるけど
689デフォルトの名無しさん:2014/03/21(金) 20:41:01.65 ID:PuCTRIi5
>>688
だって土民は自分が使っている言葉が標準語
そして、それ以外すべてど方言なんですよ
690デフォルトの名無しさん:2014/03/21(金) 20:52:49.08 ID:21MtAdc/
>>686
> 方言かい。関西弁としてもけったいな言い方だな。

気色悪い関西弁やめてんか
691デフォルトの名無しさん:2014/03/21(金) 20:56:25.66 ID:lD60fRJj
begin( ) にしとけば使ってくれるんか?

あのな、主語が何なのか聞いてるんだけど。それとも「使えるんか?」
を「使ってくれるんか?」と言うのかい。

まあ、言葉の使い方おかしいんじゃないかと言ってるのに

おい、>>689。お前は自分では何にも言えないくせに、後ろ
からキャンキャン吠えている女みてえな糞野郎だ。
692デフォルトの名無しさん:2014/03/21(金) 21:14:19.42 ID:PuCTRIi5
>>690
それがそいつの標準語だよ。基地土民のね
693デフォルトの名無しさん:2014/03/21(金) 21:15:25.97 ID:lD60fRJj
はいはい、弱い犬ちゃんw
694デフォルトの名無しさん:2014/03/21(金) 21:18:56.71 ID:PuCTRIi5
土民は
>方言かい。関西弁としてもけったいな言い方だな。
で、主語が何なのか聞いていたのか? 土民じゃないと土民標準語理解できないからな
695デフォルトの名無しさん:2014/03/21(金) 21:19:33.78 ID:lD60fRJj
もう、馬鹿はほっとこ。じゃあね
696デフォルトの名無しさん:2014/03/21(金) 21:40:53.28 ID:o/AML2E/
>>685
この流れの所為で
> const 付きの begin( ) にしとけば
がツッコまれていない件について

begin()にconstつけないだろ
697デフォルトの名無しさん:2014/03/21(金) 21:51:39.48 ID:sDay5++M
ttp://msdn.microsoft.com/ja-jp/library/1sc2e041.aspx
ついてるけど何が言いたいんだ
698デフォルトの名無しさん:2014/03/21(金) 21:59:08.90 ID:o/AML2E/
>>697
いや使うときに
699デフォルトの名無しさん:2014/03/21(金) 22:28:38.75 ID:21MtAdc/
>>698
意味わからん
どっから使う時なんて発想が出てきたんだ?
700デフォルトの名無しさん:2014/03/21(金) 22:36:41.76 ID:yZ2dHoTg
constありのbeginの戻り値をconst_iteratorにして、constなしのbeginの戻り値をただのiteratorにして、
beginは両方多重定義しておけばいいじゃん。使うときは
インスタンスがconst付きかどうかで自動的に選択されるじゃん。
701デフォルトの名無しさん:2014/03/21(金) 22:48:25.31 ID:i1lS1iqd
>>698
イミフ
702デフォルトの名無しさん:2014/03/21(金) 23:15:08.50 ID:PuCTRIi5
今度はじゃんか。ニダよりは良いよね
703デフォルトの名無しさん:2014/03/22(土) 11:59:46.75 ID:w77uEg4K
>>680
それはそうだけど>>674をエスパーすると
c++11で追加された型推論ではautoにconst付けないと
constのbeginが呼ばれないって話でしょ
完全にautoを無視した話してたからいつの時代の話してるんだと思っただけ
704デフォルトの名無しさん:2014/03/22(土) 12:22:44.80 ID:ZdExmIEg
for (const auto &i : v) と書けばいいよ、といえばすむ話だったのか。
705デフォルトの名無しさん:2014/03/22(土) 12:59:52.50 ID:ZPzngx0K
それでは済まないしautoも関係ない話だと思ってたが
そう考えてたやつもいるんだな
706デフォルトの名無しさん:2014/03/22(土) 16:29:25.17 ID:eq/IxRl7
>autoにconst付けないと
>constのbeginが呼ばれない

まるで、constを付けるとauto begin()const->const_iterator
が呼ばれるかのような発言だな。
707デフォルトの名無しさん:2014/03/22(土) 16:39:36.81 ID:HJ0+n2Jk
constで受けてもbegin()constの方が呼ばれないのは解ってんだけどそれが問題になるのどんなとき?
上の方でそれで済まないとか書いてあるからさ。
708デフォルトの名無しさん:2014/03/22(土) 16:41:53.88 ID:j1DZjBUB
もしかして自作コンテナで cbegin に別な意味を持たせてる?
709デフォルトの名無しさん:2014/03/22(土) 18:44:56.14 ID:7xC9kwdc
自作コンテナで非constのbegin()およびそのイテレータの
デリファレンスにコストのかかる処理があるときは問題となる
710デフォルトの名無しさん:2014/03/22(土) 19:32:15.59 ID:ZdExmIEg
const付きbeginとcbeginの処理が異なっているなんて規格上許されるのか?
711710:2014/03/22(土) 19:32:49.47 ID:ZdExmIEg
ああすまん、自作コンテナの話か。
712デフォルトの名無しさん:2014/03/22(土) 19:49:09.81 ID:HJ0+n2Jk
自作コンテナの話の方はbeginのconst付きと付いてないの実装の差異だと思うけど。

ただあんまりそんな実装しないよね。
パッと思いつくのrwlockでconst付きはrlock、const無しはwlock するようなコンテナとか?
でもconst有りと無しで問題になる程パフォーマンス変わるようなコンテナは逆に使いづらいと思うのよね。
713デフォルトの名無しさん:2014/03/22(土) 22:37:22.96 ID:j1DZjBUB
>>709
そういう問題の解決をcbeginに求めようとしているのだな?
不適切なやり方なのかもしれないし、そうでないかもしれない。
714デフォルトの名無しさん:2014/03/23(日) 06:39:41.19 ID:Ci/6MbS/
文盲が多いな
constと非constの違いの話だと思うのだけれど
どうしてcbeginとbeginの違いの話だと妄想したがるのか
715デフォルトの名無しさん:2014/03/23(日) 10:39:09.00 ID:buFfa6rW
>>714
そもそもは>>670から始まってるから
716デフォルトの名無しさん:2014/03/23(日) 10:56:12.39 ID:J+Rs1swr
混乱するから誰かまとめて
717デフォルトの名無しさん:2014/03/23(日) 11:36:21.59 ID:sV6DQ8Cb
template <class T1, class T2>
auto operator + (T1 x, T2 y) -> decltype(x+y)
{
return x+y;
}

上のところで、
error: template instantiation depth exceeds maximum of 900・・・
recursively required by substitution of 'template<class T1, class T2> decltype ((x + y)) operator+(T1, T2) [with T1 = std::complex<double>; T2 = double]

みたいなエラーがでます(gcc4.8.1)。これって、decltype(x+y)のところで、operator+が再帰的に呼ばれているということですか?
718片山博文MZジェバンニ ◆T6xkBnTXz7B0 :2014/03/23(日) 11:39:47.07 ID:FjLlR1KU
>>717
それってそもそも必要なの?
719デフォルトの名無しさん:2014/03/23(日) 11:46:12.34 ID:sV6DQ8Cb
まあ、auto, decltypeの練習で試しにやってみたんですけど。
720デフォルトの名無しさん:2014/03/23(日) 12:06:50.29 ID:E9zZ+v+U
再帰だろうね
721デフォルトの名無しさん:2014/03/23(日) 13:34:05.08 ID:+klle/r1
演算子+(T1 x,T2 y)の返値の型は
演算子+(T1 x,T2 y)の返値の型と定義しているようなものなのでは
722デフォルトの名無しさん:2014/03/23(日) 13:55:55.41 ID:wql3g0E+
C++1yならそもそも -> から先要らないよね
723デフォルトの名無しさん:2014/03/23(日) 15:32:38.95 ID:9EUDVluQ
下請けに丸投げ
724デフォルトの名無しさん:2014/03/23(日) 16:37:18.36 ID:FjLlR1KU
下請けに投げたと思ったら、自分の会社に投げていたでござる
725デフォルトの名無しさん:2014/03/23(日) 16:42:36.55 ID:wDKVi9AQ
decltype以前に無限再帰じゃん
コンパイル時に見つかるだけいいんじゃね

template <class T1, class T2>
auto operator + (T1 x, T2 y) -> decltype(auto)
{
return y ? (++x)+(--y) : x;
}
726デフォルトの名無しさん:2014/03/23(日) 21:55:13.61 ID:sV6DQ8Cb
#include <complex>
...
complex<double> z(0,1);
cout<<1+z<<endl;
をコンパイルすると「複素数と整数の演算+は定義されていない」旨のエラーがでます。ところが
template <class T>
struct double_trait {
typedef T type;
};
template <class T>
using Dtype=typename double_trait<T>::type;

template <class T>
std::complex<T> operator + (Dtype<T> c, const std::complex<T>& z)
{
return c+z;
}
をmain()関数の前に定義すると、今度はビルド実行できます。わからないのはintの場合の特殊化
をしてないのになぜビルド実行できるかです。

※complex<double>とintの単純な演算子オーバーロードを使わなかったのは
オペランドがchar, unsignedなどの場合にも対応させるためです。それと
int iとcomplex<double> zに対して単純にreturn i+z;とするとなぜか実行時
エラーが出ます(TDM gcc4.8.1)。
727デフォルトの名無しさん:2014/03/23(日) 22:06:19.15 ID:sV6DQ8Cb
あ・・・ operator+の定義内でreturn i+z; とやるとまた再帰的にw
728デフォルトの名無しさん:2014/03/23(日) 22:56:26.24 ID:sV6DQ8Cb
あ・・・。

template <class T>
std::complex<T> operator + (Dtype<T> c, const std::complex<T>& z)

は実体化される時に

std::complex<double> operator + (double c, const std::complex<double>& z)

となり、intやchar型の実パラメータが渡されるときに暗黙の型変換が適用されるのか?

template <class T>
std::complex<T> operator + (T c, const std::complex<T>& z)

でもokでした。traitsは関係なしと。お騒がせしました。
今日はもう寝ます。
729デフォルトの名無しさん:2014/03/23(日) 23:05:46.93 ID:sV6DQ8Cb
あれえ?もう一回やったらokじゃない。小保方さんのSTAP細胞みたいに
なっちまった。寝る。
730デフォルトの名無しさん:2014/03/23(日) 23:17:30.67 ID:k+FbO2rG
>>729
お疲れ様。
俺も寝よう。おやすみ。
731デフォルトの名無しさん:2014/03/23(日) 23:27:25.54 ID:oWIQ1yda
C++11でもOKって、C+1yで使えるならCの質問でもOKスレってことだよね
732デフォルトの名無しさん:2014/03/23(日) 23:50:33.19 ID:8OD1stAu
そういやC11スレって無いな
733デフォルトの名無しさん:2014/03/23(日) 23:53:52.09 ID:Cwtmew+7
そもそも環境あるのか?
734デフォルトの名無しさん:2014/03/24(月) 02:55:24.26 ID:zheSyNc8
スマホとMac
735デフォルトの名無しさん:2014/03/24(月) 22:27:29.45 ID:uHELE/QG
VC++2013を未だインストールしてないので、次のコード動くか確かめてもらえないでしょうか?

#include "stdafx.h"

template <class T>
struct double_trait {
typedef T type;
};

template <class T>
using dtype=typename double_trait<T>::type;

template <class T>
std::complex<T> operator + (dtype<T> c, const std::complex<T>& z) //@
{
return c+z;
}

int main()
{
using namespace std;

complex<double> z(0,1);
char c=-1;
cout<<c+z<<endl;

cin.get();
return 0;
}
736デフォルトの名無しさん:2014/03/24(月) 22:46:48.96 ID:uHELE/QG
あ・・・。stdafx.hの中に次の2行が必要です。
#include <iostream>
#include <complex>

>>735の@の引数を直接double cにすると、「多重定義であいまい(ambiguous)」のエラーが出て
しまいます。floatにするとコンパイルエラーは出ませんが、無限再帰に陥るのか実行時エラー
が出ます。dtype<T> c の場合は、T=doubleなので実質dtype<T>=doubleとなるのになのに、
コンパイラはエラーを出さません。また、正常に実行されます。どうも、コンパイラを欺く
トリックではないかと。

※ 1.0+zと書けばすむ話ですが、数学の教科書では普通にz+1とか、1+zとか書きますよね。
しかし、プログラムでうっかりz+1と書いてしまうと、分けのわからないエラーがベラベラと
出てきて初心者はとまどいます。それで、>>735 みたいな手の込んだことをするわけです。
でも、複素数と整数の混合演算を簡単にできる方法ないですかね。
737デフォルトの名無しさん:2014/03/24(月) 22:48:12.05 ID:uHELE/QG
T=doubleなので実質dtype<T>=doubleとなるのになのに、コンパイラはエラーを出さません。

T=doubleなので実質dtype<T>=doubleとなるのに、コンパイラはエラーを出しません。
738デフォルトの名無しさん:2014/03/24(月) 22:52:52.12 ID:JglQ1MVO
>次のコード動くか確かめてもらえないでしょうか
おまえ御命令だ。やれよ
739デフォルトの名無しさん:2014/03/24(月) 23:30:50.09 ID:f/NUMeag
もはやただのテンプレートの話で11,14関係ないだろ

でもひとついっとくとすでに標準に
template<class T> complex<T> operator+(const complex<T>&, const T&);
template<class T> complex<T> operator+(const T&, const complex<T>&);
はあるから
> >>735の@の引数を直接double cにすると、「多重定義であいまい(ambiguous)」のエラーが出て
> しまいます。
はそのせいだろ
740デフォルトの名無しさん:2014/03/24(月) 23:47:28.16 ID:6M4RZ6kU
オンラインコンパイラサービスは色々あるからそれを試すのが良いよ
GCC:http://melpon.org/wandbox/permlink/gCuQdogNabmJhVeF
Clang:http://melpon.org/wandbox/permlink/FkystRrbxJlhHwvf

結論としては、dtype<T>は関係無い。dtype<T>はdouble_trait<T>::typeに展開されるのでTはnon-deduced context、よってここでは推論の対象とならない。
けれども、第二引数のcomplex<T>のTはdeduced contextで推論される。結局Tはcomplexのテンプレート引数に推論されてオーバーロード候補としてマッチする。
参考:http://melpon.org/wandbox/permlink/CYnRbBgzf2gL4vGL
ここも参考になるかも(英語)
http://stackoverflow.com/questions/8775202/how-do-template-aliases-affect-template-parameter-deduction
741デフォルトの名無しさん:2014/03/25(火) 00:57:00.26 ID:rAz4buIA
>>739-740
俺には?だが、原因が分かるってレベル高いんだな
g++にはdemangleする関数あるのか、メモメモ(AA略)
742デフォルトの名無しさん:2014/03/25(火) 01:03:54.21 ID:dLACqsrm
>>740

ありがとうございます。

私は、多重定義のチェックと実体化のタイミングの問題かな?と考えました。
となると、コンパイルによってはダメかもしれないと考え、VC++ではどうなるんだろ?
と思った次第です。

>dtype<T>は関係無い。

そうですか。私は「double_trait<T>::typeで包むことによってコンパイラ
の多重定義のチェックから逃れているが、最終的にはdouble型の引数を
もった関数が実体化され、実パラメータがcharやintの時に暗黙の型変換
が働いている。」と解釈していました。

この考えは間違いですかね。
743デフォルトの名無しさん:2014/03/25(火) 01:08:25.46 ID:dLACqsrm
解釈していました。

>>740 さんを読んで解釈しました。
744デフォルトの名無しさん:2014/03/25(火) 02:59:03.84 ID:cgyBljYJ
で、どの辺がC++14なの?
現行規格の質問は現行規格スレでやれ
745デフォルトの名無しさん:2014/03/25(火) 09:56:38.99 ID:aIELEUmN
ああ、C+11/C++14じゃなかったんですね。失礼しました。
746デフォルトの名無しさん:2014/03/25(火) 18:38:12.70 ID:ktix9ZhM
C+11ってC++11とC11のどっちだ
747デフォルトの名無しさん:2014/03/25(火) 22:03:54.20 ID:DjVofhuk
C+11 = C+1一 = C++ = C++
748デフォルトの名無しさん:2014/03/26(水) 00:25:37.22 ID:BPRBwKR1
>>740
そのmelponてとこで手持ちのコードを走らせてみたらclang 3.4では通るもののgcc 4.8.1ではコンパイルエラー。
念のためideone(gcc 4.8.1になってる)でやってみるとコンパイル成功して実行もできる。
vc(2010, 2013)でも問題なし。
なんか変だな???
749デフォルトの名無しさん:2014/03/26(水) 19:10:33.17 ID:ysWuWvgs
>>748
呼称はwandboxがよいと思う
ソースによるけど新しい機能についてはコンパイラにバグがある可能性もある、またはオプションの関係とかも
詳しいところは実際のソースを見なければわからない
750デフォルトの名無しさん:2014/03/26(水) 19:56:25.59 ID:9PLgomQW
>>749
ソースすら出さないであーだこーだって、独り言(俺日記)カキコしてもって感じだよね
751デフォルトの名無しさん:2014/03/26(水) 20:40:31.98 ID:BPRBwKR1
>>750
そう言われてもね。
ソース垂れ流しても迷惑だし、ちゃんとポイントを絞って提示するのは難しい。
752デフォルトの名無しさん:2014/03/26(水) 20:42:26.73 ID:2pJmwYuc
無能なのね
753デフォルトの名無しさん:2014/03/26(水) 21:25:42.63 ID:BPRBwKR1
うん。

そのwandboxってやつのgccエラーを読んでもわからないので、抽出できない。
「 'v' は type 'int(int)' であってメンバーポインタじゃねーよ!」と言ってるらしいんだけど、
その行の近辺に 'v' なんて無いし・・・
754デフォルトの名無しさん:2014/03/26(水) 21:45:50.64 ID:Y1umZvGr
auto変数が分からないと飯が食えなくなる?STLでかなり危ないが
755デフォルトの名無しさん:2014/03/26(水) 21:48:18.57 ID:Vfy/7S1e
釣りなら初心者スレでどうぞ
756デフォルトの名無しさん:2014/03/27(木) 16:12:52.97 ID:6aYzX2Zx
飯がどうとかいう話は次元が違うからマ板でやれ。
757デフォルトの名無しさん:2014/04/01(火) 20:42:02.69 ID:gKhRKamL
>>755 >>756

馬鹿のくせにエラそうに言うから誰も書き込まんだろ。
もう、お前ら来るな。陰菌じゃなかった、陰気臭い。
758デフォルトの名無しさん:2014/04/01(火) 21:14:46.02 ID:28c8XDsv
「俺、auto使えないんだ」と自己紹介乙
759デフォルトの名無しさん:2014/04/01(火) 22:04:36.61 ID:+EnZFn0e
アウト!
760デフォルトの名無しさん:2014/04/02(水) 00:28:39.77 ID:4mJ5OkVZ
auto が使える子になったというのに一向に使えないおまいらワロスw
761デフォルトの名無しさん:2014/04/02(水) 01:11:58.18 ID:xWN8C05F
C++11以降の書籍がほしいお
762デフォルトの名無しさん:2014/04/02(水) 06:12:23.58 ID:pjklZg5A
>>757
> 馬鹿のくせにエラそうに言うから誰も書き込まんだろ。
馬鹿が書き込む必要はないからこれでよい。
過疎板で無理にすれ違い板違い場違いネタ雑談でスレを伸ばす必要はない。
763デフォルトの名無しさん:2014/04/02(水) 07:26:49.12 ID:16PuwTBy
VC++2010でauto使うとたまにコンパイラがエラー吐く
764デフォルトの名無しさん:2014/04/02(水) 07:42:34.19 ID:SfgYmxWg
規格が改訂される前に出荷されたコンパイラーに文句言うなよ
765デフォルトの名無しさん:2014/04/02(水) 07:47:42.02 ID:VoSgAfoQ
2013使えよ
766デフォルトの名無しさん:2014/04/02(水) 10:04:03.61 ID:X8BOgtKu
constメンバ関数内で特定のメンバ変数を(自己責任で安全に)書き換える許可を与えるのってなんでしたっけ
767デフォルトの名無しさん:2014/04/02(水) 10:07:17.45 ID:VoSgAfoQ
mutable
768デフォルトの名無しさん:2014/04/02(水) 10:45:51.70 ID:X8BOgtKu
サンクス
769 ◆QZaw55cn4c :2014/04/02(水) 18:56:18.22 ID:9lAFE+Pq
>>761
まだ外書レベルのようですね.kindle 経由で iPhone でしこしこ読んでいるけど結構厳しい(よる年波で近眼がつらい‥‥)
770デフォルトの名無しさん:2014/04/02(水) 20:50:01.60 ID:Oc3JiJZr
というか、何でスレタイが

C++14/C++1yなんだよ。

C++11だって使いこなせていない奴いるのに。
771デフォルトの名無しさん:2014/04/02(水) 20:51:57.60 ID:Oc3JiJZr
>>762

じゃあ、お前が書き込むなよ。お前、ウザいんだよ。
職場でも嫌われ者だろ
772デフォルトの名無しさん:2014/04/02(水) 20:57:19.75 ID:PAouqAzj
現行を使いこなせてないとか次期C++スレで言われても
773デフォルトの名無しさん:2014/04/02(水) 21:27:44.90 ID:ueE6QFcL
可哀想な子なの。触らないで
774デフォルトの名無しさん:2014/04/02(水) 21:31:38.39 ID:QnsIQKqw
C++を理解していない奴がいる
 ↓
C++の改定予定の次期規格のスレに物申す 

この発想がキチガイ
775デフォルトの名無しさん:2014/04/02(水) 21:38:22.33 ID:YTP5IJHu
ID:Oc3JiJZrって必死にぐぐりながらカキコしてんだろうなw
いちいち支離滅裂だもんw
776デフォルトの名無しさん:2014/04/02(水) 22:12:14.42 ID:Oc3JiJZr
馬鹿の妄想w
777デフォルトの名無しさん:2014/04/03(木) 02:29:15.18 ID:xLDtsOGn
人類史上c++を使いこなした人はいません
778デフォルトの名無しさん:2014/04/03(木) 10:48:28.43 ID:IeRRdjD0
じゃあ俺が最初人間だったんだ
779デフォルトの名無しさん:2014/04/03(木) 18:21:45.92 ID:sk+nDb/g
はじめ人間ぎゃーとるず
780デフォルトの名無しさん:2014/04/08(火) 20:23:35.09 ID:vxIM531p
使いこなせなくたっていいじゃないの。この言語。

俺は好きだけど
781デフォルトの名無しさん:2014/04/13(日) 00:42:36.67 ID:jje258uF
おまいらオートというよりマニュアルがないとなにもできないマニュアル人間だもんなw
782デフォルトの名無しさん:2014/04/13(日) 01:21:53.49 ID:g6kjuewa
>>781
面白い!()
783デフォルトの名無しさん:2014/04/13(日) 15:26:13.37 ID:gPopJ2Qe
ラーメン作る時も水を計量し茹で時間もぴったりでないと気が済まないマニュアル人間
784デフォルトの名無しさん:2014/04/13(日) 16:41:19.25 ID:QfBMtLzF
計量もせず料理してんのか
自分で食うだけならいいけど迷惑だから人に振る舞うなよ
785デフォルトの名無しさん:2014/04/13(日) 16:46:11.25 ID:wSq/pgWA
>>783
料理ってそういうもんだから
786デフォルトの名無しさん:2014/04/13(日) 16:54:31.75 ID:g6kjuewa
>>783
目分量を「アート」とか言っちゃう人かな?
787デフォルトの名無しさん:2014/05/01(木) 06:16:27.89 ID:jnur+x0Z
Programming: Principles and Practice Using C++ (2nd Edition)がもうすぐ出るな
788デフォルトの名無しさん:2014/05/02(金) 21:31:40.17 ID:IMg3w3Zx
「C++フロントエンドとしてClangを使ってLLVM中間コード(IR)を生成したのち、
プロプライエタリなIntel製のコンパイラでその中間コードをネイティブコードにコンパイルする」

IntelがClangベースのC++コンパイラを開発 | スラッシュドット・ジャパン デベロッパー
http://developers.slashdot.jp/story/14/05/02/0425216/
2014年05月02日 16時03分
789デフォルトの名無しさん:2014/05/04(日) 15:33:01.03 ID:J9FrsreK
ここはツイッターじゃねぇ
意味不明なクソレスすんな
790デフォルトの名無しさん:2014/05/04(日) 15:47:12.32 ID:fKxZYvEo
Clangのは最新のC++規格のサポートが進んでいる
791デフォルトの名無しさん:2014/05/04(日) 15:48:49.88 ID:uzMRkq8y
そうか。
792デフォルトの名無しさん:2014/05/04(日) 15:51:37.36 ID:8lK5PBNC
進んでるっていうかC++14既に対応してるな
793デフォルトの名無しさん:2014/05/04(日) 15:51:53.35 ID:ZNtj5n0p
>Clangのは最新のC++規格のサポートが進んでいる
ここはツイッターじゃねぇ
意味不明なクソレスすんな
794デフォルトの名無しさん:2014/05/04(日) 15:52:44.98 ID:LHvIgNMr
完成していない規格に対応とはこれ如何に
795デフォルトの名無しさん:2014/05/04(日) 15:57:25.44 ID:kkY/TYaH
Intelは相変わらずノロマだなw
796デフォルトの名無しさん:2014/05/04(日) 17:50:41.76 ID:j7xk1fk5
>>793
おまえのどこがえらいのかさっぱりわからん
797デフォルトの名無しさん:2014/05/04(日) 18:50:46.13 ID:BIZ4TF2L
for(true)
{
1500行くらい・・・
}

キチガイですよね?
798デフォルトの名無しさん:2014/05/04(日) 18:59:41.45 ID:n8bRVLF6
>>797
だね。
799デフォルトの名無しさん:2014/05/05(月) 00:03:57.91 ID:r55hxj+Y
犯罪行為といっていい
800デフォルトの名無しさん:2014/05/05(月) 03:18:19.56 ID:Gkok4GNb
>>795
Intelは科学計算や高速金融取引が主要顧客だろうから、
無理して新規格に追従しなくてもいいんじゃね?
801デフォルトの名無しさん:2014/05/05(月) 09:44:39.50 ID:vIqS8S8I
プログラマ視点で考えるとコードの生産性が重視されるけど、ユーザー視点
だと実行速度になるからなあ。
C++の最新規格を積極的に取り入れたいならClangだろうけど、実行速度を
考えるとインテルコンパイラなんだよ。コンパイラだけで数倍変わるケースも
あるからなあ。まあ、科学技術計算のところは往々にしてC++11すら必要な
いからなあ。
802デフォルトの名無しさん:2014/05/05(月) 13:01:09.16 ID:ulMr1Kur
あなたの言うところの科学技術計算とは?

大風呂敷広げずに答えよ
803デフォルトの名無しさん:2014/05/05(月) 13:42:04.45 ID:vIqS8S8I
未だにFortranが使われているような領域だよ。スパコンなんかgcc4.2とかが未だに
現役なんだよ。スパコン向けのコードを書くときに、規格の問題でコンパイルに苦労
することがある。また、科学技術計算では線形問題を扱うことが多いので、Lapackや
MKLが使われるし、自前でコアな部分を書くときはインラインアセンブラだから、
今のところC++11が必要とされないんだよ。最も科学技術計算を行う研究者がC++11
とかに興味がないんだろうけどね。本質じゃないから。個人的には使ってもらいたい
と思うんだけどね。
804デフォルトの名無しさん:2014/05/05(月) 13:47:12.04 ID:dXEEoavT
現実はいろいろってことやね
805デフォルトの名無しさん:2014/05/05(月) 13:59:29.98 ID:1BHBnJWI
過去の資源にてこ入れできればいちばんよいのだけれどな
コンパイラのソースなんてGPLでもなければまず公開されていないと思われ
806デフォルトの名無しさん:2014/05/05(月) 20:18:59.16 ID:uepcHE1E
Fortran77は氏ね
807デフォルトの名無しさん:2014/05/05(月) 21:02:53.84 ID:G7yR9GEh
>>803
研究者ならC++11覚えるより、研究にはげめだろ
本職、プログラマじゃないしな
808デフォルトの名無しさん:2014/05/05(月) 22:47:09.24 ID:YSa885x0
今でもFortranのコードは高速に実行される訳だから無理に変える必要も無いわな
809デフォルトの名無しさん:2014/05/06(火) 00:21:50.16 ID:NL7z67wf
自動ベクトル化への対応とかを考えると
下手にプラグマとかが足されていないC/C++で書くよりも
Fortranコードは高速かもしれない
810デフォルトの名無しさん:2014/05/06(火) 00:46:52.06 ID:M8aO/3ni
門外漢だけど1954年生まれの言語が未だに速度でアドバンテージ持ってるってすごいな
と思ってググって覗いて見ると、言語としてはとくに面白さがないようで。。
科学技術計算向けDSLみたいな立ち位置なのかしら
811デフォルトの名無しさん:2014/05/06(火) 01:59:22.48 ID:2BPuRbma
fortranのコードってCからも呼べるが、
標準では配列のインデクスの先頭が1なのが面倒。

fortranが速いのって、各関数で配列のサイズが明示されるからだと思うけど、違うのかな?
エイリアスの問題はfortranでも生じると思うので、ここは関係ないと思うけど。
812デフォルトの名無しさん:2014/05/06(火) 02:07:43.53 ID:BDsjto8t
>fortranのコードってCからも呼べる
そんな、処理系依存の機能を
さも普遍的であるかのように語られても
813デフォルトの名無しさん:2014/05/06(火) 03:02:53.82 ID:R4LFdeTL
>>810
lisp族もがむばっているようだ、ロートルはあなどれない
814デフォルトの名無しさん:2014/05/06(火) 04:28:48.58 ID:NYusw8jW
現代でも特定分野でアドバンテージをもって使用されているコボルってすごいな
年配のエキスパート職の人に愛されているエキスパート向け言語
815デフォルトの名無しさん:2014/05/06(火) 07:09:49.45 ID:ug+nXQnt
>>811
> fortranのコードってCからも呼べるが、標準では配列のインデクスの先頭が1なのが面倒。

Fortran って多次元配列のインデックスの付け方が他の言語と違うんじゃなかったっけ?

> fortranが速いのって、各関数で配列のサイズが明示されるからだと思うけど、違うのかな?

それは違うでしょ、C でも多次元なら明示しないとダメだし、一次元ならサイズは範囲外アクセスのチェックにしか使わないから。
Fortran のアドバンテージは主にベクトル化の作り込みとか、ライブラリとか、最適化のためのツールとかが充実してることだと思う。

>>812
いまどき、できない処理系なんてあるのか?
816デフォルトの名無しさん:2014/05/06(火) 08:03:25.46 ID:zGtSvv5a
Cだとrestrictや処理系依存の属性を付けて回らないといけないような最適化がFortranだとデフォでできるってのもある
817デフォルトの名無しさん:2014/05/06(火) 10:54:15.76 ID:Yg7JhZN+
理研の研究者曰く、Fortranを使う理由としては自動ベクトル化の
恩恵にあやかれるのが一番大きいと言っていた。昔のスパコンは
ベクトル機が主流だったからなあ。
818デフォルトの名無しさん:2014/05/06(火) 11:01:33.57 ID:FBNZj3A1
>>803
スパコン向けだとコンパイラがそのスパコン作った所の自作ってこともあるからな
C++11がそもそも使えなかったり
819デフォルトの名無しさん:2014/05/06(火) 11:25:09.41 ID:ftcgEc1V
>>816
表現能力が高くない言語だから、最適化がしやすいんだよな
820デフォルトの名無しさん:2014/05/06(火) 13:17:10.31 ID:+EFNtusy
>>818
自作っつーても1から作ってる訳じゃないし、要望ないから対応してないだけでしょ。
821デフォルトの名無しさん:2014/05/08(木) 12:34:05.56 ID:Ll0I2s7d
Fortianってcall by referenceじゃなかったっけ
restrict相当のことができんの?
822デフォルトの名無しさん:2014/05/08(木) 13:43:06.59 ID:JZCmTzL0
汎用言語が特化型言語にその分野で勝てるなどと本気で思っているのか
823デフォルトの名無しさん:2014/05/08(木) 14:03:00.45 ID:713NAhwC
>>821
そりゃぁ、できるでしょ
規格にエイリアスが起こるような引数で呼出をしちゃダメって書くだけだから
でそれを知らずに使うと結果がおかしな事になるだけ
824デフォルトの名無しさん:2014/05/12(月) 19:30:19.95 ID:iANYuL+Z
>>811
違う。ライブラリが優秀なだけ。
825デフォルトの名無しさん:2014/05/12(月) 23:24:46.27 ID:y9Wttb40
>>824
だけであれば、コンパイル済みライブラリを呼び出し規約だけ合わせて持ってくればC/C++で同等の効果が得られるはずだが。
826デフォルトの名無しさん:2014/05/12(月) 23:44:34.39 ID:YQWleS5K
>>825
そうだよ
827デフォルトの名無しさん:2014/05/12(月) 23:46:56.67 ID:vVaOlzqd
828デフォルトの名無しさん:2014/05/13(火) 00:05:22.43 ID:TqSYjziR
>>824
違う。エイリアスを禁止している。
829デフォルトの名無しさん:2014/05/13(火) 00:21:54.82 ID:zyf+D5WO
そんなんスパコン向けのCでもpragmaで記述可能。
FORTRAN屋のリソースが一番重要。
830デフォルトの名無しさん:2014/05/13(火) 01:14:38.11 ID:dZPvmt+0
最近のC/C++コンパイラとFORTRANコンパイラの性能比較ってあんまり聞かないけど、
まあほぼ差ないよね?
831デフォルトの名無しさん:2014/05/13(火) 01:24:02.00 ID:zyf+D5WO
それはプラットフォームに寄るけど、例えばIntel製のx64コンパイラなら大差ない。x86の時代から。
832デフォルトの名無しさん:2014/05/13(火) 01:29:12.40 ID:XEtmCF4Z
行列計算ガリガリやるような場合は、fortranの並列化が良く出る
cでもコードが綺麗でintelコンパイラがしっかり並列化してくれるなら同じくらい
833デフォルトの名無しさん:2014/05/13(火) 01:31:49.46 ID:zyf+D5WO
Crayの時代から言語仕様の差は殆ど無いよ。アホらしい。
834デフォルトの名無しさん:2014/05/13(火) 03:37:05.89 ID:Y9eapwzT
ところでこの流れ、C++14/1yと関係ありますかね?
835デフォルトの名無しさん:2014/05/13(火) 03:53:09.16 ID:ikx/cn8e
SIMD命令をどう扱うか、あるいは最適化とのバランスをどう取るかは
古くて新しい問題なので関連がないとは言えない……かもしれない
過去にはFortranよりも別名の解析が難しすぎて性能出せないからrestrictが入ったりした

いずれIntelのCilk Plus拡張みたいなのがC++にも入ったりするんだろうか
836デフォルトの名無しさん:2014/05/13(火) 03:56:08.26 ID:pwL99Gt3
837デフォルトの名無しさん:2014/05/13(火) 17:33:20.42 ID:nq8xv96S
>>835派荒らし
838デフォルトの名無しさん:2014/06/11(水) 08:43:17.47 ID:sZLJbsHl
>>833
範囲指定で演算出来るのとできないのじゃ全然違うだろ

a(4:16) = b(4:16) + c(4:16)

C++の言語仕様じゃこんな事出来ん。
C++で対抗するならCompiler依存の最適化に頼ってvalarray使うしかない。
839デフォルトの名無しさん:2014/06/11(水) 09:27:46.69 ID:PJoRkmgD
つstd::transform
840デフォルトの名無しさん:2014/06/11(水) 11:50:08.04 ID:01hDVrAo
>>838
FORTRAN2008でも並列化されるかどうかは実装依存だろw
841デフォルトの名無しさん:2014/06/11(水) 20:54:25.72 ID:EAcelASi
>>840
実装依存じゃあるが、std::valarrayは常用されないんで、
殆どのvalarrayを使わない外部のLibraryを
持ち込んだりすると大きな差が出る。
842デフォルトの名無しさん:2014/06/12(木) 01:25:23.15 ID:gBR3iv8w
autoが入ってから面白いコトが出来るようになったな。

struct Some{};
struct One
{
 static int Some(void);
};

template<class Type> Moon(void)
{
 auto someone = Type::Some();
}

Moon<Some>();
Moon<One>();
843デフォルトの名無しさん:2014/06/12(木) 08:11:49.12 ID:NHJ7e1s4
コムパイルエラーを見るのが楽しいの?
844デフォルトの名無しさん:2014/06/12(木) 13:54:52.05 ID:1owlvPjk
auto は超の昔からあるのだが…
仕様変更のことなのかこのバカが言いたいのは
845デフォルトの名無しさん:2014/06/12(木) 19:43:58.13 ID:pL3eo2ak
>>843
Moonの戻り値型書き忘れたけど戻り値の型と各関数の実装書いとけばCompileは通るだろうよ。
面白いのは、static関数の代わりにConstructorが使える事。
autoの仕様が変わる以前もstatic関数の代わりにConstructorを使えたが、
戻り値の型がConstructorと違う場合は不便だった。
846デフォルトの名無しさん:2014/06/12(木) 20:00:01.48 ID:by0Erjmi
struct Hello
{
 static ::std::string string(void)
 {
  return "Hello";
 }
};

template<class factory> void Print(void)
{
 auto message = factory::string();

 std::cout << message << std::endl;
}

Print<Hello>();
Print<std::string>();
847デフォルトの名無しさん:2014/06/12(木) 21:10:12.35 ID:S879vZLc
>>845
無知ですまんが それがどの仕様によるものなのか
教えてもらえないだろうか
848デフォルトの名無しさん:2014/06/12(木) 22:28:30.40 ID:0MXtuPFI
static int Some(void);
ってコンストラクタじゃなくて関数宣言じゃね
849デフォルトの名無しさん:2014/06/12(木) 22:37:15.67 ID:S879vZLc
>>848
そっちじゃなくて
struct Some{}; に対して
var x = Some{}; だけでなく
var x = Some::Some{}; ができるらしい
ということじゃ
850デフォルトの名無しさん:2014/06/12(木) 22:37:52.20 ID:cQg3VuKd
>>848
Constructorって言ってんのははSomeのデフォコン
851デフォルトの名無しさん:2014/06/12(木) 22:44:08.45 ID:nzSGZ+E8
>>849
それ俺も不思議に思った。
出来ないよね?
852デフォルトの名無しさん:2014/06/12(木) 22:45:19.54 ID:S879vZLc
>>851
出来ないと思ったけどVC++(CTP)で通ったのでマジかと思った
853デフォルトの名無しさん:2014/06/12(木) 23:02:25.72 ID:0MXtuPFI
見るとこ間違えてたか
と思ったけどgcc 4.9.0でSome::Some{}が通らない
854デフォルトの名無しさん:2014/06/12(木) 23:09:11.43 ID:S879vZLc
n3936の5.1.1p13と5.2.3あたりを読んだが
それらしい記述が見つけられんかった
>>845の解説をキボンヌ
855デフォルトの名無しさん:2014/06/12(木) 23:11:57.71 ID:a0qy1iPO
VCなら行けたな
856デフォルトの名無しさん:2014/06/12(木) 23:15:08.73 ID:CZtMYB4X
さっちんが先走りしただけじゃね?
857デフォルトの名無しさん:2014/06/13(金) 00:58:01.15 ID:hmIHNc6x
>>849
それはできない。
3.4.3.1 [class.qual] p2 (N3936)
> ... Such a constructor name shall be used only in the declarator-id of
> a declaration that names a constructor or in a using-declaration. ...
858デフォルトの名無しさん:2014/06/13(金) 04:28:38.17 ID:LbGT7je0
なら>>842はなんでコンパイルできるんだ
859デフォルトの名無しさん:2014/06/13(金) 04:35:34.24 ID:OKMjmph6
規格に準拠しきってないコンパイラなんて珍しくも無いと思うが
860デフォルトの名無しさん:2014/06/13(金) 05:23:52.19 ID:+JhvPlQc
特にVC++とかな
861デフォルトの名無しさん:2014/06/13(金) 10:43:02.97 ID:9I0XJZWT
他にはVC++とかね
862デフォルトの名無しさん:2014/06/13(金) 11:04:32.57 ID:X7OhNsdX
あとVC++もだな
863デフォルトの名無しさん:2014/06/13(金) 20:11:13.22 ID:UDg2skpP
それとMicrosoft C/C++ Optimizing Compilerとかな
864デフォルトの名無しさん:2014/06/13(金) 22:36:24.30 ID:MHajdieU
うんこgccよりはマシかな
865デフォルトの名無しさん:2014/06/14(土) 00:02:08.88 ID:+uvAFgvW
規格に準拠しきってるコンパイラなんて存在しないだろ…
866デフォルトの名無しさん:2014/06/14(土) 06:48:05.07 ID:/TDJbnG0
だったら何のための規格なんだろうな
867デフォルトの名無しさん:2014/06/14(土) 07:07:02.61 ID:oqKmDn6y
実装の目安にして他との互換性を気持ち上げておく為?
868デフォルトの名無しさん:2014/06/14(土) 11:24:32.20 ID:kVfPiGuj
完全準拠してますと謳えば花丸がもらえるんだからそれなりの価値はある
869デフォルトの名無しさん:2014/06/14(土) 15:43:57.07 ID:s0fnKBCV
昔の言語には実際に規格の無いのがあったが
その結果、方言と言う名の全く別の言語が大量に生まれた

ある環境で書いたコードが他の環境で動くよう意識すれば、ある程度書ける
それは規格あってこそだと思う
870デフォルトの名無しさん:2014/06/14(土) 16:07:09.91 ID:CAKJ4sQG
プログラミング言語の規格ともなれば、テストスイートとしてサンプルプログラム集があって
それを例えば99.5%動かせないと規格準拠を名乗れないとか決まってるもんじゃないの?
871デフォルトの名無しさん:2014/06/14(土) 16:09:10.61 ID:vfNFzGu5
>>870
そんな規格は見たことがない
ただ誰もマトモにフル実装できない糞言語も珍しい
872デフォルトの名無しさん:2014/06/14(土) 16:23:37.71 ID:aHTZpW4+
規格化されている言語でフル実装(?)されている言語て何があるの?
873デフォルトの名無しさん:2014/06/14(土) 16:26:00.44 ID:CAKJ4sQG
>>871
FortranにはU_F95_TS、AdaにはACATSなんかのテストスイートがあるけど
874デフォルトの名無しさん:2014/06/14(土) 16:41:48.49 ID:CAKJ4sQG
>>872
ttp://www.iso.org/iso/home/store/catalogue_tc/catalogue_tc_browse.htm?commid=45202
C#とかRubyとかフル実装されてそうじゃね?実装を元に規格作ったんだから

AdaもACATSがあるから準拠率は高いよ、まあ改定にともないACATSがカバーしてない部分が増えてきたけど
BASICやPascalあたりは規格よりもデファクトスタンダードな文法互換の処理系の方が多いと思うw
Full BASICやExtended Pascalを通す処理系は少ないけど、N88BASIC風やUCSD Pascal風に書いとけば大体通るw
875デフォルトの名無しさん:2014/06/14(土) 17:35:37.37 ID:kVfPiGuj
AdaとかFortranは軍事用で客が強い
876デフォルトの名無しさん:2014/06/14(土) 19:23:31.39 ID:ni6zFfuh
さすがプログラム板
0か1、100%じゃないと意味が無いってやつが居るな
877デフォルトの名無しさん:2014/06/14(土) 21:14:48.18 ID:s0fnKBCV
>>874
basicの規格はホントになあ…
878デフォルトの名無しさん:2014/06/14(土) 22:38:11.61 ID:TjXeM4mh
エイダ ラブレスさんの母親の名前は
アナ ベラ ミル バンク
879デフォルトの名無しさん:2014/06/15(日) 20:28:12.01 ID:+/6EDhQc
clangでC++14満たしてない機能ってなにがあるっけ?
880デフォルトの名無しさん:2014/06/16(月) 03:05:02.10 ID:6StcDcqd
http://clang.llvm.org/cxx_status.html
ググればわかる事だけに意図が判らんな
どーせ本当に聞きたいことは他にあるんだろ?
素直に言ってみ

あれがないよォォ〜あれが違うのォ〜あれが無きゃいやあああとかあんだろ
もしくは林檎だけは嫌なのォやめテェーとかその辺か

ほれほれ
881デフォルトの名無しさん:2014/06/16(月) 03:29:42.14 ID:CewFynVt
なんだこいつ
882デフォルトの名無しさん:2014/06/16(月) 15:29:57.12 ID:lfARp+i5
ググればわかる質問を他人に答えてもらってお礼もないとは性根が座っている。立派立派。
883デフォルトの名無しさん:2014/06/16(月) 15:55:21.79 ID:inAhM+v5
ググれば分かる質問をわざわざ答えるとはおまえはブァフリンか?
884デフォルトの名無しさん:2014/06/18(水) 11:06:30.77 ID:SROYhCqR
こうやっていつものようにスレは埋まっていく
885デフォルトの名無しさん:2014/06/18(水) 11:38:20.42 ID:bWi5oQT8
C++14まだー?
886デフォルトの名無しさん:2014/06/18(水) 16:08:27.06 ID:sAJDpU64
winさんとこ以外はもう来てるらしいよ
887デフォルトの名無しさん:2014/06/18(水) 21:38:15.35 ID:2d3j0Gfz
ISOは殿様商売なので
出版を人並みに急ぐとか
そういうことはしません
888デフォルトの名無しさん:2014/06/18(水) 22:52:04.43 ID:ZMMbatdC
出版はめっさ早いが。ドラフトも駄々漏れだし。
仕様策定には当たり前だが時間かけているけど。
889デフォルトの名無しさん:2014/06/19(木) 12:23:54.10 ID:XmTJejmR
今ISOはc++14に向けてなにやってるの
まだきょうぎちゅうなの?
890デフォルトの名無しさん:2014/06/19(木) 12:39:01.26 ID:EXEtiHUa
papers読め
891デフォルトの名無しさん:2014/06/22(日) 17:06:27.03 ID:5aisGSmT
INVOKEってどうなるの?
892デフォルトの名無しさん:2014/06/23(月) 18:03:38.64 ID:ak9GohgQ
実行される
893デフォルトの名無しさん:2014/06/24(火) 03:08:08.15 ID:xQiqcsqW
インボケって何?
894デフォルトの名無しさん:2014/06/24(火) 04:06:18.93 ID:JJ61LHPx
T.M.Revolutionかな?
895デフォルトの名無しさん:2014/06/24(火) 10:42:36.36 ID:eAG9KtFA
マジしとくとINVOKEはbindとかの関数ラッパーの動作を定義する規格内の用語・抽象概念
C++14かそれ以降では具体的なapplyテンプレートの仕様に吸収・再定義されてINVOKE自体は消滅する予定
896デフォルトの名無しさん:2014/06/24(火) 18:47:30.95 ID:agNpfg/I
そりはn3932の20.9.2のINVOKEが無くなるということ?
2014年年内に間に合うんかね
897891:2014/06/24(火) 19:53:37.36 ID:6rG++Vto
>>895-896
よくわかんないけど、https://isocpp.org/files/papers/N3932.txt とかのこと?

関数ラッパーを作ってみたけど、元の関数の機能のひとつ(デフォルト引数)がどうしても再現できなくて。
ファンクタならできるんだけど。
898896:2014/06/29(日) 09:25:12.32 ID:1IB6jm7Z
>>897
亀レスだけど3936の間違いだったすまん
899デフォルトの名無しさん:2014/07/02(水) 22:45:21.87 ID:isei6xkR
std::integer_sequence ってC++14で組み込まれるそうで、手で展開するのと違って限界が特にないのかな。
、と思って実験してみたら80万弱で頭打ちだった。
Wandbox上の[C++] clang HEAD 3.5.0 で terminate called after throwing an instance of 'std::bad_alloc' だと。

手で適当に展開したやつだと65536ぐらいだからずっといいけど。
900デフォルトの名無しさん:2014/07/03(木) 03:41:17.83 ID:nzgLUlGK
>>899
それってメモリ不足なんじゃ
901デフォルトの名無しさん:2014/07/03(木) 06:49:15.61 ID:4KEDy6y8
>>900
そうだろうけど、コンパイラ・マジックでなんとかするのかと思ってた。
902デフォルトの名無しさん:2014/07/03(木) 12:44:23.19 ID:OnH7QKX2
20、30ならともかく
6万80万っていうのは何がしたいんだ
903デフォルトの名無しさん:2014/07/03(木) 21:01:29.81 ID:4KEDy6y8
現時点で具体的な目的はない。

再帰深度の問題かと思ったがそうじゃないみたい。
単に2つのindex_tupleをつなげるだけで大きさの限界にひっかかるね。
32768 + 32768 だとOKで 32767 + 32767 だとダメだとか。
904デフォルトの名無しさん:2014/07/03(木) 21:06:19.58 ID:4KEDy6y8
間違えた

32769 + 32769 だとOKで 32770 + 32770 だとダメだとか。
905デフォルトの名無しさん:2014/07/05(土) 13:09:02.08 ID:ZUhQa0cg
>>900
目盛りは最低でも20cmはほしいよな。
906デフォルトの名無しさん:2014/07/05(土) 13:17:45.86 ID:yCjkblvI
VC2013のCTP全然期待外れだ
907デフォルトの名無しさん:2014/07/05(土) 13:24:28.66 ID:DUAZ7FzQ
>>905
お前なら 10cm で十分だろ、見栄張るなよ (w
908デフォルトの名無しさん:2014/07/06(日) 09:26:45.48 ID:KxJqyqox
>>906
constexpr はダメだね。
constexpr であるべきところに「constexpr」と書くことができるようになった、ってだけでまともに活用できない。
909デフォルトの名無しさん:2014/07/09(水) 11:11:11.95 ID:NRoV+z3N
C++14までで
int ar[n]はできるようになったのに
array<int, n> arはできないのか?
910デフォルトの名無しさん:2014/07/09(水) 17:09:46.31 ID:8DXcBnBI
可変長配列は別物の機能なので…
911デフォルトの名無しさん:2014/07/10(木) 03:14:43.54 ID:AqBf1VN+
>>909
>C++14までで int ar[n]はできるようになったのに
ソースは?
912デフォルトの名無しさん:2014/07/10(木) 04:49:03.76 ID:uBnV0o0L
>>911
gcc4.10
913デフォルトの名無しさん:2014/07/10(木) 23:44:02.38 ID:Y22Tg+si
>>912
gccはC++03以前から独自拡張で、
可変長配列実装してたろ。
てか14のヤツはアレのフィードバックなんだよな。
914デフォルトの名無しさん:2014/07/11(金) 00:18:38.09 ID:HlACSYaK
規格に実装から取り入れられた機能が入るのはそう珍しい事じゃない、
というか複数の既存実装の足並み揃える為に規格化したりするわけで…
915デフォルトの名無しさん:2014/07/11(金) 00:32:43.48 ID:eEl8QyHV
>既存実装の足並み揃える為に規格化

GCC「でもマイクロソフトが起源の関数は実装しません(キリッ)」
916デフォルトの名無しさん:2014/07/11(金) 01:04:16.55 ID:RRV/Pxnb
そらMSは他のOSの事を考えてねぇからな。
917デフォルトの名無しさん:2014/07/11(金) 01:08:25.82 ID:s5/rwczw
つまり規格なんてクソ食らえ
918デフォルトの名無しさん:2014/07/11(金) 07:07:11.72 ID:Zy+ItAcJ
おまえの中ではそうなんだろうな。
919デフォルトの名無しさん:2014/07/12(土) 02:45:35.76 ID:Xvs6Vz0j
↑コミュニケーション障害者
920デフォルトの名無しさん:2014/07/12(土) 08:58:24.44 ID:lB2A13Kv
流れ切るけど、なんで型を推論してくれないの?
http://melpon.org/wandbox/permlink/5YCZLX4zyi6tPVqR

なんか方法ある?
921デフォルトの名無しさん:2014/07/12(土) 10:48:50.91 ID:SOVDXsjY
>>920
どういう結果を求めてる?
shortとintでその引数では推論出来ないでしょ。
922デフォルトの名無しさん:2014/07/12(土) 10:57:13.67 ID:lB2A13Kv
>>921

test(dummy1<4,3,2,1>{})
test(dummy2<4,3,2,1>{})
というように、実引数だけで呼び出せることを求めてます。

dummy1 とか dummy2 という名前は明示的に与えてるんだし、曖昧になる要素ありますかね?
923デフォルトの名無しさん:2014/07/12(土) 11:11:00.63 ID:SOVDXsjY
>>922
あ、すまん。
スマホで見てたんだけど、右端のコードが切れてて、適当に書いたサンプルコードだと思って、脊髄反応してしまった。
確かにぱっと見は曖昧さなさそうだねー。
924デフォルトの名無しさん:2014/07/12(土) 11:20:08.34 ID:lB2A13Kv
>>923
うーん、困った。

それとコメントに「またはE=short, E=int の特殊化バージョンを作っておくとOK」と書いたけど、
正確には特殊化じゃなくて下みたいに型ごとに書けばOK、という意味です。
http://melpon.org/wandbox/permlink/uQssxr5tqoawd7Rw

どうしようかな・・・
925デフォルトの名無しさん:2014/07/12(土) 13:33:52.36 ID:0zpcsUQk
>>920
推論されないのはそういうルールだからじゃないか。variadicになっても同じことだろう

14.8.2 Template argument deduction
...
13 A template type argument cannot be deduced from the type of a non-type template-argument.
14 [ Example:
 template<class T, T i> void f(double a[10][i]);
 int v[10][20];
 f(v); // error: argument for template-parameter T cannot be deduced
? end example ]
926デフォルトの名無しさん:2014/07/12(土) 14:50:12.75 ID:SOVDXsjY
>>925
なるほど。
勉強になったわ。
型パラじゃない(整数)パラメータの場合、その整数自体の型推論は行われないと、規格で定められていたのか。
そんな重箱のスミに見えるようなところまで文書化されているとは…スゴイなあ。
927デフォルトの名無しさん:2014/07/12(土) 15:45:35.02 ID:lB2A13Kv
>>925
ううーむ。

T i とあるところに i=20 が代入されても、T = int と型推論はされないってことですね。

http://melpon.org/wandbox/permlink/5YCZLX4zyi6tPVqR
の例だと、関数テンプレートに渡された引数は dummy1 ってクラステンプレートだから整数じゃないけど、
コンパイルエラーになる以上は規則違反なんだろう。
勉強になりました。
とりあえず明示化の方向で考えます。
928デフォルトの名無しさん:2014/07/12(土) 16:55:48.06 ID:kPUutF0W
最近の Haskell なんかだと型をもうひとつメタなレベル (種; kind) に持ち上げて型レベル計算できたりするんだけど、
C++ でもいずれそのレベルの抽象化が可能になったりするかな?
929デフォルトの名無しさん:2014/07/12(土) 17:12:56.31 ID:beV14n2n
それがconceptなのでは。なんだか誘導尋問っぽいな。
930デフォルトの名無しさん:2014/07/12(土) 17:13:34.43 ID:kRf8d5DF
template< class, class > struct Cell;
template< class > struct Car;
template< class car, class cdr > struct Car< Cell< car, cdr > >
{
 typedef car Cell;
};

template< class > struct Cdr;
template< class car, class cdr > struct Cdr< Cell< car, cdr > >
{
 typedef cdr Cell;
};

Car< Cdr< Cell< int, void > >::Cell >::Cell( 0 );

こういうのは昔から出来たけど。
931デフォルトの名無しさん
>>927
基本を勘違いしてる
複数のテンプレート引数の導出はそれぞれ独立して行われてあとで結果が合成される

例の場合testの呼び出しでcherry=dummy1、それに伴い間接的にE=shortと導出されても
それはelemの導出には影響せず、elem単独では既出の理由で導出できない