トップページ⇒tech
983コメント246KB

C++14/C++1y

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2013/10/28(月) 01:00:22.34
The C++ Standards Committee
http://www.open-std.org/JTC1/SC22/WG21/

Wikipedia
https://en.wikipedia.org/wiki/C%2B%2B14

C++11/C++1y 18
http://toro.2ch.net/test/read.cgi/tech/1365073520/
0002デフォルトの名無しさん2013/10/28(月) 08:53:28.04
18 ブギ、未来を俺にくれ
0003デフォルトの名無しさん2013/10/28(月) 11:29:11.92
>>2
残念だ、その未来に君はもういないんだよ...
0004デフォルトの名無しさん2013/10/28(月) 19:27:47.38
このスレ、通し番号入ってないけど、良いの?
0005デフォルトの名無しさん2013/10/28(月) 19:40:29.79
14はどうせすぐ来年だし過去ログが必要になるようなスレでもないからなければないでべつにいいと思うよ
0006デフォルトの名無しさん2013/10/28(月) 19:40:53.14
C++11のスレは終わった
0007デフォルトの名無しさん2013/10/28(月) 20:04:57.00
C++学園の人々:飛躍と混沌の14年の巻

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

○禿
校長先生。動的配列さんを自分好みに魔改造すべく企んでいるという噂。
0010デフォルトの名無しさん2013/10/28(月) 20:54:50.41
面白いなあ。誰かラノベ書くしかw
0011デフォルトの名無しさん2013/10/28(月) 20:59:46.67
俺のC++達の妹は友達が少ないがこんなにかわいいわけがない
0012デフォルトの名無しさん2013/10/28(月) 21:08:09.18
C++学園キターーーー!!
0013デフォルトの名無しさん2013/10/28(月) 21:18:30.11
俺がC++学園に底辺サンプルとして拉致された件
0014デフォルトの名無しさん2013/10/28(月) 21:44:22.38
動的配列さんはC99クラスには通ったけどC11でクラスになじめず保健室登校(Optional feature)になってしまった
今では、いない子扱いされてる
0015デフォルトの名無しさん2013/10/28(月) 22:06:46.90
>>11
待て、そのfriendは危険すぎる!
0016デフォルトの名無しさん2013/10/28(月) 22:10:47.27
俺のC++コードが修羅場すぎる
0017デフォルトの名無しさん2013/10/28(月) 22:11:38.77
やはり俺のコードは間違っている
0018デフォルトの名無しさん2013/10/28(月) 22:20:04.27
俺の脳内選択肢が、C++11を全力で邪険にしている
0019デフォルトの名無しさん2013/10/28(月) 22:23:47.67
みんなC++のことが大好きで仕方ないんだね
0020デフォルトの名無しさん2013/10/28(月) 22:25:27.00
私が書けないのはどう考えてもC++の言語仕様が悪い
0021デフォルトの名無しさん2013/10/28(月) 22:32:24.16
プログラマーにしようと校長先生そっくりの禿を錬成してみたら、
俺がアスペになっていました
0022デフォルトの名無しさん2013/10/28(月) 22:51:47.32
>>20
それな。
0023デフォルトの名無しさん2013/10/28(月) 22:58:44.74
お前ら俺の同類ばっかかよw
0024デフォルトの名無しさん2013/10/28(月) 23:31:49.72
俺の教室にC++はいない
0025デフォルトの名無しさん2013/10/29(火) 01:49:56.28
Cぷらぷら!
0026デフォルトの名無しさん2013/10/29(火) 02:07:44.15
とりあえずいままで出番がなかった auto さんが大活躍してくれればおれは他どうでもいいや
0027デフォルトの名無しさん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行で書くのが偉いんだよな?身の回りで最近見掛けるわ。

死ねばいいのに
0028デフォルトの名無しさん2013/10/29(火) 02:44:41.64
さすがにその場合expとeqはloop型にするだろ……常識的に考えて……
0029デフォルトの名無しさん2013/10/29(火) 02:46:32.24
bool型のtypoだ。疲れてるんだな
0030デフォルトの名無しさん2013/10/29(火) 15:34:51.26
>>27
const 付けない奴は死ねばいいのに
0031デフォルトの名無しさん2013/10/29(火) 15:55:45.92
ラムダ式を書き連ねて合成して伸ばして等間隔に刻んでサッと茹でて丼に盛って複雑な関数を作る
って書き方は、その関数の生成が実行時になる現在だと悪い冗談だけど、constexprが一般化して
コンパイル時に回るようになったら、思いの他流行りそうな気がしてる。

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

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

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

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

>>44
違います

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

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

氏ね
0055デフォルトの名無しさん2013/11/04(月) 14:42:05.87
これはひどい
0056デフォルトの名無しさん2013/11/04(月) 14:55:03.47
>>54
どこが死ぬに値するのか全然理解できませんが
0057デフォルトの名無しさん2013/11/04(月) 18:24:50.74
>>54
何がまずいんだっけ?
0058デフォルトの名無しさん2013/11/04(月) 18:55:08.12
デバッグしづらい
0059デフォルトの名無しさん2013/11/04(月) 19:28:11.61
複数の実引数の評価順で問題がでる場合と勘違いしてるか
右辺値をとってムーブするpush_backがあることを知らないかだろ
0060デフォルトの名無しさん2013/11/04(月) 19:37:32.08
emplace_back使うとか?
0061デフォルトの名無しさん2013/11/04(月) 20:16:45.13
敢えて言うならoperator newの後に
distributionが例外をスローすると困る?
0062デフォルトの名無しさん2013/11/04(月) 21:00:41.95
その場合は大丈夫でしょ
0063デフォルトの名無しさん2013/11/04(月) 22:32:27.25
正解は?
0064デフォルトの名無しさん2013/11/04(月) 22:33:23.35
問題ない
0065デフォルトの名無しさん2013/11/04(月) 23:13:12.62
変更に弱い(変更で問題を起こしやすい)コードではあるよな。
0066デフォルトの名無しさん2013/11/04(月) 23:38:13.41
emplace_back()を使うと実行結果がおかしくなるな
なんで?
0067デフォルトの名無しさん2013/11/04(月) 23:42:03.50
まず66のレスが馬鹿っぽいことから
原因は66のおつむにあるとみていいだろう
0068デフォルトの名無しさん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;

これでも付けてみろや
0069デフォルトの名無しさん2013/11/04(月) 23:59:18.15
そもそもintなんかvectorに直接突っ込めばいいだろ
わざわざunique_ptrなんか持ち出すまでもない
0070デフォルトの名無しさん2013/11/04(月) 23:59:58.20
大丈夫、みんなそう思ったけど敢えて突っ込んでない
0071デフォルトの名無しさん2013/11/05(火) 00:35:30.93
いやそこは突っ込みどころじゃないから
>>38
>中に入れるクラスはintとは限りません(簡単のためにintにしてあります)
0072デフォルトの名無しさん2013/11/05(火) 00:54:20.47
>>69
>>38

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

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

いや

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

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

universal reference 初めて聞いたわ
というかプログラミング言語C++11の日本語訳まだ出ないのか
英語版は持ってるけど目がチカチカする
ISO/IECもあるけど
0081デフォルトの名無しさん2013/11/05(火) 20:37:36.95
日本語が欲しいなら江添さん()のオナニー書がオヌヌメ。
0082デフォルトの名無しさん2013/11/05(火) 20:37:39.89
参照の縮約?
0083デフォルトの名無しさん2013/11/05(火) 20:39:16.27
>>81
C++11本書くから寄付くれって言ってた人?
有耶無耶にして逃げるのかと思ってたら、無事完成したのかw
0084デフォルトの名無しさん2013/11/05(火) 20:41:17.44
>>83
書きかけで公開したようだ
0085デフォルトの名無しさん2013/11/05(火) 20:52:53.78
>>84
なるほど、事実だけを端的に表現すると「完成はしなかった」ということかw
0086デフォルトの名無しさん2013/11/05(火) 22:01:44.75
ラストスパート中。まもなく一応の完成となる、と本人は言ってる。
0087デフォルトの名無しさん2013/11/05(火) 22:14:37.21
途中まで読んだんだけど、ひたすら規格書の仕様を
呪文のごとく垂れ流ししてるようなつまらなさ。
規格を読んでれば知ってることばかりだし
Exceptional C++とか禿本のように
読んでwktkするものではない。
0088デフォルトの名無しさん2013/11/05(火) 22:24:20.04
>>86
コア言語だけは完成、な
ライブラリは執筆の目途すら経ってないらしい
0089デフォルトの名無しさん2013/11/05(火) 22:27:01.58
そんだけのものでも、これページ数にしたら結構なもんやで
0090デフォルトの名無しさん2013/11/05(火) 22:51:11.87
>>87
いやそれでいいんだ
画面で見るのと本で読むのとではなぜか全然違う
0091デフォルトの名無しさん2013/11/06(水) 00:16:50.51
もともと日本語で読める標準C++(11)の規格の解説を書くというテーマだからそういうもの
0092デフォルトの名無しさん2013/11/06(水) 01:46:49.72
JISの事か
ゴニョ・・・・
0093デフォルトの名無しさん2013/11/06(水) 07:17:36.23
universal referenceてスコットメイヤーズの造語だった気がするけど
禿の本にも出てるんだっけ?
規格的にはreference collpasingだとか言ったと思う
0094デフォルトの名無しさん2013/11/06(水) 10:06:47.95
>>93
collapsing
0095デフォルトの名無しさん2013/11/06(水) 16:20:04.94
Varidec Templatesの使い所がいまいち分からないんだけど
うまくまとめてあるページない?
0096デフォルトの名無しさん2013/11/07(木) 19:03:11.05
型安全なprintfが作れます
0097デフォルトの名無しさん2013/11/07(木) 22:00:17.76
iostreamと同じで、真似してはいけない悪い見本ですね
0098デフォルトの名無しさん2013/11/07(木) 22:07:37.37
stream << 4 << "番目の素数は" << prime(4) << "です。" << 3.1415926 << "は円周率の近似値です。";
0099デフォルトの名無しさん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)
...

みたいなコードを書いてたり書きたかったりした場面で使うだけ
0100デフォルトの名無しさん2013/11/07(木) 23:27:04.00
そんな説明じゃ わからんだろ
正しい使い方の例はstd::threadのコンストラクター
0101デフォルトの名無しさん2013/11/08(金) 00:21:50.94
03までで型の数の制限無し・・・は無理だから制限のゆるいtupleをどう実装するか考えれば
variadic templateのありがたみと使い所の一つは理解できるでしょ
0102デフォルトの名無しさん2013/11/08(金) 07:00:33.48
>>100
いやemplace_pushの方だろう
0103デフォルトの名無しさん2013/11/09(土) 04:59:13.42
このアニメで久しぶりに萌え豚の感覚が蘇った気がする
0104デフォルトの名無しさん2013/11/09(土) 05:00:13.92
ごめんまちがえた
0105デフォルトの名無しさん2013/11/09(土) 11:40:28.99
>>104
どこ?紅以外にあるのか?
0106デフォルトの名無しさん2013/11/10(日) 15:35:37.68
>>95
std::functionの仕様とかみてみ
0107デフォルトの名無しさん2013/11/10(日) 15:52:03.54
14になってもまだ自動委譲搭載されないのかよ
何とかしろよハゲ、残った両サイドの毛も全部引き抜くぞ
0108デフォルトの名無しさん2013/11/10(日) 15:58:11.26
>>107
そんな提案あったっけ?
0109デフォルトの名無しさん2013/11/10(日) 16:00:02.53
Java使いは身の程知らん癖にC++をJava化しようとするから嫌いだ
0110デフォルトの名無しさん2013/11/10(日) 16:01:10.48
>>108
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1363.htm
0111デフォルトの名無しさん2013/11/10(日) 16:05:06.13
>>110
きもいな
0112デフォルトの名無しさん2013/11/10(日) 16:14:09.94
>>111
C++がきもいのは今に始まった事じゃないだろ

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

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

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

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

http://ideone.com/LDs6Av

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

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

http://ideone.com/WPhg2Q

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

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

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

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

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

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

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

shared_ptrで管理されてるオブジェクトがなんらかの事情で普通のポインタで渡されたときに
そのポインタから元のshared_ptrと管理権を共有するshared_ptrを得るというイディオムで使うんだけどな
0223デフォルトの名無しさん2013/11/25(月) 22:26:31.25
http://www.ogis-ri.co.jp/otc/hiroba/technical/boost/index.html
のコラム2
0224デフォルトの名無しさん2013/11/25(月) 22:40:55.34
なるほどかなり特殊なケースみたいだな
0225デフォルトの名無しさん2013/11/25(月) 22:42:55.82
>>222
「shared_ptrで管理されてるオブジェクトがなんらかの事情で普通のポインタで渡されたときに
そのポインタから元のshared_ptrと管理権を共有するshared_ptrを得る」というイディオム

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

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

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

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

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

 馬 鹿
0273デフォルトの名無しさん2013/12/07(土) 00:41:02.43
11で追加された新参者だから14/1yで変更されない保障はないっていう意味だとか
0274デフォルトの名無しさん2013/12/07(土) 02:34:31.91
C++11の話題はスレ違い
async退学の話ならして良い
0275デフォルトの名無しさん2013/12/07(土) 05:34:44.72
clangでも入れるしかないか
VSに入れられるんだからそれで遊べる
0276デフォルトの名無しさん2013/12/07(土) 11:24:24.94
現行規格はスレ違い
0277デフォルトの名無しさん2013/12/07(土) 11:27:15.41
じゃあ次期の話をしようか。
委員会ドラフトってどうなったの?
無かったことにされるレベルで変更入りまくり?
0278デフォルトの名無しさん2013/12/07(土) 13:37:43.49
C++11のスレがないじゃないか
0279デフォルトの名無しさん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/
0280デフォルトの名無しさん2013/12/07(土) 15:19:00.84
C++11は現行規格なわけだし、
特別扱いする必要は無いんだお
0281デフォルトの名無しさん2013/12/07(土) 16:13:58.10
了解した
しかし今のC++スレの質の低下はひどいもんだ
あそこでスレッドやらasyncを質問して果たして答えてくれるのやら
試してみよう
0282デフォルトの名無しさん2013/12/07(土) 18:48:32.64
必要だと思う人がいるのなら、C++11のスレ作ったらいいんじゃないの?
0283デフォルトの名無しさん2013/12/07(土) 19:03:22.93
アイちゃん認定されそう
0284デフォルトの名無しさん2013/12/07(土) 19:48:05.55
C++14をやるのにどのコンパイラ使っている?
VC2013?

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

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

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

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

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

まず間違いなくそっちだろうけど、「clang"の"ビルド」と「clang"で"ビルド」を間違えてるなら指摘すべきじゃないの?
0311デフォルトの名無しさん2013/12/09(月) 06:35:27.00
cの__Genericどう?いい感じ?
visualCみたいに使えるのかな?
他にやることあって出来ないんだよね
0312デフォルトの名無しさん2013/12/09(月) 06:50:43.07
C++にはテンプレートがあるし…
03133032013/12/09(月) 10:30:36.34
すんません、clangをビルドしたいんです
0314デフォルトの名無しさん2013/12/09(月) 10:34:23.11
clangはclangでできてないの?
0315デフォルトの名無しさん2013/12/09(月) 10:50:48.50
VS2013のbuild targetは最近入ったばっかりだからVSは古いの使え。
0316デフォルトの名無しさん2013/12/09(月) 12:20:25.97
>>313
Windows でやりたいのなら
教えて君には厳しすぎる。あきらめろん
ちなみに自称上級者の俺も(ry
0317デフォルトの名無しさん2013/12/10(火) 08:42:48.32
>>290
マジメに調べてんの?

http://www.ishani.org/web/articles/code/clangvsx/
0318デフォルトの名無しさん2013/12/10(火) 09:06:11.37
>>290
http://llvm.org/docs/GettingStartedVS.html

こんなんもあるぞ
0319デフォルトの名無しさん2013/12/10(火) 09:06:59.17
>>311
cのすれで聞けよ
0320デフォルトの名無しさん2013/12/10(火) 16:08:58.08
茶化している奴がこのスレにはいるみたいなんだよ
炎上学習法という正式名称もあるみたいだけどw、このスレには通用しないから
0321デフォルトの名無しさん2013/12/10(火) 18:11:33.09
>>311
最悪
お前と同じ
0322デフォルトの名無しさん2013/12/13(金) 23:25:05.29
C++って肥大化しすぎてもう終わりだ、なんて声聞くけど、代替言語あるの?
D言語ってどうなった?消えた?
0323デフォルトの名無しさん2013/12/13(金) 23:31:56.25
facebookが採用したとかなんとか
0324デフォルトの名無しさん2013/12/13(金) 23:38:21.13
facebookってPHP採用して、PHPが広く普及するのを牽引したらしいけど、
Dもそうなるのか?まさかな…
0325デフォルトの名無しさん2013/12/14(土) 00:23:27.61
C++2011はオナニー言語なので代替など必要ありません。
実用には2003をお使い下さい
0326デフォルトの名無しさん2013/12/14(土) 00:41:41.83
時代は Haskell
C++er なら割と簡単に Haskell を使い熟せると思うなぁ
0327デフォルトの名無しさん2013/12/14(土) 05:50:08.94
>>326
関数を作ったり使ったりはわりと簡単
コンピネータまでいくと概念を理解できるかどうかだけど

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

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

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

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

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

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

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

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

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

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

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

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

新 宿 コ ン パ 2 0 1 3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

やっぱりswap演算子はボツか
0559デフォルトの名無しさん2014/01/29(水) 06:24:26.17
本はよ
0560デフォルトの名無しさん2014/01/29(水) 21:51:33.29
本は要らんから isoははよ規格出せ
0561デフォルトの名無しさん2014/01/29(水) 23:22:02.65
>>557
本はよ
0562デフォルトの名無しさん2014/01/30(木) 00:58:06.43
>>555-557
解説どもです、スッキリしました
変態的で興味が募ったのでちょいぐぐって情報の海に溺れてきます
0563デフォルトの名無しさん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 ); // 暗黙の変換はエラー
0564デフォルトの名無しさん2014/02/14(金) 06:27:40.45
>>563
こういうのはtemplateが役に立つ
http://ideone.com/eFtKnq
0565デフォルトの名無しさん2014/02/14(金) 06:34:30.65
あとはbool引数を取るexplicitコンストラクタを持つクラスをつくって
それをfuncの引数にすると二重の暗黙変換はできないからfunc(explicit_bool_type);に直接intを渡せなくなる。
0566デフォルトの名無しさん2014/02/14(金) 06:36:30.97
http://ideone.com/PqUkNh
0567デフォルトの名無しさん2014/02/14(金) 06:41:43.77
>>565は間違いだった。すまん。
05685632014/02/14(金) 08:31:22.51
>>564-567
ありがとうございます
暗黙の変換が行われる前にテンプレート関数で引き受けて=delete宣言するのですね
目から鱗が落ちました
0569デフォルトの名無しさん2014/02/14(金) 08:39:30.06
>>563
T で受け取って戻り値 std::enable_if<std ::is_same<T,bool>::value>::type

SFINAE サイコー
0570デフォルトの名無しさん2014/02/14(金) 13:52:59.31
static_assert(std::is_same<T,bool>::value, "申し訳ないがbool以外はNG");
0571デフォルトの名無しさん2014/02/14(金) 14:11:25.48
本当に成金企業がやって吹いたw
とりあえずおめ。
0572デフォルトの名無しさん2014/02/14(金) 21:15:51.96
>>569
Tで受け取って、なら大丈夫だけど一般にはT&&とすることも多いから is_same は要注意だよな。
0573デフォルトの名無しさん2014/02/14(金) 21:33:33.45
>>572
そそ
なんかうまく呼ばれねーとなって remove_cv とかゴテゴテと追加
0574デフォルトの名無しさん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;
};
05753932014/02/15(土) 04:06:39.49
俺の予想が当たった!
0576デフォルトの名無しさん2014/02/16(日) 05:06:04.15
なんか言語機能が弱すぎて書き方が多様化するperlっぽくなってるな
オナニー化はダメな流れだわ
0577デフォルトの名無しさん2014/02/16(日) 07:14:28.55
C/C++より強力と言える言語はアセンブラしかないが
0578デフォルトの名無しさん2014/02/16(日) 13:07:36.64
>>577
言語「機能」っていってるじゃん
0579デフォルトの名無しさん2014/02/16(日) 13:40:57.63
オブジェクト指向アセンブラマダー?
0580デフォルトの名無しさん2014/02/16(日) 16:56:16.42
むかしむかし、SAPPというアセンブラが川に洗濯に行って流されてしもうた
0581デフォルトの名無しさん2014/02/16(日) 18:42:32.62
なんで、アセンブラと同程度の実行速度を保ちつつモダンな書き方のできる言語が登場しないのかね?
0582デフォルトの名無しさん2014/02/16(日) 19:40:01.06
Dじゃダメなの
0583デフォルトの名無しさん2014/02/16(日) 19:43:32.33
Dはどうも万年ベータ版な印象
0584デフォルトの名無しさん2014/02/16(日) 20:36:52.85
>>581
童貞度というか HDL はry
0585デフォルトの名無しさん2014/02/16(日) 21:09:46.62
C/C++が一番それっぽいといえばそれっぽいが、そもそもモダンな書き方ってなによ。
0586デフォルトの名無しさん2014/02/16(日) 21:13:25.43
C#みたいなやつ
プロパティとかテンプレートとか
0587デフォルトの名無しさん2014/02/16(日) 21:51:56.13
>>581
お前が作って公開すればいいんじゃね?
0588デフォルトの名無しさん2014/02/16(日) 23:30:49.27
c++11でも充分よくやってるとは思うけどな
でもランタイムで逃げてる言語ほどラクにはならんよなあ

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

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

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

constexpr より強い、comptexpr (compile time expr) が欲しい。
0615デフォルトの名無しさん2014/02/19(水) 22:14:17.07
>>608
仕様に由来しないところで幾らでも足を吹っ飛ばせるから考えるだけ無駄
・・・とか言い出すと言語に寄らずバグらせ放題ってことになるけどな
0616デフォルトの名無しさん2014/02/20(木) 11:45:50.04
>>608
C++はミドルウェアより下のレイヤーで使う言語だから、
分かる人だけ使えばいいんじゃないかな。
エリートさんたちがプログラミングする世界だから。
0617デフォルトの名無しさん2014/02/20(木) 11:52:47.95
>>616
そのポジションはCじゃね?
0618デフォルトの名無しさん2014/02/20(木) 12:03:10.74
>>608
http://ja.m.wikibooks.org/wiki/More_C%2B%2B_Idioms
言語仕様は↑これを完璧に理解出来る程度に分かっていれば良い
0619デフォルトの名無しさん2014/02/20(木) 12:04:24.13
>>617
Cが主戦力であることは否定しないけど、
iOSはデバドラにサブセットC++
WebKITもC++
gccもC++
と増えてきてる。
0620デフォルトの名無しさん2014/02/20(木) 12:19:46.28
新しいボード等が出ても、コンパイラがcしか対応してないって、ばっちゃが言ってた
0621デフォルトの名無しさん2014/02/20(木) 14:30:13.50
そのコンパイラを作って動作保障するのは誰だと思っているんだっ
0622デフォルトの名無しさん2014/02/20(木) 14:38:29.56
×保障
○保証
0623デフォルトの名無しさん2014/02/20(木) 17:58:43.05
現れては消える高級言語を使うよりC++のが楽じゃない?
0624デフォルトの名無しさん2014/03/05(水) 19:02:16.04
C++1yってC++14の次だと思ってたけど、もしかして14のこと?
0625デフォルトの名無しさん2014/03/05(水) 19:43:55.90
C++17を目指してる次のやつのことであってる
0626デフォルトの名無しさん2014/03/06(木) 01:45:01.20
gcc4.8.1で下のコードでエスケープできないってエラー吐く
#include <regex>
std::regex re("\\[(an|pan|man)\\]");
VC++では動いてたんだが
[ってどうやってエスケープするんだ?
0627デフォルトの名無しさん2014/03/06(木) 02:13:16.87
>>626
つ Google
0628デフォルトの名無しさん2014/03/06(木) 03:15:02.53
regexの仕様知らずにいうけど、それでエスケープされないならコードを打ち込む段階で
U+005C(REVERSE SOLIDUS)じゃなくてU+00A5(YEN SIGN)に変換してしまったってことはないか?
まぁ最悪\xhhとかで代用すればいい
0629デフォルトの名無しさん2014/03/06(木) 04:43:28.41
>>626
エラーメッセージは本当にエスケープできないって出るの?
gcc4.8.1は<regex>の実装がまだ不十分な段階にあるんだが。
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
0630デフォルトの名無しさん2014/03/06(木) 18:35:52.72
>>626
VCで動くなら使っているGCCのバグか>>629だろ
GCCなんて使わないでClang使ったほうが良いんじゃないか
0631デフォルトの名無しさん2014/03/06(木) 19:16:53.76
そりゃあヒーローはエスケープなんてしないもんよ
0632デフォルトの名無しさん2014/03/06(木) 19:30:39.21
そんなときはRAWリテラルでも
06336262014/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はスレチだったみたいでスマソ
0634デフォルトの名無しさん2014/03/07(金) 00:18:47.68
>>633
あ、うんうん
0635デフォルトの名無しさん2014/03/07(金) 00:59:17.51
>>633
stackoverflowのレスみると
C++ standard library(GCC用?)がなんか駄目なんだな。
Clangでこれ使っているならClangでも駄目。で、Boost regex使えか
0636デフォルトの名無しさん2014/03/07(金) 08:40:30.61
std::threadってどれくらい使える?
0637デフォルトの名無しさん2014/03/07(金) 09:38:35.43
普通に使える
0638デフォルトの名無しさん2014/03/07(金) 19:48:53.99
C++11 <regex> support [2013-10-03]
Regular expression support in libstdc++-v3 is now available.
だから、GCCは超最近のものでないと動かんのだな
0639デフォルトの名無しさん2014/03/09(日) 01:36:43.59
regexくらいPOSIXの方でいいじゃんと思ってしまう。
というか、エラーになるということはもしかして、std系って、POSIX関数のラッパーじゃなくてものによっては独自実装しているってことなのか。
知らんかった。
0640デフォルトの名無しさん2014/03/09(日) 02:06:43.17
>639
std::regex は ECMAScript の正規表現対応だからまず間違いなく独自実装だが。
0641デフォルトの名無しさん2014/03/09(日) 02:33:58.47
何も指定しないとECMAになるだけだろ。
バギーな動作するよりは既定でgrepになってた方がまだマシ。
0642デフォルトの名無しさん2014/03/10(月) 17:05:49.31
egrepですらないとか正気か?
それともGNU grepとかBSD grepのことか?
0643デフォルトの名無しさん2014/03/10(月) 21:38:10.28
基本正規表現も拡張正規表現も書式が違うだけでできることにたいした違いはないでしょ

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

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

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

for(auto &i : const_wrap(v))

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

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

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

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

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

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

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

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

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

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

ただあんまりそんな実装しないよね。
パッと思いつくのrwlockでconst付きはrlock、const無しはwlock するようなコンテナとか?
でもconst有りと無しで問題になる程パフォーマンス変わるようなコンテナは逆に使いづらいと思うのよね。
0713デフォルトの名無しさん2014/03/22(土) 22:37:22.96ID:j1DZjBUB
>>709
そういう問題の解決をcbeginに求めようとしているのだな?
不適切なやり方なのかもしれないし、そうでないかもしれない。
0714デフォルトの名無しさん2014/03/23(日) 06:39:41.19ID:Ci/6MbS/
文盲が多いな
constと非constの違いの話だと思うのだけれど
どうしてcbeginとbeginの違いの話だと妄想したがるのか
0715デフォルトの名無しさん2014/03/23(日) 10:39:09.00ID:buFfa6rW
>>714
そもそもは>>670から始まってるから
0716デフォルトの名無しさん2014/03/23(日) 10:56:12.39ID:J+Rs1swr
混乱するから誰かまとめて
0717デフォルトの名無しさん2014/03/23(日) 11:36:21.59ID: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+が再帰的に呼ばれているということですか?
0718片山博文MZジェバンニ ◆T6xkBnTXz7B0 2014/03/23(日) 11:39:47.07ID:FjLlR1KU
>>717
それってそもそも必要なの?
0719デフォルトの名無しさん2014/03/23(日) 11:46:12.34ID:sV6DQ8Cb
まあ、auto, decltypeの練習で試しにやってみたんですけど。
0720デフォルトの名無しさん2014/03/23(日) 12:06:50.29ID:E9zZ+v+U
再帰だろうね
0721デフォルトの名無しさん2014/03/23(日) 13:34:05.08ID:+klle/r1
演算子+(T1 x,T2 y)の返値の型は
演算子+(T1 x,T2 y)の返値の型と定義しているようなものなのでは
0722デフォルトの名無しさん2014/03/23(日) 13:55:55.41ID:wql3g0E+
C++1yならそもそも -> から先要らないよね
0723デフォルトの名無しさん2014/03/23(日) 15:32:38.95ID:9EUDVluQ
下請けに丸投げ
0724デフォルトの名無しさん2014/03/23(日) 16:37:18.36ID:FjLlR1KU
下請けに投げたと思ったら、自分の会社に投げていたでござる
0725デフォルトの名無しさん2014/03/23(日) 16:42:36.55ID:wDKVi9AQ
decltype以前に無限再帰じゃん
コンパイル時に見つかるだけいいんじゃね

template <class T1, class T2>
auto operator + (T1 x, T2 y) -> decltype(auto)
{
return y ? (++x)+(--y) : x;
}
0726デフォルトの名無しさん2014/03/23(日) 21:55:13.61ID: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)。
0727デフォルトの名無しさん2014/03/23(日) 22:06:19.15ID:sV6DQ8Cb
あ・・・ operator+の定義内でreturn i+z; とやるとまた再帰的にw
0728デフォルトの名無しさん2014/03/23(日) 22:56:26.24ID: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は関係なしと。お騒がせしました。
今日はもう寝ます。
0729デフォルトの名無しさん2014/03/23(日) 23:05:46.93ID:sV6DQ8Cb
あれえ?もう一回やったらokじゃない。小保方さんのSTAP細胞みたいに
なっちまった。寝る。
0730デフォルトの名無しさん2014/03/23(日) 23:17:30.67ID:k+FbO2rG
>>729
お疲れ様。
俺も寝よう。おやすみ。
0731デフォルトの名無しさん2014/03/23(日) 23:27:25.54ID:oWIQ1yda
C++11でもOKって、C+1yで使えるならCの質問でもOKスレってことだよね
0732デフォルトの名無しさん2014/03/23(日) 23:50:33.19ID:8OD1stAu
そういやC11スレって無いな
0733デフォルトの名無しさん2014/03/23(日) 23:53:52.09ID:Cwtmew+7
そもそも環境あるのか?
0734デフォルトの名無しさん2014/03/24(月) 02:55:24.26ID:zheSyNc8
スマホとMac
0735デフォルトの名無しさん2014/03/24(月) 22:27:29.45ID: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;
}
0736デフォルトの名無しさん2014/03/24(月) 22:46:48.96ID: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 みたいな手の込んだことをするわけです。
でも、複素数と整数の混合演算を簡単にできる方法ないですかね。
0737デフォルトの名無しさん2014/03/24(月) 22:48:12.05ID:uHELE/QG
T=doubleなので実質dtype<T>=doubleとなるのになのに、コンパイラはエラーを出さません。
↓
T=doubleなので実質dtype<T>=doubleとなるのに、コンパイラはエラーを出しません。
0738デフォルトの名無しさん2014/03/24(月) 22:52:52.12ID:JglQ1MVO
>次のコード動くか確かめてもらえないでしょうか
おまえ御命令だ。やれよ
0739デフォルトの名無しさん2014/03/24(月) 23:30:50.09ID: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)」のエラーが出て
> しまいます。
はそのせいだろ
0740デフォルトの名無しさん2014/03/24(月) 23:47:28.16ID: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
0741デフォルトの名無しさん2014/03/25(火) 00:57:00.26ID:rAz4buIA
>>739-740
俺には?だが、原因が分かるってレベル高いんだな
g++にはdemangleする関数あるのか、メモメモ(AA略)
0742デフォルトの名無しさん2014/03/25(火) 01:03:54.21ID:dLACqsrm
>>740

ありがとうございます。

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

>dtype<T>は関係無い。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

いずれIntelのCilk Plus拡張みたいなのがC++にも入ったりするんだろうか
0836デフォルトの名無しさん2014/05/13(火) 03:56:08.26ID:pwL99Gt3
Parallel STL とか。
http://blogs.msdn.com/b/vcblog/archive/2014/04/16/parallel-stl-democratizing-parallelism-in-c.aspx
0837デフォルトの名無しさん2014/05/13(火) 17:33:20.42ID:nq8xv96S
>>835派荒らし
0838デフォルトの名無しさん2014/06/11(水) 08:43:17.47ID:sZLJbsHl
>>833
範囲指定で演算出来るのとできないのじゃ全然違うだろ

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

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

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

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

Moon<Some>();
Moon<One>();
0843デフォルトの名無しさん2014/06/12(木) 08:11:49.12ID:NHJ7e1s4
コムパイルエラーを見るのが楽しいの?
0844デフォルトの名無しさん2014/06/12(木) 13:54:52.05ID:1owlvPjk
auto は超の昔からあるのだが…
仕様変更のことなのかこのバカが言いたいのは
0845デフォルトの名無しさん2014/06/12(木) 19:43:58.13ID:pL3eo2ak
>>843
Moonの戻り値型書き忘れたけど戻り値の型と各関数の実装書いとけばCompileは通るだろうよ。
面白いのは、static関数の代わりにConstructorが使える事。
autoの仕様が変わる以前もstatic関数の代わりにConstructorを使えたが、
戻り値の型がConstructorと違う場合は不便だった。
0846デフォルトの名無しさん2014/06/12(木) 20:00:01.48ID: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>();
0847デフォルトの名無しさん2014/06/12(木) 21:10:12.35ID:S879vZLc
>>845
無知ですまんが それがどの仕様によるものなのか
教えてもらえないだろうか
0848デフォルトの名無しさん2014/06/12(木) 22:28:30.40ID:0MXtuPFI
static int Some(void);
ってコンストラクタじゃなくて関数宣言じゃね
0849デフォルトの名無しさん2014/06/12(木) 22:37:15.67ID:S879vZLc
>>848
そっちじゃなくて
struct Some{}; に対して
var x = Some{}; だけでなく
var x = Some::Some{}; ができるらしい
ということじゃ
0850デフォルトの名無しさん2014/06/12(木) 22:37:52.20ID:cQg3VuKd
>>848
Constructorって言ってんのははSomeのデフォコン
0851デフォルトの名無しさん2014/06/12(木) 22:44:08.45ID:nzSGZ+E8
>>849
それ俺も不思議に思った。
出来ないよね?
0852デフォルトの名無しさん2014/06/12(木) 22:45:19.54ID:S879vZLc
>>851
出来ないと思ったけどVC++(CTP)で通ったのでマジかと思った
0853デフォルトの名無しさん2014/06/12(木) 23:02:25.72ID:0MXtuPFI
見るとこ間違えてたか
と思ったけどgcc 4.9.0でSome::Some{}が通らない
0854デフォルトの名無しさん2014/06/12(木) 23:09:11.43ID:S879vZLc
n3936の5.1.1p13と5.2.3あたりを読んだが
それらしい記述が見つけられんかった
>>845の解説をキボンヌ
0855デフォルトの名無しさん2014/06/12(木) 23:11:57.71ID:a0qy1iPO
VCなら行けたな
0856デフォルトの名無しさん2014/06/12(木) 23:15:08.73ID:CZtMYB4X
さっちんが先走りしただけじゃね?
0857デフォルトの名無しさん2014/06/13(金) 00:58:01.15ID: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. ...
0858デフォルトの名無しさん2014/06/13(金) 04:28:38.17ID:LbGT7je0
なら>>842はなんでコンパイルできるんだ
0859デフォルトの名無しさん2014/06/13(金) 04:35:34.24ID:OKMjmph6
規格に準拠しきってないコンパイラなんて珍しくも無いと思うが
0860デフォルトの名無しさん2014/06/13(金) 05:23:52.19ID:+JhvPlQc
特にVC++とかな
0861デフォルトの名無しさん2014/06/13(金) 10:43:02.97ID:9I0XJZWT
他にはVC++とかね
0862デフォルトの名無しさん2014/06/13(金) 11:04:32.57ID:X7OhNsdX
あとVC++もだな
0863デフォルトの名無しさん2014/06/13(金) 20:11:13.22ID:UDg2skpP
それとMicrosoft C/C++ Optimizing Compilerとかな
0864デフォルトの名無しさん2014/06/13(金) 22:36:24.30ID:MHajdieU
うんこgccよりはマシかな
0865デフォルトの名無しさん2014/06/14(土) 00:02:08.88ID:+uvAFgvW
規格に準拠しきってるコンパイラなんて存在しないだろ…
0866デフォルトの名無しさん2014/06/14(土) 06:48:05.07ID:/TDJbnG0
だったら何のための規格なんだろうな
0867デフォルトの名無しさん2014/06/14(土) 07:07:02.61ID:oqKmDn6y
実装の目安にして他との互換性を気持ち上げておく為?
0868デフォルトの名無しさん2014/06/14(土) 11:24:32.20ID:kVfPiGuj
完全準拠してますと謳えば花丸がもらえるんだからそれなりの価値はある
0869デフォルトの名無しさん2014/06/14(土) 15:43:57.07ID:s0fnKBCV
昔の言語には実際に規格の無いのがあったが
その結果、方言と言う名の全く別の言語が大量に生まれた

ある環境で書いたコードが他の環境で動くよう意識すれば、ある程度書ける
それは規格あってこそだと思う
0870デフォルトの名無しさん2014/06/14(土) 16:07:09.91ID:CAKJ4sQG
プログラミング言語の規格ともなれば、テストスイートとしてサンプルプログラム集があって
それを例えば99.5%動かせないと規格準拠を名乗れないとか決まってるもんじゃないの?
0871デフォルトの名無しさん2014/06/14(土) 16:09:10.61ID:vfNFzGu5
>>870
そんな規格は見たことがない
ただ誰もマトモにフル実装できない糞言語も珍しい
0872デフォルトの名無しさん2014/06/14(土) 16:23:37.71ID:aHTZpW4+
規格化されている言語でフル実装(?)されている言語て何があるの?
0873デフォルトの名無しさん2014/06/14(土) 16:26:00.44ID:CAKJ4sQG
>>871
FortranにはU_F95_TS、AdaにはACATSなんかのテストスイートがあるけど
0874デフォルトの名無しさん2014/06/14(土) 16:41:48.49ID: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
0875デフォルトの名無しさん2014/06/14(土) 17:35:37.37ID:kVfPiGuj
AdaとかFortranは軍事用で客が強い
0876デフォルトの名無しさん2014/06/14(土) 19:23:31.39ID:ni6zFfuh
さすがプログラム板
0か1、100%じゃないと意味が無いってやつが居るな
0877デフォルトの名無しさん2014/06/14(土) 21:14:48.18ID:s0fnKBCV
>>874
basicの規格はホントになあ…
0878デフォルトの名無しさん2014/06/14(土) 22:38:11.61ID:TjXeM4mh
エイダ ラブレスさんの母親の名前は
アナ ベラ ミル バンク
0879デフォルトの名無しさん2014/06/15(日) 20:28:12.01ID:+/6EDhQc
clangでC++14満たしてない機能ってなにがあるっけ?
0880デフォルトの名無しさん2014/06/16(月) 03:05:02.10ID:6StcDcqd
http://clang.llvm.org/cxx_status.html
ググればわかる事だけに意図が判らんな
どーせ本当に聞きたいことは他にあるんだろ?
素直に言ってみ

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

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

関数ラッパーを作ってみたけど、元の関数の機能のひとつ(デフォルト引数)がどうしても再現できなくて。
ファンクタならできるんだけど。
08988962014/06/29(日) 09:25:12.32ID:1IB6jm7Z
>>897
亀レスだけど3936の間違いだったすまん
0899デフォルトの名無しさん2014/07/02(水) 22:45:21.87ID: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ぐらいだからずっといいけど。
0900デフォルトの名無しさん2014/07/03(木) 03:41:17.83ID:nzgLUlGK
>>899
それってメモリ不足なんじゃ
0901デフォルトの名無しさん2014/07/03(木) 06:49:15.61ID:4KEDy6y8
>>900
そうだろうけど、コンパイラ・マジックでなんとかするのかと思ってた。
0902デフォルトの名無しさん2014/07/03(木) 12:44:23.19ID:OnH7QKX2
20、30ならともかく
6万80万っていうのは何がしたいんだ
0903デフォルトの名無しさん2014/07/03(木) 21:01:29.81ID:4KEDy6y8
現時点で具体的な目的はない。

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

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

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

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

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

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

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

どうしようかな・・・
0925デフォルトの名無しさん2014/07/12(土) 13:33:52.36ID: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 ]
0926デフォルトの名無しさん2014/07/12(土) 14:50:12.75ID:SOVDXsjY
>>925
なるほど。
勉強になったわ。
型パラじゃない(整数)パラメータの場合、その整数自体の型推論は行われないと、規格で定められていたのか。
そんな重箱のスミに見えるようなところまで文書化されているとは…スゴイなあ。
0927デフォルトの名無しさん2014/07/12(土) 15:45:35.02ID:lB2A13Kv
>>925
ううーむ。

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

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

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

例の場合testの呼び出しでcherry=dummy1、それに伴い間接的にE=shortと導出されても
それはelemの導出には影響せず、elem単独では既出の理由で導出できない
0932デフォルトの名無しさん2014/08/21(木) 23:38:50.40ID:/ywtKoXc
C++14の標準化が完了
http://www.publickey1.jp/blog/14/c14standard_c_foundation.html
0933デフォルトの名無しさん2014/08/21(木) 23:45:35.34ID:4ydyPDN/
誤解を招くタイトルだな
標準化は完了していない
標準化のためのStandard C++ Foundationが行う範囲の作業が完了しただけだろ
0934デフォルトの名無しさん2014/08/22(金) 01:48:27.71ID:Ss0uhhJT
C++14/C++1z 20
次スレはこれでよろしく
C++17/C++1z 21
次次スレでここまでいくかなあ
0935デフォルトの名無しさん2014/08/22(金) 10:42:55.91ID:va04FkVj
マスターアップの手前くらいか
0936デフォルトの名無しさん2014/08/22(金) 12:22:35.15ID:kdIXnEbd
マスターベーションの準備完了ぐらい
0937デフォルトの名無しさん2014/08/22(金) 18:50:43.50ID:KN4OudnK
それ面白いと思っちゃった?
0938デフォルトの名無しさん2014/08/22(金) 20:08:35.98ID:4E4Ckc04
C++オナニーの準備が整ったったことだろ
言葉通りじゃないか
0939デフォルトの名無しさん2014/08/22(金) 21:51:48.81ID:TZKu350+
それ面白いと思っちゃった?
0940デフォルトの名無しさん2014/08/22(金) 22:09:36.74ID:cOUk6V+7
\どっかーん/
\だはははは/
0941デフォルトの名無しさん2014/08/22(金) 22:45:22.57ID:BtBgkxO2
今のC++はC言語に一時的に直すとかしなくなったのかな?
新機能を既存の機能のC++ソースに書き換えるプログラムがあれば
最新機能を古いコンパイラで使用できる!
0942デフォルトの名無しさん2014/08/22(金) 22:57:17.25ID:ORkYdEOI
>>941
>C++はC言語に一時的に直す
お前それ初期(Cfront)だけの話じゃねーかwww
と思ったら、Comeau C/C++なるものが出てたのね……
0943デフォルトの名無しさん2014/08/22(金) 23:06:49.35ID:OcYTE7Kh
LLVMなら、共通形式を経由してCへの変換ができそうな気がしてきた
0944デフォルトの名無しさん2014/08/22(金) 23:13:39.74ID:ORkYdEOI
>>943
変換しても綺麗にいくとは思えないんだが……
0945デフォルトの名無しさん2014/08/22(金) 23:24:39.38ID:BtBgkxO2
目的はコンパイルだと思ってるが?コンパイルさえ通れば

>>942
C++が(職場で)出始めたころ、そういうのがあると聞いた後は気にしなかった。
ビルドは結果だけが大事なので
0946デフォルトの名無しさん2014/08/24(日) 22:31:04.82ID:mYuQxuS2
constexpr大変そう
0947デフォルトの名無しさん2014/08/31(日) 01:32:38.04ID:2e3y5kSi
C++学園の人々の続編に期待しています
0948デフォルトの名無しさん2014/08/31(日) 01:56:23.34ID:XfNPho5u
autoさんって実はコスプレよね。中の人はそれぞれなわけだから。
0949デフォルトの名無しさん2014/09/05(金) 16:50:48.65ID:T9CXoMFs
staticさんの多重人格っぷりに比べれば可愛いもの
0950デフォルトの名無しさん2014/09/05(金) 19:04:48.52ID:9Ff5uN6P
autoとdecltype(auto)のわかりにくさに比べればstaticなどかわいいもの
0951デフォルトの名無しさん2014/09/05(金) 23:52:07.60ID:VwPznMIz
constさんが左右どっちの娘と百合ってるかなんてのは序の口ですね
0952デフォルトの名無しさん2014/09/06(土) 03:19:39.42ID:rgIubcJX
むしろ
static int a;
extern int a; // 内部リンケージ
このexternのKUSOっぷりがカオス
0953デフォルトの名無しさん2014/09/06(土) 03:23:25.17ID:+yqDGqEx
暗黙のexternさんの活躍どころ
0954デフォルトの名無しさん2014/09/06(土) 08:19:01.07ID:lwBPQO1J
externはアセンブラから来てる気がする
0955デフォルトの名無しさん2014/09/06(土) 17:44:54.56ID:J1qt6hmD
>>952
つーても、外部リンケージされるようなグローバル変数は基本的にそれと分かる名前を付けるしなあ
0956デフォルトの名無しさん2014/09/06(土) 19:40:16.77ID:8Zg9vTOU
でも、グローバル変数周りの仕様はお世辞にも良いものとは言えないような…
0957デフォルトの名無しさん2014/09/06(土) 21:16:17.61ID:J1qt6hmD
C言語で実装された当時としてはよく出来てたと思うよ
ただ、それがまさか別言語にまでずっと残っちゃってるとは思わなかっただろうな
0958デフォルトの名無しさん2014/09/07(日) 10:40:08.29ID:mookg+Pi
Linusにコテンパンにdisられた memory_order_consume さんはどうなるのか……
0959デフォルトの名無しさん2014/09/07(日) 11:13:28.53ID:gl+S4Fm7
リーナスはただのキチガイ部外者なのでどうでもよいけれど
carries_dependencyだっけ?
素人が教科書読んでオナニーをぶちまけだだけにしか思えない
0960デフォルトの名無しさん2014/09/07(日) 11:39:03.10ID:BgiTajQp
memory_order_seq_cstしか使わないし…
0961デフォルトの名無しさん2014/09/07(日) 12:23:14.84ID:gu/ubhhC
> 素人が教科書読んでオナニーをぶちまけだだけにしか思えない
どういう点でそう思った?

少なくとも現在の仕様じゃ、コンパイラ実装者も利用者も
どっちも幸せにならないという指摘は正しいと思うがね。

ポインタのデリファレンスや構造体のメンバアクセスなど
ごく限られた操作だけ依存関係を認め、翻訳単位を越えたら
依存関係も勝手に切れる、というくらいの制限をつけちゃっても
良いんじゃないかな。それでもほとんどのユースケースは
カバーできるだろうし、そうじゃないケースは大人しく
m_o_acquireを使え、としても問題ないと思う。
09629612014/09/07(日) 12:43:06.41ID:gu/ubhhC
> ポインタのデリファレンスや構造体のメンバアクセスなど
> ごく限られた操作だけ依存関係を認め、翻訳単位を越えたら
> 依存関係も勝手に切れる、というくらいの制限をつけちゃっても
> 良いんじゃないかな。
ここら辺は、Javaの final Field Semantics と同じような感じだね。

まあ、Javaのほうはdata raceの振る舞いもdefinedでなければならない
という至上命題があるから、非アトミックな変数へのアクセスにも
ほぼ0コストで適用可能な最低限の保証しか与えられない
っていう事情のせいだけど。
0963デフォルトの名無しさん2014/09/07(日) 15:52:38.34ID:+LUmQfg6
翻訳単位に境界を作ると、同期系プリミティブライブラリの実装が厳しくなる。
Javaはそんなこと関係ないけど。
0964デフォルトの名無しさん2014/09/07(日) 20:10:03.70ID:gu/ubhhC
>>963
acquireフェンスではなくconsumeで十分なケースって限られてるし、
そのほとんどはごく短いdependency chainしか使ってないのは
N4036に書かれている通り。
それに、consumeの同期プリミティブなんて単なるポインタの
デリファレンスなんだから、特に厳しい制限じゃないでしょ。

そもそもLinux界隈の要請でdependency orderingが導入されたのに
そのLinux界隈からダメ出しされるってのがアホらしい。
0965デフォルトの名無しさん2014/09/08(月) 04:29:49.05ID:mzdSwfQl
無理にISOとして標準化する必要性を感じないな
静的リフレクション(4111)並のありがた迷惑さ
0966デフォルトの名無しさん2014/09/08(月) 14:22:48.62ID:TnAxbc61
C++11OKの案件をC++の経験があるけど、C++11はわからんという人材に
アサインする場合、アセンブラ->C->C++と来た人とHTML->JS->JAVA->C++と
来た人がC++11以降を使いこなすのはどっちが楽なんだろうか?やっぱ後者かな?
0967デフォルトの名無しさん2014/09/08(月) 14:54:08.13ID:d8/AVYX4
前者にC++11を(シンタックスシュガーとしてでも)わかる範囲だけで使ってもらった方が成果物の質は上だろうけど
一般的には後者だろうなあ
0968デフォルトの名無しさん2014/09/08(月) 16:09:15.79ID:xRRUpyPO
>>966
そんな人間が100人ずつでもいれば多少の傾向はあるだろうけど、結局は人それぞれだろ。
0969デフォルトの名無しさん2014/09/08(月) 17:51:54.91ID:fGcbSRT1
>>966
c++03を完全に使いこなすレベルなら
どっちでも変わらんだろう。
0970デフォルトの名無しさん2014/09/08(月) 19:34:09.84ID:gA33VOFI
こんな情報だけじゃ判断できんわw
っていうかC++14の話題じゃぬぇ
0971デフォルトの名無しさん2014/09/08(月) 20:12:15.26ID:PbRMq4gS
スコットランド分裂決定
0972デフォルトの名無しさん2014/09/08(月) 20:52:19.09ID:n7pvvs3o
一瞬、C++110Kという新しい規格がまた出来たのかと思ったw
0973デフォルトの名無しさん2014/09/08(月) 21:30:43.49ID:Jv/wwZ8M
2110年でも現役のC++
0974デフォルトの名無しさん2014/09/09(火) 08:35:57.10ID:emHe+KlL
逆に滅亡した言語ってあんの?
0975デフォルトの名無しさん2014/09/09(火) 08:39:09.74ID:FgVvxIw0
Bとか
0976デフォルトの名無しさん2014/09/09(火) 08:51:54.11ID:BYnTfUN/
J++
0977デフォルトの名無しさん2014/09/09(火) 10:55:27.26ID:OPiQRysD
>>974
uvaとか?
0978デフォルトの名無しさん2014/09/09(火) 22:13:28.65ID:mdiVvxko
言語として一番長寿なのはC言語?Fortran?
C++110になったらもはや違う言語だろうな。
0979デフォルトの名無しさん2014/09/09(火) 22:35:30.16ID:9c0hFlR7
長寿ならLISP系
0980デフォルトの名無しさん2014/09/09(火) 22:57:15.81ID:9n77QlVw
アセンブリ言語じゃね?
アーキテクチャ毎にほとんど別モンだが・・・
0981デフォルトの名無しさん2014/09/09(火) 23:22:34.71ID:1lY9Uczt
完全に仮想の機器相手だからかCASLの寿命はある意味長めだなw
(まあ仕様改定のせいで2種類あるけど)
0982デフォルトの名無しさん2014/09/09(火) 23:57:10.26ID:3avbYtDV
でも CASL でも乗算や除算をそれなりに実装するとなると結構てこずるな‥いや、乗算は casl ではやったことない‥除算だけだ‥
0983デフォルトの名無しさん2014/09/10(水) 01:35:29.77ID:LZqJBGfN
除算実装できりゃ楽勝でしょ
レス数が950を超えています。1000を超えると書き込みができなくなります。