- 1 名前:デフォルトの名無しさん mailto:sage [2012/10/04(木) 22:13:37.79 ]
- The C++ Standards Committee
www.open-std.org/jtc1/sc22/wg21/ Wikipedia ja.wikipedia.org/wiki/C%2B%2B11 C++11/C++1y 15 toro.2ch.net/test/read.cgi/tech/1333433900/
- 117 名前:デフォルトの名無しさん mailto:sage [2012/10/18(木) 21:40:43.97 ]
- 結局参照もポインタと同じ道を辿ったな
わかりにくく使いづらく扱いを誤れば危険だしパフォーマンスも落とすクソ機能 その分色んなことが出来るからいいんだいという反論があるだろが、 参照はポインタほどの融通も効かないから中途半端
- 118 名前:デフォルトの名無しさん mailto:sage [2012/10/18(木) 22:14:12.43 ]
- STLで右辺値参照使ってると言っても
ムーブが定義されてなきゃ今まで通りなんでしょ? 遅くなるってどういう事だよ
- 119 名前:デフォルトの名無しさん mailto:sage [2012/10/18(木) 22:22:17.57 ]
- 一応、(リンク時にdead code eliminationしなきゃ)
関数の数が増える=実行ファイルサイズが増える=コードがキャッシュに乗る率が減る=遅くなる かもしれない
- 120 名前:デフォルトの名無しさん mailto:sage [2012/10/18(木) 22:28:39.64 ]
- dead code elimination も何も
クラステンプレートは使わないメンバ関数は 実体化しないという仕様だから
- 121 名前:デフォルトの名無しさん mailto:sage [2012/10/19(金) 10:56:10.40 ]
- >>117
使い方を誤る奴が悪い終了
- 122 名前:デフォルトの名無しさん mailto:sage [2012/10/19(金) 21:03:48.49 ]
- ラムダってテンプレート引数使えないんのか
struct Func { template <typename T> void operator () (T const & obj) { } }; みたいに、ラムダで template <typename T> [](T && obj) { func(forward<T>(obj)); } 書ければいいのにね つかどうせならC#みたいに省略できればよかったのに
- 123 名前:デフォルトの名無しさん mailto:sage [2012/10/19(金) 21:12:23.15 ]
- 関数内どんだけ肥大化させる気?
- 124 名前:デフォルトの名無しさん mailto:sage [2012/10/19(金) 21:21:14.01 ]
- 関数内でテンプレートってそもそも必要?
- 125 名前:デフォルトの名無しさん mailto:sage [2012/10/19(金) 21:28:30.12 ]
- 引数の型書くのが面倒なんよ
そう思わないか? ラムダがあればファンクタ書くのは楽になるが中途半端だ どうせならとことん楽したいやん
- 126 名前:デフォルトの名無しさん mailto:sage [2012/10/19(金) 21:36:48.84 ]
- template <typename T> と書く手間で
typedef decltype(a) T; が書ける
- 127 名前:デフォルトの名無しさん mailto:sage [2012/10/20(土) 00:21:49.05 ]
- C++1yで多相ラムダが使えるようになるまでの我慢我慢
- 128 名前:デフォルトの名無しさん [2012/10/20(土) 10:24:25.79 ]
- >>127
2年くらい前にこのスレで[](auto&){...}使えるといいねって話をしたら バカにされてあえなく撤退したわw
- 129 名前:デフォルトの名無しさん mailto:sage [2012/10/20(土) 12:56:01.55 ]
- >128
型が記述位置で一意にならないんじゃね?テンプレートなきゃムリだろ。
- 130 名前:デフォルトの名無しさん mailto:sage [2012/10/20(土) 13:14:06.10 ]
- 別にそれでいいじゃん
- 131 名前:デフォルトの名無しさん mailto:sage [2012/10/20(土) 13:24:30.56 ]
- >>129
2年前にまったく同じ事を言われた。 コンパイラ作ってる人からすればそうだろうけど、利用者からすればまったく自然な発想。 テンプレートでいいから何とかしてくれ。 sort(v.begin(),v.end(),[](const super_complicated_template_container_type::super_long_named_value_type& x){return x+1;}); とか、アホくさくて耐えられないw
- 132 名前:デフォルトの名無しさん mailto:sage [2012/10/20(土) 13:26:02.36 ]
- 適当に書いたけどsort用のラムダじゃなかったな。
比較関数になるとさらに醜いことになる。
- 133 名前:デフォルトの名無しさん mailto:sage [2012/10/20(土) 13:46:15.50 ]
- decltype((x)) const &
まあoperator()がテンプレートなファンクタはもとからできるので実装上の問題はなく構文をどうするかだろう 一般の関数にまで拡張して void f(auto x) を template<class T> void f(T x) のシンタックスシュガーにするかとかにまで広がるだろうし
- 134 名前:デフォルトの名無しさん mailto:sage [2012/10/20(土) 13:54:41.97 ]
- ん、xじゃないな
- 135 名前:デフォルトの名無しさん mailto:sage [2012/10/20(土) 14:46:05.38 ]
- www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3418.pdf
>>131の例なら sort(v.begin(),v.end(),[](const &x) x+1); にしようぜってのが今の提案
- 136 名前:デフォルトの名無しさん mailto:sage [2012/10/20(土) 17:44:51.28 ]
- >>135
いいね! 搭載までにどれくらいかかるのか分かりませんが期待してます。
- 137 名前:デフォルトの名無しさん mailto:sage [2012/10/21(日) 22:37:41.22 ]
- というか一番最初のラムダのペーパーはすげえ短く書けてwktkだったんだがな... まだ[]が<>だったころ
だまされたー!
- 138 名前:デフォルトの名無しさん mailto:sage [2012/10/21(日) 23:16:30.59 ]
- C#と同じ書式にしてしまうのはダメなんかなぁ
…ユーザーオブジェクトの扱いが違うからダメか… sort(v.begin(), v.end(), x => x+1);
- 139 名前:デフォルトの名無しさん mailto:sage [2012/10/23(火) 09:15:20.10 ]
- 今C++11何か使ったら理解できないやつが続出して全てが自分に回ってきそうで、取り敢えずようす見ることにしてるわ。
- 140 名前:デフォルトの名無しさん mailto:sage [2012/10/23(火) 09:35:02.93 ]
- cpp3よりわかりやすいと思うけど?
一回教えれば今より面倒も減ると思う
- 141 名前:デフォルトの名無しさん mailto:sage [2012/10/23(火) 10:33:23.26 ]
- 他にもっといいラムダ式の書式があったのかもしれないが、C++11標準化委員会が
新しいアイデアを待ったけど誰も出してこないのでこういう変な格好に落ち着いたらしい まあタイプ量が少なくて直感的だからいいんじゃね
- 142 名前:デフォルトの名無しさん mailto:sage [2012/10/23(火) 10:36:57.12 ]
- 仮想プロパティはいつになったら使えるようになるねん
- 143 名前:デフォルトの名無しさん [2012/10/23(火) 22:16:53.45 ]
- >>139
会社で使う人はそういう悩みもあるのか・・・ 11を03のソースに変換するツールとかあれば自分だけ使えてウハウハになれるでしょうか?
- 144 名前:デフォルトの名無しさん mailto:sage [2012/10/23(火) 22:39:57.88 ]
- マ板行けよ。
- 145 名前:デフォルトの名無しさん mailto:sage [2012/10/23(火) 23:02:22.30 ]
- C++11難しくないだろ
C++03の方がよほど面倒だぞ
- 146 名前:デフォルトの名無しさん mailto:sage [2012/10/23(火) 23:17:54.28 ]
- C++03より簡単に書ける、のは確かだけれど、
C++11はC++03互換の形式でも書けるようになってるので、結果的に複雑。 難しくない、というのは言い過ぎ
- 147 名前:デフォルトの名無しさん mailto:sage [2012/10/23(火) 23:40:40.96 ]
- 11で切り捨てられる機能って何かある?
たとえば副作用のあるラムダは外部に変数定義しないといけないから、 カプセル化を破ってしまう。カプセル化するためには関数オブジェクトが必要。 完全にdeprecateされた言語機能ってそれほどないのでは? アルゴリズム、コンテナ、どちらも増えただけだし・・・。
- 148 名前:デフォルトの名無しさん mailto:sage [2012/10/23(火) 23:50:54.98 ]
- 完全に削除されたexportがあるだろ
- 149 名前:デフォルトの名無しさん mailto:sage [2012/10/24(水) 00:37:49.63 ]
- 折角 export を実装した Comeau C++ が可哀想です
- 150 名前:デフォルトの名無しさん mailto:sage [2012/10/24(水) 01:16:07.92 ]
- export実装する前にtemplateのネストを実装すればよかったw > Comeau
- 151 名前:デフォルトの名無しさん [2012/11/02(金) 20:39:03.23 ]
- やっぱり、これからは並列処理が簡単にできる言語の時代かも
- 152 名前:デフォルトの名無しさん mailto:sage [2012/11/02(金) 22:24:19.84 ]
- 提案にいくつか並列化関係のあるよな
TR2に入ったらうれしい
|

|