C++11/C++1y 16
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2012/10/04(木) 22:13:37.79http://www.open-std.org/jtc1/sc22/wg21/
Wikipedia
http://ja.wikipedia.org/wiki/C%2B%2B11
C++11/C++1y 15
http://toro.2ch.net/test/read.cgi/tech/1333433900/
0002デフォルトの名無しさん
2012/10/04(木) 23:22:19.44君は今も僕を見守ってくれているのかな?
君は、僕の生まれて初めて出来た彼女だった。
すごく嬉しくて、幸せだったなあ。
突然、白血病だって医者に宣告されてから、君は病室で日に日に弱っていった。
「病院ってひまねえ」って笑う君を見て、僕はいつも泣いていたんだ。
君の為に、僕の小汚いノートパソコンをあげたら、君はすごく喜んでくれたよね。
ネットをするようになった君がいつも見ていたサイト、それが「2チャンネル」だった。
ある日君はいつものように、笑いながら言った。
「ほら、見て今日も2ゲット出来たよ。」
「あまりパソコンばっかいじってると身体に障るよ」
なんて僕が注意すると、「ごめんねえ。 でもね、これ見てよ。
ほら、この3のひと、2げっとぉ!なんて言っちゃってさぁ、ふふ」
僕は黙っていた。君がすごく楽しそうで、僕は何も言えなかった。
「ほらみて、この3のひと、変な絵文字使ってくやしぃ〜!だって。かわいいねえ。 ふふ。」
僕はまだ黙っていた。笑う君を見て、どうしようもなく悲しくなった。
「憶えててくれるかなあ」 君がふと言った。
「…この3のひと、私がいなくなっても、あの時変な奴に2をとられたんだよなーなんて、憶えててくれないかなあ……無理かな……憶えてて、ほしいなぁ……」
それから数ヶ月後、君は家族と僕に見守れながら息を引き取った。
君はもうこの世に居ない、なのに僕は今F5を連続でクリックしている。
君の事を、3のひとが忘れないように、いつまでも、いつまでも忘れないように。
天国にいる君と一緒に、今ここに刻み込む
2 ゲ ッ ト
0003デフォルトの名無しさん
2012/10/04(木) 23:28:49.73乙
0004デフォルトの名無しさん
2012/10/05(金) 00:04:02.160005デフォルトの名無しさん
2012/10/05(金) 00:08:18.310006デフォルトの名無しさん
2012/10/05(金) 00:09:26.94業務アプリケーション開発には危険過ぎて使えず。
組み込みではCで充分という奴に迫害され、
難解な言語仕様勉強してる俺SUGEEEな
人たちが自分のプライドを保つための
最後の砦。
0007デフォルトの名無しさん
2012/10/05(金) 00:10:04.310008デフォルトの名無しさん
2012/10/05(金) 00:30:04.100009デフォルトの名無しさん
2012/10/05(金) 00:49:29.29ただ単にこんがらがっているだけ
0010デフォルトの名無しさん
2012/10/05(金) 00:52:59.340011デフォルトの名無しさん
2012/10/05(金) 00:59:39.15C++出来なくても仕事はあるから心配ないよ
0012デフォルトの名無しさん
2012/10/05(金) 01:42:50.82VCも.NETがあるけど、.NETじゃコンパイルを実行時に後回しにした…という感じにしか思えない。
0013行動派は連絡を
2012/10/05(金) 05:55:57.17マスコミも政党も大企業もネットも、日本は既に乗っ取られて操作されている。
B層よ、目を覚ませ。現在の日本は支配されている。 【疑う前に以下を見よ】
子供に教えられるかどうかで子供と日本の将来は大きく変わる。
騙されたと思って一度だけ、真摯に受け止めてみてよ。
http://s.webry.info/sp/stktakemoto4216.at.webry.info/201201/article_10.html ★本題
http://s.webry.info/sp/stktakemoto4216.at.webry.info/201201/article_11.html 政党
http://s.webry.info/sp/stktakemoto4216.at.webry.info/201201/article_9.html マスコミ
http://s.webry.info/sp/stktakemoto4216.at.webry.info/201201/article_60.html 1995
http://kenjyanoturugi.seesaa.net/article/148207356.html 乗っ取られる日本
http://archive.mag2.com/0000154606/20081014060012000.html 政治経済の真実
http://oujyujyu.blog114.fc2.com/blog-entry-328.html 日本企業乗っ取り
http://www36.atwiki.jp/anti-rothschild/pages/15.html 戦後の金融資本の歴史
http://koramu2.blog59.fc2.com/blog-entry-812.html ユダヤと反日朝鮮勢力
それでも何とか日本を守ろうと日々尽力を注ぐ日本勢力が現存する。
その勢力の反対勢力である左翼が「利権」と「原発」を徹底的に叩いている理由を解読せよ。
敵はマスゴミでも政党でも他国でもなく、背後で操る反日マイノリティー勢力だと意識せよ。
反日マイノリティー勢力の短期的目標は領土ではなく、人権委員会設置と外国人参政権。
そして大デキレースが遂にはじまった。B層向け茶番劇放送である地上波は絶対に見るな。
スカパー!HD(JCSAT-3A,4A)の衛星専門局か、できればアルジャジーラ(AsiaSat-3S)を見よ。
今の日本の世の中はまさに映画マトリックスの世界。
B層よ、今こそ目覚める時。
そして今後は各々で独立して情報分析して行動せよ。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※ この書き込みに対して【日本語がおかしな者】の妨害が入る様になりました。事実であるが故に反証できない上記内容が都合悪い様です。上記内容は特定の論者によるものではありません、念のため。
0014デフォルトの名無しさん
2012/10/06(土) 15:55:00.40ラムダは待望だったから嬉しいけどけど、右辺値参照(だっけ?)にはワロタ
確かに使いどころによっては便利かもなとは思ったけど、マニアックすぎる
総じて、痒いところに手が届くのは嬉しいが、これから始める人には辛いかもな
ますますオッサン言語化してる気がするよ
0015デフォルトの名無しさん
2012/10/06(土) 16:00:03.880016デフォルトの名無しさん
2012/10/06(土) 22:36:06.33高レベルのレイヤーでの利用ノウハウが溜まったら、
他の言語でも類似の機能がサポートされたりして。
0017デフォルトの名無しさん
2012/10/06(土) 22:42:30.12オブジェクトといえばすべて参照経由な主流OOPLでは要らん機能だしなあ
埋めこみオブジェクトなOOPLって、C++以外だと何があるんだ
0018デフォルトの名無しさん
2012/10/07(日) 22:53:38.20新機能実験場というか論文のネタ場というか
ちっとは現場でメンテするプログラマのことも考えてほしいぜ
0019デフォルトの名無しさん
2012/10/08(月) 00:17:40.80どうせ大規模な変更になるんだから
小手先のことなんてどうでもいいよ。
0020デフォルトの名無しさん
2012/10/08(月) 12:15:57.720021デフォルトの名無しさん
2012/10/08(月) 15:56:59.45右辺値参照をメモリ管理だけの問題に矮小化しないでください!(怒
束縛と代入の動的な側面をプログラミング可能にし、
新しい意味や文脈を与える野心的な試みなんです。
問題は野心的過ぎることだけです。
全てのプログラミング要素は、最終的には右辺値参照に集約されるんですYO.
0022デフォルトの名無しさん
2012/10/08(月) 18:53:17.550023デフォルトの名無しさん
2012/10/08(月) 19:18:50.67そのままC++Nowのキーノート・スピーチで解説されてた。
0024デフォルトの名無しさん
2012/10/09(火) 16:04:53.53with features proposed for the next revision of the standard,
expected around 2017.
0025デフォルトの名無しさん
2012/10/12(金) 20:47:32.93でかいコンテナの単なるコピーとかしないし・・・
英語でもいいから、何かよいリファレンスを教えてください。
0026デフォルトの名無しさん
2012/10/12(金) 20:55:33.430027デフォルトの名無しさん
2012/10/12(金) 20:57:10.830028はちみつ餃子 ◆8X2XSCHEME
2012/10/12(金) 21:00:56.170029デフォルトの名無しさん
2012/10/12(金) 21:49:50.28不必要なコピーを出来るだけ無くしたるわってもんだからな
0030デフォルトの名無しさん
2012/10/12(金) 21:56:44.100031デフォルトの名無しさん
2012/10/12(金) 21:58:25.51今まで非共有スマポをコンテナに入れられなかったのは
コピーが不必要ではなく害悪だったから
害悪なコピーを回避するためにも右辺値参照は重要
0032デフォルトの名無しさん
2012/10/12(金) 22:05:20.58って
>>26
のことだよね?
これは分かりやすいけど使わんのだよ。
たとえば
container<T> func() {
container<T> res;
...
return res;
}
みたいな関数をよく書くのですが、
最後の行を
return std::move(res);
にすれば使ってることになる?
0033デフォルトの名無しさん
2012/10/12(金) 22:11:51.490034デフォルトの名無しさん
2012/10/12(金) 22:14:01.94なるほど。
でもそれ以外のタイミングでコピーすることはないんだよなぁ。
自分のコーディングスタイルの問題なのかな?
・・・ちょっとスラドの記事よみ直してみます。
以前読んだけどありがたみがわからんかったので。
0035デフォルトの名無しさん
2012/10/12(金) 22:18:26.47すべて自分で書くぶんには、でかいオブジェクトのコピーを避けるように意識してるから、
operator=とか使わない習慣ができちゃってるのかも。
0036デフォルトの名無しさん
2012/10/12(金) 22:45:07.34誰もコンテナのコピーの話なんてしてないぞ
要素のコピーの話しかしてない
従来仕様では push_back すら不可能
引数を使って新しい要素をコピーコンストラクトするから
非共有スマポは使えない
これがムーブできるようになったので大丈夫になった
メモリの再確保なんかもそうだな
0037デフォルトの名無しさん
2012/10/12(金) 23:20:40.18container<T>が特殊なリソースを保持するハンドラでコピーはできんけど
func みたいな生成関数を用意したい、てときにマジ便利
しかもそんな特殊なハンドラを標準コンテナにいれても良いンだぜ
0038デフォルトの名無しさん
2012/10/13(土) 09:07:35.49virtual void func() const = 0;
なんですか?
=0のかわりに=hoge
みたいなのが新しくできてたりしません?
0039デフォルトの名無しさん
2012/10/13(土) 09:21:00.840040デフォルトの名無しさん
2012/10/13(土) 09:43:18.840041デフォルトの名無しさん
2012/10/13(土) 09:47:28.53virtual void func() const = pure;
0042デフォルトの名無しさん
2012/10/13(土) 12:22:42.85std::_Hashtable<...>::_M_find_before_node(...)
が呼ばれまくってるのですが、これはハッシュ値の衝突と関係ありますか?
0043デフォルトの名無しさん
2012/10/13(土) 13:40:29.580044デフォルトの名無しさん
2012/10/14(日) 02:49:32.87ttp://gcc.gnu.org/onlinedocs/gcc-4.7.1/libstdc++/api/a01197_source.html
をみてみました。(hashtable.hのソースコード)
いろいろ省略したけど、だいたいこんな感じですね。
for文で(あるハッシュ値に対応する)バケツの中を徘徊しているように見えますが、これが長いのか、そもそも呼ばれた回数が多いのか・・・
そもそも_M_find_before_nodeの呼ばれた回数見てみます。
//Find the node whose key compares equal to k in the bucket n. Return nullptr if no node is found.
_BaseNode* _M_find_before_node(size_type __n, const key_type& __k, typename _Hashtable::_Hash_code_type __code) const
{
_BaseNode* __prev_p = _M_buckets[__n];
if (!__prev_p) return nullptr;
_Node* __p = static_cast<_Node*>(__prev_p->_M_nxt);
for (;; __p = __p->_M_next()) {
if (this->_M_equals(__k, __code, __p)) return __prev_p;
if (!(__p->_M_nxt) || _M_bucket_index(__p->_M_next()) != __n) break;
__prev_p = __p;
}
return nullptr;
}
0045デフォルトの名無しさん
2012/10/14(日) 03:39:22.500046デフォルトの名無しさん
2012/10/14(日) 08:41:27.79上の件は、やはりハッシュ値の衝突が原因でした。
パフォーマンスが2倍変わったよ。
0047デフォルトの名無しさん
2012/10/14(日) 12:47:17.590048デフォルトの名無しさん
2012/10/14(日) 15:00:01.570049デフォルトの名無しさん
2012/10/14(日) 15:10:44.55C++の「使わないときにコストかけるな」っていう理念はどこにいったんですか?
0050デフォルトの名無しさん
2012/10/14(日) 15:16:56.600051デフォルトの名無しさん
2012/10/14(日) 15:41:46.110052デフォルトの名無しさん
2012/10/14(日) 15:49:32.67でもその理念を見失ったらC++のアイデンティティを失ったも同義だしほかの言語に全部持ってかれちゃうよ?
0053デフォルトの名無しさん
2012/10/14(日) 15:50:04.510054デフォルトの名無しさん
2012/10/14(日) 15:57:36.12stdのはライブラリのインターフェースに使ったりとにかく可搬性ある汎用的なコード書きたい場合だけでいい
0055デフォルトの名無しさん
2012/10/14(日) 16:13:20.19std::shared_ptrはboostの劣化バージョンだから乗り換える理由が今のところない
0056デフォルトの名無しさん
2012/10/14(日) 18:02:38.320057デフォルトの名無しさん
2012/10/14(日) 19:58:17.15static_assert(noexcept(p.reset()), "boost::shared_ptrでは今のところ無理");
0058デフォルトの名無しさん
2012/10/15(月) 00:34:33.730059デフォルトの名無しさん
2012/10/15(月) 12:42:04.470060デフォルトの名無しさん
2012/10/15(月) 13:24:56.310061デフォルトの名無しさん
2012/10/15(月) 17:04:14.060062デフォルトの名無しさん
2012/10/15(月) 17:41:54.63tuple返すメソッドでゴッソリ代入出来る構文を用意し欲しかった
0063デフォルトの名無しさん
2012/10/15(月) 21:30:33.05マルチスレッドをオフにできない
すでにブーストで書かれている過去の資産との親和性が低い
0064デフォルトの名無しさん
2012/10/15(月) 22:47:04.000065デフォルトの名無しさん
2012/10/15(月) 22:48:11.27悪口だけのレスは無価値です
0066デフォルトの名無しさん
2012/10/15(月) 23:29:32.92> すでにブーストで書かれている過去の資産との親和性が低い
「ブーストで書かれている」が頭悪そう
0067デフォルトの名無しさん
2012/10/15(月) 23:35:17.88boost::shared_ptrとの相互運用の方法が書かれてたから
親和性はあるんじゃないかな
0068デフォルトの名無しさん
2012/10/16(火) 01:00:48.96http://d.hatena.ne.jp/yohhoy/20120921/p1
0069デフォルトの名無しさん
2012/10/16(火) 06:49:51.69コストかかり過ぎ
0070デフォルトの名無しさん
2012/10/16(火) 07:54:10.920071デフォルトの名無しさん
2012/10/16(火) 08:08:43.91だからただでさえやばいコストがさらに膨れ上がるんじゃ使い物にならない
0072デフォルトの名無しさん
2012/10/16(火) 08:15:48.51少なくとも親和性は低くない、というかこれで相互乗り入れできるんだから親和性は結構高い
0073デフォルトの名無しさん
2012/10/16(火) 08:50:39.38結局のところstdのほうが無駄が多いことは同じ
0074デフォルトの名無しさん
2012/10/16(火) 08:57:46.55実行時コストなんかどうでもいいんだよ。
標準ライブラリかどうかっていうのは致命的。
機能的に同じことをするなら標準の方法で
実装した方が後でメンテする人に迷惑がかからない。
今から入社してくる後輩に「おじいちゃんブーストって何?」
なんて聞かれたくないだろ。
0075デフォルトの名無しさん
2012/10/16(火) 09:31:53.59どうでもいいは言い過ぎ
…だが、そこ以外には激しく同意
会社では保守性一番
0076デフォルトの名無しさん
2012/10/16(火) 09:52:30.99コミュニティに提言したらどうだ?お前んとこのライブラリは糞だってな
0077デフォルトの名無しさん
2012/10/16(火) 10:04:02.08しかしboost::shared_ptrで作ったライブラリは古いコンパイラでも動く。この差は非常に大きい
仕様策定からまだ間もないし実装が追いついて無いからまだ古いコンパイラ使ってるところのが多いしな
だから可搬性ではstdよりはるかにboostのほうが高いしコンパイラのバージョンを気にしなくて良い分だけ「保守性も高い」
今から入社してくる後輩に「先輩このコードぼくのコンパイラだとコンパイルできないんですけどたすけてください」なんて聞かれたくないわなめんどくせぇし
stdのが扱いやすいとか言ってる雑魚はまだ現実が見えてないよ
stdが今のboostのような便利屋的な立場になるのはおそらく11の次の規格への乗り換えが始まるころだろうな
このころになればコンパイラの実装もほぼコンプリートしているからstdに乗り換える理由がようやっと出てくる
それまではどこの会社でもこれならboostのほうがええわという結論が出るだろう
というか標準のバカどもが気を利かせてboostとの互換性を持たせるように仕様を決めればイイハナシなんだがな
boostは次期標準を視野に入れたほとんど公式のライブラリなんだから標準はboostに敬意を払い互換性を持たせるべき
0078デフォルトの名無しさん
2012/10/16(火) 10:17:16.650079デフォルトの名無しさん
2012/10/16(火) 10:19:21.410080デフォルトの名無しさん
2012/10/16(火) 10:49:56.91stdの仕様決めるC++標準化委員会の人達がboostコミュニティの中心なんだし
0081デフォルトの名無しさん
2012/10/16(火) 11:09:08.10委員会メンバーもそれが分かっててわざわざ規格にブチ込んだわけだし
0082デフォルトの名無しさん
2012/10/16(火) 11:37:26.32まだドキュメントが少なくて利用実績のあまりない現状では、boost::shared_ptrを使うのは普通にアリだと思うよ
でも将来は「std::shared_ptrがあるのにわざわざboost::shared_ptrを使う理由が分からない」とか言われるんだろうな
結局ドキュメント類が多いほうが世の中に浸透するんだし、その点でISO標準に勝つのはどうしても難しい
(まあ、標準Pascal無視したDelphiとか、標準Basic無視したVBとか、例外はいくらでもあるが)
0083デフォルトの名無しさん
2012/10/16(火) 20:19:23.870084デフォルトの名無しさん
2012/10/16(火) 20:23:14.10となるとすでに使われてるboostなんだよなぁ
0085デフォルトの名無しさん
2012/10/16(火) 20:38:01.39ただし、C++11が普及してからな
0086デフォルトの名無しさん
2012/10/16(火) 22:57:26.18現在は普及しているのか?
0087デフォルトの名無しさん
2012/10/16(火) 22:59:21.70少なくともVSが対応してからだな
0088デフォルトの名無しさん
2012/10/17(水) 00:38:12.18だとすると、「完全新規案件なら」というくだりは、まったく無意味な話か
0089デフォルトの名無しさん
2012/10/17(水) 00:54:08.17どこが無意味なんだ
0090デフォルトの名無しさん
2012/10/17(水) 01:03:48.95現時点では「C++11が普及していたら」が偽なので、少なくとも現時点では他に何が書かれていても無駄になる。
0091デフォルトの名無しさん
2012/10/17(水) 01:05:21.91何をもって普及したとみなせるのか書いてないから
他人からすれば何も言ってないに等しいな
当人の脳内では自明なんだろうけど
0092デフォルトの名無しさん
2012/10/17(水) 01:17:01.29>現時点では「C++11が普及していたら」が偽
Linux界隈ではVC気にしなくていいから、局所的な見方ができるなら偽と言い切れるものではないな
実際にはC++11でかつLinux案件とかを想定してるんじゃね
もちろん、何を以て普及したと見做すのかは>>89に聞かないと分からんけどな
(そしてその答えによっては>>89の文章全体が無意味になる)
0093デフォルトの名無しさん
2012/10/17(水) 01:48:48.77今はまだ厳しいというイメージで言った
0094デフォルトの名無しさん
2012/10/17(水) 02:03:08.230095デフォルトの名無しさん
2012/10/17(水) 02:06:51.96表現することなく
十分に書けたつもりに
0096デフォルトの名無しさん
2012/10/17(水) 09:11:38.32今後Mac以外は廃れるから考慮しなくてよい
0097デフォルトの名無しさん
2012/10/17(水) 18:42:30.110098デフォルトの名無しさん
2012/10/17(水) 21:42:49.100099デフォルトの名無しさん
2012/10/17(水) 22:19:33.35普通はMacを使う
0100デフォルトの名無しさん
2012/10/17(水) 22:38:27.590101デフォルトの名無しさん
2012/10/17(水) 22:42:57.110102デフォルトの名無しさん
2012/10/18(木) 07:58:16.13更新されてもGCCとかソースからコンパイルしよるから、その間なにすればいいの状態w
0103デフォルトの名無しさん
2012/10/18(木) 08:00:54.28C++03でそんな事情はないから多分そのうち死んでくれると思う。
それよりCが死んでくれないことが大問題だよ。
0104デフォルトの名無しさん
2012/10/18(木) 08:03:03.84C++11で導入された標準ライブラリの速度が出ないんだけど、
そのうち改善されていく見込みはあるんだろうか?
現時点のGCCは成熟度何%くらいだと思ってたらいいか分かる人いる?
0105デフォルトの名無しさん
2012/10/18(木) 08:10:19.670106デフォルトの名無しさん
2012/10/18(木) 08:13:33.58しかしここ数年、言語界のアイディアも枯渇しててC++11でしばらくは行けそうな感じだよな。
すくなくとも逐次計算にかぎれば。
並列計算に特化した言語モデル(でまともなの)が出てくれば死ぬかも。
0107デフォルトの名無しさん
2012/10/18(木) 08:29:09.4611は速度をあきらめて扱いの楽さを優先したから速度でないのは当たり前だよ
今はどうしても速さがほしいならいままでどおりC/C++03を
楽さを求めるならほかの言語をって感じ
0108デフォルトの名無しさん
2012/10/18(木) 10:39:22.72なるほど。
では今後に期待〜
0109デフォルトの名無しさん
2012/10/18(木) 15:48:17.03え?
0110デフォルトの名無しさん
2012/10/18(木) 15:52:08.60規格の影響を受ける問題じゃあるまいし
0111デフォルトの名無しさん
2012/10/18(木) 15:56:17.41なにいってんの?
0112デフォルトの名無しさん
2012/10/18(木) 16:00:31.150113デフォルトの名無しさん
2012/10/18(木) 16:19:35.62スピードが出ないのはiostreamとかfstreamの話だろ?
あれほどstd::ios::sync_with_stdio(false); を実行しとけと言ってるのに
それかcstdioだけを使うか
0114デフォルトの名無しさん
2012/10/18(木) 16:31:59.01もともと最適化あるから右辺値参照ぐらいじゃ大して変わらんよ
それよりshared_ptrやスレッドがバカに乱用されてパフォーマンス悪くバグが増えることが問題
0115デフォルトの名無しさん
2012/10/18(木) 16:35:42.19http://blogs.msdn.com/b/vcblog/archive/2009/06/23/stl-performance.aspx
よく調べてから物を言えよ
恥かくだけだぞ
0116デフォルトの名無しさん
2012/10/18(木) 16:36:32.38http://cpp-next.com/archive/2010/10/howards-stl-move-semantics-benchmark/
こちらは無名のブログなので自分で検証してみ
0117デフォルトの名無しさん
2012/10/18(木) 21:40:43.97わかりにくく使いづらく扱いを誤れば危険だしパフォーマンスも落とすクソ機能
その分色んなことが出来るからいいんだいという反論があるだろが、
参照はポインタほどの融通も効かないから中途半端
0118デフォルトの名無しさん
2012/10/18(木) 22:14:12.43ムーブが定義されてなきゃ今まで通りなんでしょ?
遅くなるってどういう事だよ
0119デフォルトの名無しさん
2012/10/18(木) 22:22:17.57関数の数が増える=実行ファイルサイズが増える=コードがキャッシュに乗る率が減る=遅くなる
かもしれない
0120デフォルトの名無しさん
2012/10/18(木) 22:28:39.64クラステンプレートは使わないメンバ関数は
実体化しないという仕様だから
0121デフォルトの名無しさん
2012/10/19(金) 10:56:10.40使い方を誤る奴が悪い終了
0122デフォルトの名無しさん
2012/10/19(金) 21:03:48.49struct Func { template <typename T> void operator () (T const & obj) { } };
みたいに、ラムダで
template <typename T> [](T && obj) { func(forward<T>(obj)); }
書ければいいのにね
つかどうせならC#みたいに省略できればよかったのに
0123デフォルトの名無しさん
2012/10/19(金) 21:12:23.150124デフォルトの名無しさん
2012/10/19(金) 21:21:14.010125デフォルトの名無しさん
2012/10/19(金) 21:28:30.12そう思わないか?
ラムダがあればファンクタ書くのは楽になるが中途半端だ
どうせならとことん楽したいやん
0126デフォルトの名無しさん
2012/10/19(金) 21:36:48.84typedef decltype(a) T; が書ける
0127デフォルトの名無しさん
2012/10/20(土) 00:21:49.050128デフォルトの名無しさん
2012/10/20(土) 10:24:25.792年くらい前にこのスレで[](auto&){...}使えるといいねって話をしたら
バカにされてあえなく撤退したわw
0129デフォルトの名無しさん
2012/10/20(土) 12:56:01.55型が記述位置で一意にならないんじゃね?テンプレートなきゃムリだろ。
0130デフォルトの名無しさん
2012/10/20(土) 13:14:06.100131デフォルトの名無しさん
2012/10/20(土) 13:24:30.562年前にまったく同じ事を言われた。
コンパイラ作ってる人からすればそうだろうけど、利用者からすればまったく自然な発想。
テンプレートでいいから何とかしてくれ。
sort(v.begin(),v.end(),[](const super_complicated_template_container_type::super_long_named_value_type& x){return x+1;});
とか、アホくさくて耐えられないw
0132デフォルトの名無しさん
2012/10/20(土) 13:26:02.36比較関数になるとさらに醜いことになる。
0133デフォルトの名無しさん
2012/10/20(土) 13:46:15.50まあoperator()がテンプレートなファンクタはもとからできるので実装上の問題はなく構文をどうするかだろう
一般の関数にまで拡張して void f(auto x) を template<class T> void f(T x) のシンタックスシュガーにするかとかにまで広がるだろうし
0134デフォルトの名無しさん
2012/10/20(土) 13:54:41.970135デフォルトの名無しさん
2012/10/20(土) 14:46:05.38>>131の例なら
sort(v.begin(),v.end(),[](const &x) x+1);
にしようぜってのが今の提案
0136デフォルトの名無しさん
2012/10/20(土) 17:44:51.28いいね!
搭載までにどれくらいかかるのか分かりませんが期待してます。
0137デフォルトの名無しさん
2012/10/21(日) 22:37:41.22だまされたー!
0138デフォルトの名無しさん
2012/10/21(日) 23:16:30.59…ユーザーオブジェクトの扱いが違うからダメか…
sort(v.begin(), v.end(), x => x+1);
0139デフォルトの名無しさん
2012/10/23(火) 09:15:20.100140デフォルトの名無しさん
2012/10/23(火) 09:35:02.93一回教えれば今より面倒も減ると思う
0141デフォルトの名無しさん
2012/10/23(火) 10:33:23.26新しいアイデアを待ったけど誰も出してこないのでこういう変な格好に落ち着いたらしい
まあタイプ量が少なくて直感的だからいいんじゃね
0142デフォルトの名無しさん
2012/10/23(火) 10:36:57.120143デフォルトの名無しさん
2012/10/23(火) 22:16:53.45会社で使う人はそういう悩みもあるのか・・・
11を03のソースに変換するツールとかあれば自分だけ使えてウハウハになれるでしょうか?
0144デフォルトの名無しさん
2012/10/23(火) 22:39:57.880145デフォルトの名無しさん
2012/10/23(火) 23:02:22.30C++03の方がよほど面倒だぞ
0146デフォルトの名無しさん
2012/10/23(火) 23:17:54.28C++11はC++03互換の形式でも書けるようになってるので、結果的に複雑。
難しくない、というのは言い過ぎ
0147デフォルトの名無しさん
2012/10/23(火) 23:40:40.96たとえば副作用のあるラムダは外部に変数定義しないといけないから、
カプセル化を破ってしまう。カプセル化するためには関数オブジェクトが必要。
完全にdeprecateされた言語機能ってそれほどないのでは?
アルゴリズム、コンテナ、どちらも増えただけだし・・・。
0148デフォルトの名無しさん
2012/10/23(火) 23:50:54.980149デフォルトの名無しさん
2012/10/24(水) 00:37:49.630150デフォルトの名無しさん
2012/10/24(水) 01:16:07.920151デフォルトの名無しさん
2012/11/02(金) 20:39:03.230152デフォルトの名無しさん
2012/11/02(金) 22:24:19.84TR2に入ったらうれしい
0153デフォルトの名無しさん
2012/11/04(日) 11:32:05.24本の虫の本はまだなの?
0154デフォルトの名無しさん
2012/11/04(日) 20:25:09.35C++の仕様は難解かつ膨大で、あれを隅々まで理解して
解説書出すのはかなり難儀な仕事だと思う
0155デフォルトの名無しさん
2012/11/04(日) 20:26:11.690156デフォルトの名無しさん
2012/11/04(日) 20:31:05.230157デフォルトの名無しさん
2012/11/04(日) 20:49:42.940158デフォルトの名無しさん
2012/11/04(日) 21:20:26.75規格の隅々に微に入り細に入りしたような詳説は書けないし、また書く時間もないだろうな。
0159デフォルトの名無しさん
2012/11/04(日) 21:28:36.57細部をあらかた理解するのは難しいのに
0160デフォルトの名無しさん
2012/11/04(日) 21:32:10.41言語仕様も知らずに適当に書いてるから
OK
0161デフォルトの名無しさん
2012/11/04(日) 21:39:34.83だからこそ、こないだ出た動画は食い入るように見た
0162デフォルトの名無しさん
2012/11/04(日) 21:40:36.91void f( A&& a, B const& b );
void f( A const& a, B&& b );
void f( A&& a, B&& b );
こういうのって全部用意しなきゃいかんの?
template のときは特別扱いがあるらしいのは分かったんだけど、
だからってあらうる関数の引数を template にしてしまうわけにもいかないし…。
0163デフォルトの名無しさん
2012/11/04(日) 21:50:45.010164デフォルトの名無しさん
2012/11/04(日) 22:02:32.75まぢっすか。オーバーロードしたいときとかどうするんだ。
0165デフォルトの名無しさん
2012/11/04(日) 22:06:59.12void f(A a, B b) {
std::move(a);
}
0166デフォルトの名無しさん
2012/11/04(日) 22:09:39.46そもそもテンプレートがオーバーロードできるし
is_rvalue_referenceまであるやろ
0167デフォルトの名無しさん
2012/11/04(日) 22:31:40.88あんまり意味ない例だけど、
f( vector<int>& );
f( vector<int>&& );
f( deque<int>& );
f( deque<int>&& );
こういうオーバーロードしたいときに、
template<class T> f( T&& );
で同じことをするのは、可能ではあっても面倒だと思うんだけど。
0168デフォルトの名無しさん
2012/11/04(日) 23:00:16.820169デフォルトの名無しさん
2012/11/04(日) 23:00:55.51そのケースで特殊化もアホくせえけど
左辺値参照は黒歴史でいいし
テンプレートテンプレート引数もクールだぜ
0170デフォルトの名無しさん
2012/11/04(日) 23:04:58.98引数にアダプタかませばいいよ
0171デフォルトの名無しさん
2012/11/04(日) 23:08:02.75例えば container.push_pair( x, y ); 的な。
0172デフォルトの名無しさん
2012/11/04(日) 23:34:38.09operator+ なんかで頻出。
たとえば A + B はconst参照で済ましたいけど、
A + B + C だと一時オブジェクトができるのでmoveしたい。
0173デフォルトの名無しさん
2012/11/04(日) 23:45:17.420174デフォルトの名無しさん
2012/11/05(月) 00:05:03.89その程度ならテンプレートでいいじゃん
>>162みたいなのが要求されてて更に翻訳単位わけないとだめな程度の規模の関数ってなに?
0175デフォルトの名無しさん
2012/11/05(月) 00:07:36.450176デフォルトの名無しさん
2012/11/05(月) 00:42:01.150177デフォルトの名無しさん
2012/11/05(月) 11:36:40.60void f(Args&& ...args)
{
[ /*どうキャプチャしたらいいの?*/ ]
{
std::printf(args...);
}();
}
int main(){ f("%s\n", "Hello, world!"); }
0178デフォルトの名無しさん
2012/11/05(月) 13:02:13.25[args...]
ただしGCC4.7ではエラーになって通らない(他のコンパイラ・バーションでは知らない)
可能ならとりあえず引数で代替
[](Args ... args) { std::printf(args ...); }(args ...);
0179デフォルトの名無しさん
2012/11/05(月) 17:24:51.02そうだよねえ、そんな気がしたんだけど gcc は trunk でもだめだった
このラムダを普通のクラステンプレートを使って書き換えようとしたら、
可変個メンバーみたいなのを持たせないといけないから (不可能)
そもそも禁止されてるのかもしれないとも思った
0180デフォルトの名無しさん
2012/11/05(月) 17:39:40.490181デフォルトの名無しさん
2012/11/05(月) 20:01:12.84> このラムダを普通のクラステンプレートを使って書き換えようとしたら、
> 可変個メンバーみたいなのを持たせないといけないから (不可能)
ファンクタがローカルクラスじゃなくなっちゃうがboost.fusion使えばできるぞ
#include <cstdio>
#include <boost/fusion/container/vector.hpp>
#include <boost/fusion/functional.hpp>
template<class... T>
struct F
{
boost::fusion::vector<T...> args;
F(T... a) : args(a...) {}
auto operator()() -> decltype(boost::fusion::invoke_procedure(std::printf, args))
{
boost::fusion::invoke_procedure(std::printf, args);
}
};
template <class... Args>
void f(Args... args)
{
F<Args...> f(args...);
f();
}
int main()
{
f("%s\n", "Hello, world!");
}
0182デフォルトの名無しさん
2012/11/05(月) 20:09:55.55コンパイラが悪いのね
0183はちみつ餃子 ◆8X2XSCHEME
2012/11/05(月) 21:13:08.87もう C++ の拡張はそろそろ限界だろ。
0184デフォルトの名無しさん
2012/11/05(月) 21:35:58.08http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/#mailing2012-11
0185デフォルトの名無しさん
2012/11/06(火) 03:59:34.400186デフォルトの名無しさん
2012/11/06(火) 07:14:25.770187デフォルトの名無しさん
2012/11/06(火) 07:26:58.90D言語みたいにセパレータを入れられるようにしないと
訳分からなくなるぞ
0188デフォルトの名無しさん
2012/11/06(火) 07:47:12.840189デフォルトの名無しさん
2012/11/06(火) 18:24:00.36↓
せっかくユーザー定義リテラルがあるから2進リテラルライブラリ作ろうぜ(N3402)
↓
こんな小汚いライブラリが標準になるくらいならコア言語でサポートしよう(Portland)
なにこれ
0190デフォルトの名無しさん
2012/11/06(火) 18:28:27.070191デフォルトの名無しさん
2012/11/06(火) 18:55:33.350192デフォルトの名無しさん
2012/11/06(火) 19:12:50.66以外にあっさりと収斂しそうな気配だな。テキサス寄りになりそうな気配だが、
基礎的な研究面でのインディアナ大学の貢献が素晴らしすぎる。
0193デフォルトの名無しさん
2012/11/06(火) 19:37:39.34昔は2進リテラル必要はなかったんだよ
まだ8進や16進で十分理解できる頃のC畑のやつらばっかりだったからな
時代が変わったってことだろ
0194デフォルトの名無しさん
2012/11/06(火) 21:09:49.722進リテラルは普通にあるから、
ビットを扱うにあたっての必然性は強いと思うけどなあ
処理系の実装が難しいわけでもなさそうだし、何が問題なの?
もしくはなぜ歴史的に無かったのかが気になる
0195デフォルトの名無しさん
2012/11/06(火) 21:38:01.47ああ、2進数とは別に案があるのね
>>194
パッと見01がずらっと並んでたら見辛いからとかなのかね
0196デフォルトの名無しさん
2012/11/06(火) 22:17:26.790197デフォルトの名無しさん
2012/11/06(火) 22:49:00.80昔は8進があればいいという人が主流だったので。
8進が好まれた理由は省スペース、少入力のはず。
昔はパンチカードでコーディングしてたから。
俺も16進あれば問題ない。2進があってもいいが。
>>196
応用は範疇外です。
0198デフォルトの名無しさん
2012/11/06(火) 22:55:18.380199デフォルトの名無しさん
2012/11/06(火) 23:43:16.05あとXMLパーサにはW3C DOMっつー標準仕様があるだろうに。
0200デフォルトの名無しさん
2012/11/07(水) 00:11:31.18ところで自分はstd::signatureにとても期待しているのだけれどもC++1yでリフレクションのサポートは一体どれくらい進むのだろうか
0201デフォルトの名無しさん
2012/11/07(水) 00:44:24.70Parallel hierarchies
Overloading reflection and more perfect forwarding
Delegates
Getter/Setter generation
enum information
Capturing default arguments
と応用も広いし、何がしか入るんじゃないかな。
0202デフォルトの名無しさん
2012/11/07(水) 09:46:03.94そういうのはQtで出来るから標準には要らない
0203デフォルトの名無しさん
2012/11/07(水) 12:52:51.06サードパーティにあるからいらないと言ったら全部いらないだろ
0204デフォルトの名無しさん
2012/11/07(水) 12:59:34.230205デフォルトの名無しさん
2012/11/07(水) 16:23:33.590206デフォルトの名無しさん
2012/11/07(水) 16:24:26.47なるほど。 C++11 なら値渡しもアリなのか。 move が一回増えるのをどう見るかだなー。
0207デフォルトの名無しさん
2012/11/07(水) 19:41:10.90HDLは4値(以上)だからビットで書かざるを得ないけど、
2値だったら無きゃ無いで済むよ。
0208デフォルトの名無しさん
2012/11/07(水) 20:07:57.110209デフォルトの名無しさん
2012/11/07(水) 20:16:22.170210デフォルトの名無しさん
2012/11/07(水) 20:58:59.680211デフォルトの名無しさん
2012/11/07(水) 21:04:57.00そんなだからC++は・・・
0212デフォルトの名無しさん
2012/11/07(水) 21:57:01.06お前の思いは分かった。
だが、捨て置く。
0213デフォルトの名無しさん
2012/11/07(水) 21:58:17.940214デフォルトの名無しさん
2012/11/07(水) 22:13:30.270215デフォルトの名無しさん
2012/11/07(水) 22:17:25.030216194
2012/11/07(水) 22:19:47.18>>197
>>207
なるほど感謝。バイナリアンの人は8/16進でも読めるから、
わざわざ冗長な2進表記を用意する必要性がないって感じか
全体として消極的反対が目立つのかなあ
0217デフォルトの名無しさん
2012/11/07(水) 23:35:31.330218はちみつ餃子 ◆8X2XSCHEME
2012/11/07(水) 23:45:03.430219デフォルトの名無しさん
2012/11/08(木) 01:15:14.74いつになったら出るの?
0220デフォルトの名無しさん
2012/11/08(木) 02:22:25.640221デフォルトの名無しさん
2012/11/08(木) 02:25:56.13いつかは出ると思ってるのか。
出ないという展開に100ペリカ
0222デフォルトの名無しさん
2012/11/08(木) 02:52:06.55現場で使えるようになるまでは、コンパイラ製作してるやつもあんまいないし需要も供給もそりゃないだろうよ。
0223デフォルトの名無しさん
2012/11/08(木) 02:52:40.580224デフォルトの名無しさん
2012/11/08(木) 06:10:35.762進に特化したリテラル表現導入なんて本来ANSI Cの領分で、
C++だけでやるならC++的に意味のある形でないと。
0225デフォルトの名無しさん
2012/11/08(木) 09:10:12.690226デフォルトの名無しさん
2012/11/08(木) 12:59:50.04{
return
[](const char* first, const char* last) -> unsigned long long
{
return *last ? koko_nantekakunda(first, last + 1) :
[](const char* first, const char* last) -> unsigned long long
{
first == last ? 0 : ugugugu(first, last - 1) << 1 | last[-1] & 1;
}(first, last);
}(str, str + 1);
}
0227デフォルトの名無しさん
2012/11/08(木) 13:00:46.780228デフォルトの名無しさん
2012/11/08(木) 13:18:22.80まあでも、 boost みたいにガチガチの設計じゃなくて、もう少し肩の力を抜いたゆるふわライブラリが
あってもいいかなーと思うこともある。 Qt とか、 STL, boost に比べるとゆるふわしていて、
モサいなあと思いつつもけっこう便利だったりする。
C++ の面倒さって、ライブラリの設計が一般化とか例外安全とかを頑張りすぎてるのが一つの原因だと
思うのだよな。
0229デフォルトの名無しさん
2012/11/08(木) 15:10:13.38JIS X 3015
0230デフォルトの名無しさん
2012/11/08(木) 15:46:36.65それぞれが背丈に見合ったライブラリを使えばいい。
次期仕様を話すスレで「肩の力を抜いたゆるふわライブラリ」の話なんか出るわけない。
0231デフォルトの名無しさん
2012/11/08(木) 15:58:10.51JISは見れなくなって久しいな
IE8/9、Chromeいずれでも見れない
0232デフォルトの名無しさん
2012/11/08(木) 17:40:51.45www.open-std.org/jtc1/sc22/wg14/の方でも、
整定数の2進表現は議論されてないっぽい。
0233デフォルトの名無しさん
2012/11/08(木) 19:21:47.350234デフォルトの名無しさん
2012/11/08(木) 19:41:11.21規格票の巻末にある Annex D がもろにそれ
0235デフォルトの名無しさん
2012/11/08(木) 20:27:18.91ありがと。
deprecated になっている言語仕様って、こんなに少ないんだ。
0236デフォルトの名無しさん
2012/11/08(木) 21:25:25.00多かったらむしろやばいだろ。
0237デフォルトの名無しさん
2012/11/08(木) 23:09:09.540238デフォルトの名無しさん
2012/11/08(木) 23:18:12.990239デフォルトの名無しさん
2012/11/08(木) 23:25:35.260240デフォルトの名無しさん
2012/11/08(木) 23:27:53.590241デフォルトの名無しさん
2012/11/10(土) 13:24:08.67↓
でもユーザー定義リテラルで独自実装が蔓延し標準ライブラリの提案まで出てきてしまった
↓
状況が悪化しないように仕方なく2進数リテラルをサポートする事に
あれ?全部ユーザー定義リテラルさんのせいじゃね
0242デフォルトの名無しさん
2012/11/10(土) 14:37:39.580243デフォルトの名無しさん
2012/11/10(土) 14:45:42.33n3472は同時にやるぜ?
0244デフォルトの名無しさん
2012/11/10(土) 14:47:24.660245デフォルトの名無しさん
2012/11/10(土) 15:33:45.410246デフォルトの名無しさん
2012/11/10(土) 18:35:55.730247デフォルトの名無しさん
2012/11/10(土) 19:11:39.830000,0000,0000,0000〜FFFF,FFFF,FFFF,FFFF
セパレータさえあれば、そんなに多くは感じないような
0248デフォルトの名無しさん
2012/11/10(土) 19:15:04.340249デフォルトの名無しさん
2012/11/11(日) 01:13:33.59unsigned int n = toInt("0000,0000,...,0000");
0250デフォルトの名無しさん
2012/11/11(日) 01:22:41.131111_2222_3333_4444
字句解析器にちょっと手を入れれば実装できそうだが
何かと衝突しそうな気がしないでもない
C++は複雑すぎて、何に手を入れると何が起きるのか想像がつかない
0251デフォルトの名無しさん
2012/11/11(日) 01:42:42.350252デフォルトの名無しさん
2012/11/11(日) 01:43:55.100253デフォルトの名無しさん
2012/11/11(日) 01:59:46.30のときの 0 は 8 進リテラル
これ豆な
0254デフォルトの名無しさん
2012/11/11(日) 02:17:43.010255デフォルトの名無しさん
2012/11/11(日) 08:06:36.88そういえばアンダースコアのみの識別子ってlexerに許されてたっけ?
111 _ 222 _ 333 _ 4444 と切られて、_がなんかにdefineされてたら、とかちんぷんかんぷんに
0256デフォルトの名無しさん
2012/11/11(日) 08:28:42.560257デフォルトの名無しさん
2012/11/11(日) 13:49:01.090258デフォルトの名無しさん
2012/11/12(月) 18:18:22.75int main()
{
[__func__]{std::cout<<__func__;}();
}
これどうなるべきなの?
0259デフォルトの名無しさん
2012/11/12(月) 18:23:12.950260デフォルトの名無しさん
2012/11/12(月) 20:53:51.010261デフォルトの名無しさん
2012/11/12(月) 20:57:12.340262デフォルトの名無しさん
2012/11/12(月) 21:25:35.400263デフォルトの名無しさん
2012/11/12(月) 21:27:42.10実装定義のoperator()を意味する名前が表示されるべき
0264デフォルトの名無しさん
2012/11/12(月) 21:30:30.64だからキャプチャされるべきだよ。(gcc はしてくれないけど)
ただし、ラムダ内で暗黙に定義される __func__ と被るから、
ラムダのやつが優先されてしまうけど。
0265デフォルトの名無しさん
2012/11/12(月) 21:49:19.400266264
2012/11/12(月) 21:49:39.515.1.2 Lambda expressions
10 ... each such lookup shall find a variable with automatic storage duration ...
11 ... its compound statement odr-uses this or a variable with automatic storage duration...
だから、自動変数しかキャプチャできない。
だから static に定義される __func__ はキャプチャできない。
ちなみに gcc 4.8 は、static な変数を = でキャプチャしたら面白い挙動になる。
static int a = 0; [a]{ ++a; }();
0267デフォルトの名無しさん
2012/11/15(木) 21:11:56.010268デフォルトの名無しさん
2012/11/15(木) 21:12:20.80class BigArray {
static const int MX = 10000;
double d[MX];
};
const int ITER = 2000;
int main()
{
time_t t1;
std::vector<BigArray> ba;
{
t1 = std::time(0);
for (int i = 0; i < ITER; i++)
ba.push_back(BigArray());
std::cout << "Elapsed time = " << std::time(0) - t1 << std::endl;
}
ba.shrink_to_fit();
{
t1 = std::time(0);
for (int i = 0; i < ITER; i++)
ba.emplace_back();
std::cout << "Elapsed time = " << std::time(0) - t1 << std::endl;
}
}
0269デフォルトの名無しさん
2012/11/15(木) 21:39:42.570270デフォルトの名無しさん
2012/11/15(木) 22:15:00.85その例だとvectorの再確保が起きるたびにBigArrayのコピーが生じるんでやはり効率は悪い
0271デフォルトの名無しさん
2012/11/16(金) 05:41:05.770272デフォルトの名無しさん
2012/11/19(月) 00:49:52.27どんな例外が投げられるか分かるようにできたほうが、いいと思うんだけれど
0273デフォルトの名無しさん
2012/11/19(月) 01:13:38.640274デフォルトの名無しさん
2012/11/19(月) 01:17:54.69(一部の一般的な例外はスルーされるけど)
C++では実行時にエラーが出るだけで、コンパイル時にチェックしてくれるわけではない
だからあまり書く意味が無い
0275デフォルトの名無しさん
2012/11/19(月) 01:47:47.070276デフォルトの名無しさん
2012/11/19(月) 02:17:28.20Javaとは違うのだよJavaとは
0277デフォルトの名無しさん
2012/11/19(月) 13:44:50.56ゼロオーバーヘッドじゃない C++ なんて笑い事じゃない
0278デフォルトの名無しさん
2012/11/19(月) 14:25:12.940279デフォルトの名無しさん
2012/11/19(月) 20:07:32.70http://engawa.2ch.net/test/read.cgi/poverty/1353315388/
0280デフォルトの名無しさん
2012/11/19(月) 23:11:33.83コンパイル時にチェックされればいいというわけでもない。
それを採用した Java で得られた結果は悲しいものだった。
http://www.google.co.jp/search?q=checked+exception
0281デフォルトの名無しさん
2012/11/19(月) 23:13:03.63例外が「ゼロオーバーヘッド」じゃないというのは、どんなオーバーヘッドのことを指して言ってるの?
そのオーバーヘッドはほんとうに規格が強制してしまっているものなの?
0282デフォルトの名無しさん
2012/11/19(月) 23:29:54.440283デフォルトの名無しさん
2012/11/19(月) 23:37:13.22ロールバック用のコードが何命令か入るとか?
0284デフォルトの名無しさん
2012/11/19(月) 23:38:54.88templateクラスのインターフェイスに指定できんわな
0285デフォルトの名無しさん
2012/11/19(月) 23:44:49.17結局制限しないか、例外投げんなよ!投げたら氏ね!しか要らないんだな
0286デフォルトの名無しさん
2012/11/19(月) 23:53:57.28vector を at 抜きで operator [] だけで使うとがっかりする量のコードがついてくるだろ
throw() と throw(...) のセマンティクスがゼロオーバーヘッドの理想と真逆なんだよ
デフォを throw() にしなかった禿にジャーマンスープレックスかましたい
俺的には longjmp の第2引数が nested_exception で、そこから好きに dynamic_cast しろでいいと思う
0287デフォルトの名無しさん
2012/11/20(火) 00:13:34.590288デフォルトの名無しさん
2012/11/20(火) 00:13:45.000289デフォルトの名無しさん
2012/11/20(火) 00:21:57.00例外投げただけで死にまくりじゃん
使い物にならないよ
0290デフォルトの名無しさん
2012/11/20(火) 00:40:27.27throw(...)を書くのもめんどいと感じてしまうとこは例外を投げるべき場所じゃない
0291デフォルトの名無しさん
2012/11/20(火) 01:45:02.26安全施設 throw() の管理者として
危険物乙4だのBSL4だのスケジュール1だのを
適切に処理するには、それなりの論理がちゃんとある
throw(...) を throw() に握りつぶして外聞上、throw() を通すならいい
だからといって throw() の純潔を通している処女におぞましいプレーはさせちゃいかん
その家系に産まれたばかりに理不尽なことの永久とも思える繰り返し
デフォを throw() にしなかった禿は茹ですぎ逆バンジーの刑だ
0292デフォルトの名無しさん
2012/11/20(火) 01:53:34.06デフォルトが今のようになったのも互換性の問題からであると
いろんなところでBS自身が書いてるし。せめてD&Eくらいは読まないと。
0293デフォルトの名無しさん
2012/11/20(火) 02:12:51.97禿の思想も語り口も好きなので著書はことごとく読んでいて耳の質はメリット5のはずだが
例外だけはどうしてもおかしいと個人的には思うんだが…
これは個人的なのか、禿への反駁は教義で禁じられているのか
0294デフォルトの名無しさん
2012/11/20(火) 02:46:03.88> throw() と throw(...) のセマンティクスがゼロオーバーヘッドの理想と真逆なんだよ
意味不明なんだけどだれか説明して
0295デフォルトの名無しさん
2012/11/20(火) 05:51:20.740296デフォルトの名無しさん
2012/11/20(火) 06:00:53.31http://www.boost.org/community/exception_safety.html
> A good implementation of C++ will not devote a single instruction cycle
> to dealing with exceptions until one is thrown, and then it can be
> handled at a speed comparable with that of calling a function. That
> alone gives programs using exceptions performance equivalent to that of
> a program which ignores the possibility of errors. Using exceptions can
> actually result in faster programs than “traditional” error handling
> methods for other reasons. First, ...
http://boostjp.github.com/more/generic_exception_safety.html
> C++ の優れた実装は、例外が投げられるまでにその例外を扱うひとつの
> 命令サイクルを費やすことはしないで、 例外は関数呼び出しの同じような
> スピードで捕捉可能である。 それだけで、例外を使ったプログラムに、
> エラーの可能性を無視したプログラムと同等のパフォーマンスを提供している。
> 例外を使うと実際は、結果的に別の理由で``伝統的な''エラー捕捉の方法よりも
> 早くなる。まず、 ...
0297デフォルトの名無しさん
2012/11/20(火) 06:40:42.04継続るすための巻き戻し処理を例外に全部おっかぶせてるのが
なんかグチャグチャしてて嫌なんだよね
0298デフォルトの名無しさん
2012/11/20(火) 06:47:45.29君にはGCのある言語がお似合いです
0299デフォルトの名無しさん
2012/11/20(火) 07:15:47.06資源解放はデストラクタの仕事だろ。例外関係なくね?
0300デフォルトの名無しさん
2012/11/20(火) 09:17:08.76(正常時の)実行速度のためなら他の全てを犠牲にしてもかまわないというCの本性の継承者です
0301デフォルトの名無しさん
2012/11/20(火) 10:38:16.810302デフォルトの名無しさん
2012/11/20(火) 18:30:33.90なんで邪悪なTwitterは使うの?
0303デフォルトの名無しさん
2012/11/20(火) 18:57:24.100304デフォルトの名無しさん
2012/11/20(火) 18:59:29.010305デフォルトの名無しさん
2012/11/20(火) 19:27:15.29twitterを不自由だと思わないみたい
0306デフォルトの名無しさん
2012/11/20(火) 21:08:14.630307デフォルトの名無しさん
2012/11/21(水) 22:48:28.670308デフォルトの名無しさん
2012/11/24(土) 13:45:46.55void foo( Container&& c ) {
... = forward??( c[i] );
}
コンテナが右辺値で破壊していいときだけ、要素をムーブする方法が知りたい。
!is_lvalue_reference<> で適当にメタプログラミングすればいいのは分かるのだけど、
何か推奨される方法ってある?
0309デフォルトの名無しさん
2012/11/24(土) 15:58:33.66それがまさにstd::forward
0310デフォルトの名無しさん
2012/11/24(土) 16:01:06.350311デフォルトの名無しさん
2012/11/24(土) 16:18:10.30コンテナ自身ではなくて、コンテナの「要素」を foward したいんだけど、 std::forward<> で可能なんだっけ?
0312デフォルトの名無しさん
2012/11/24(土) 16:56:47.770313デフォルトの名無しさん
2012/11/24(土) 19:42:16.36alrogithm の方の std::move とか move_iterator って、 std::forward<> 相当じゃなくって std::move<> 相当じゃないの?
0314デフォルトの名無しさん
2012/11/24(土) 20:34:37.340315デフォルトの名無しさん
2012/11/24(土) 21:07:28.29moveは右辺値だろうが左辺値だろうが強制的に右辺値参照が返る
0316デフォルトの名無しさん
2012/11/24(土) 21:10:43.81分かりやすいわ
0317デフォルトの名無しさん
2012/11/24(土) 21:20:58.460318デフォルトの名無しさん
2012/11/24(土) 21:23:06.10仮引数を参照でなく値(コピー)にしてmove_iterator使えばよかろ
0319デフォルトの名無しさん
2012/11/24(土) 21:47:22.220320デフォルトの名無しさん
2012/11/24(土) 22:02:00.12コンテナの要素をどうしたいかなんて自分で決めることだろうに
0321デフォルトの名無しさん
2012/11/24(土) 22:04:12.230322デフォルトの名無しさん
2012/11/24(土) 22:18:04.260323デフォルトの名無しさん
2012/11/24(土) 22:37:35.050324デフォルトの名無しさん
2012/11/24(土) 22:39:51.49それで問題ない場合もあるとは思うけど、要素を一部しか使わない関数の場合、
rvalue でないコンテナが全部コピーされるのはちょっと。
0325デフォルトの名無しさん
2012/12/08(土) 21:30:28.16簡単なのにC++03だとメンドイ
C++11で少しは楽にならんのか
0326デフォルトの名無しさん
2012/12/08(土) 22:47:49.79void f(){g->h();}
0327デフォルトの名無しさん
2012/12/08(土) 23:06:42.46残った関数は全てmember変数へ委譲する
ようなことができないって話だよ。
C++03はpointerを使わない移譲なら実装継承で済むが、
pointerに対する委譲の場合明示的に移譲する
member関数を記述する必要がある。
0328デフォルトの名無しさん
2012/12/08(土) 23:43:18.480329デフォルトの名無しさん
2012/12/09(日) 00:05:27.760330デフォルトの名無しさん
2012/12/09(日) 01:50:20.470331デフォルトの名無しさん
2012/12/09(日) 01:55:02.620332デフォルトの名無しさん
2012/12/09(日) 01:57:51.80実装依存に限らず最適化でも死にそうだし
あと仮想関数テーブル弄っても無理だろ
おなじメモリブロックにオブジェクトが
固まってる必要があるから
0333デフォルトの名無しさん
2012/12/09(日) 02:04:25.52他の言語で出来ることを簡潔には書けん
0334デフォルトの名無しさん
2012/12/09(日) 02:34:26.370335デフォルトの名無しさん
2012/12/09(日) 02:45:43.500336デフォルトの名無しさん
2012/12/09(日) 09:06:28.53馬鹿はこのスレ来るなよ
0337デフォルトの名無しさん
2012/12/09(日) 10:18:07.180338デフォルトの名無しさん
2012/12/09(日) 11:18:54.34そのために実装毎にユニークな定数がdefineされてんだろ
0339デフォルトの名無しさん
2012/12/09(日) 11:36:02.20他のvirtual関数実現する方法なんて実質的にないのにな
0340デフォルトの名無しさん
2012/12/09(日) 11:58:37.460341デフォルトの名無しさん
2012/12/09(日) 11:59:21.83ポインタ側の拡張できるじゃん
0342デフォルトの名無しさん
2012/12/09(日) 12:08:20.79だったらC++で実装依存のコードを書いて何が悪いんだよ
0343デフォルトの名無しさん
2012/12/09(日) 14:44:21.640344デフォルトの名無しさん
2012/12/09(日) 16:22:00.76言語仕様で決まってるから、処理系が存在する
環境でなら必ず動作するよ
0345デフォルトの名無しさん
2012/12/09(日) 16:26:21.05インタプリターで動く場合は連想配列だったりするし、
コンパイル式でも最適化でvtable消えるから
規格化するのは難しいだろ
0346デフォルトの名無しさん
2012/12/09(日) 16:29:20.37なんか色々問題 (新たな ABI が必要とか) あるんじゃなかったの?
0347デフォルトの名無しさん
2012/12/09(日) 16:45:59.19何故他の言語の事も知らない門外漢が口を挟むのか?
大人の話に背伸びしたガキが口を挟んでも場を乱すだけ
とかいうような話を知らないのか?
0348デフォルトの名無しさん
2012/12/09(日) 18:10:24.96どうにかして楽に実装できないかと考えたが俺の頭では無理だった
0349デフォルトの名無しさん
2012/12/09(日) 18:16:37.27“標準化されてない”言語仕様だろ?
仕様さえあればいいっていうなら、C++を拡張した独自仕様を書けばいい
そもそもISOの標準と、一企業が開発してる言語を比べるのがおかしい
0350デフォルトの名無しさん
2012/12/09(日) 18:23:34.96そもそも標準化されてないとダメというなら、話題に出せる言語極端に減るしな
0351デフォルトの名無しさん
2012/12/09(日) 18:39:07.80goは元々Bで知られるケントンプソンが作った言語で
google専属言語ではない。Objective-Cはブランドコックスが
モジュール化の理論を達成するために作った言語で
Apple専属言語ではない。
それぞれGoogleやNeXTが作った処理系とは別の処理系が存在する
0352デフォルトの名無しさん
2012/12/09(日) 18:43:33.26言語仕様と実装依存と標準規格は別物だろ
それすら判らないなら初心者スレで初心者と遊んでろ
普通は言語仕様の範疇で話ができりゃいいんだよ
0353デフォルトの名無しさん
2012/12/09(日) 18:49:49.450354デフォルトの名無しさん
2012/12/09(日) 18:56:41.77どこまでを言語仕様というのにもよるけど
リファレンス実装とそのマニュアルが仕様という場合もあるしな
少なくとも最適化や実効環境によって使えなくなる
機能は話にならん
0355デフォルトの名無しさん
2012/12/09(日) 19:02:17.22機能がC++11の仕様の範疇で出来るようになるの?
って話はどうなったんですかね?
0356デフォルトの名無しさん
2012/12/09(日) 19:02:37.61つーか話逸れすぎ
0357デフォルトの名無しさん
2012/12/09(日) 21:56:36.390358デフォルトの名無しさん
2012/12/09(日) 22:13:04.950359デフォルトの名無しさん
2012/12/10(月) 02:52:42.85めんどうくせぇから実装クラスは変数publicにしてthisの変わりに使ってる。
0360デフォルトの名無しさん
2012/12/15(土) 13:13:39.000361デフォルトの名無しさん
2012/12/15(土) 14:01:01.43スクリプトでパパッと生成すりゃいいじゃん
0362デフォルトの名無しさん
2012/12/15(土) 18:40:05.25スクリプトでパパッと生成すりゃいいじゃん
0363デフォルトの名無しさん
2012/12/16(日) 13:43:51.55スクリプトでパパッと生成すりゃいいじゃん
0364デフォルトの名無しさん
2012/12/16(日) 18:31:31.41それをしちゃうとメタプログラミング的に負けなんだよ
そりゃ俺だってPythonあたりで生成すりゃいいと思ったよ
パーサ作るのにSpiritで頑張るより素直にyacc使った方が早かったんじゃねとか思ったよ
0365デフォルトの名無しさん
2012/12/16(日) 18:41:54.190366デフォルトの名無しさん
2012/12/16(日) 18:52:29.61それをしちゃうとメタプログラミング的に負けなんだよ
そりゃ俺だってPythonあたりで生成すりゃいいと思ったよ
パーサ作るのにSpiritで頑張るより素直にyacc使った方が早かったんじゃねとか思ったよ
0367はちみつ餃子 ◆8X2XSCHEME
2012/12/16(日) 19:33:13.020368デフォルトの名無しさん
2012/12/16(日) 20:15:11.540369デフォルトの名無しさん
2012/12/16(日) 20:16:04.270370デフォルトの名無しさん
2012/12/17(月) 01:06:33.26解決されない限りは他のエレガントじゃない手法を選択肢に入れるのも止むを得ないということだ
0371デフォルトの名無しさん
2012/12/17(月) 01:13:03.170372デフォルトの名無しさん
2012/12/17(月) 01:33:02.550373デフォルトの名無しさん
2012/12/17(月) 02:52:43.09結果も同じなのに。
プリコンパイルヘッダについては改善の余地があるとおもいますですよ。
0374デフォルトの名無しさん
2012/12/18(火) 21:59:44.70http://engawa.2ch.net/test/read.cgi/poverty/1355832436/
0375デフォルトの名無しさん
2012/12/18(火) 22:50:38.94なんで今更
0376デフォルトの名無しさん
2012/12/18(火) 23:03:33.030377デフォルトの名無しさん
2012/12/18(火) 23:59:14.880378デフォルトの名無しさん
2012/12/19(水) 12:09:16.78.netframeworkとスタティックリンクできないし、
gcなしにもできないから、何も意味ないな。
0379デフォルトの名無しさん
2012/12/19(水) 13:56:35.12monoのC#からCocoa呼べるようにしましたってだけだろ?
(XやGtk、Qtなどではない)ネイティブGUIの意味でネイティブって書いてあるんだろ?
0380デフォルトの名無しさん
2012/12/19(水) 14:13:08.30残念ながらネイティブとはいえない。
0381デフォルトの名無しさん
2012/12/19(水) 14:34:01.63機械語になっても、APIを叩くにはレイヤーが必要な言語とか結構ある
0382デフォルトの名無しさん
2012/12/19(水) 19:28:46.86今やJavaとかHaskellでも(単独で)OSが書けるんだよな
考えてみればすごい時代だ
0383はちみつ餃子 ◆8X2XSCHEME
2012/12/19(水) 20:40:40.69単独でといってもそこまでに色々なものを積み重ねているから出来るんだけどな。
ブートストラップ的には複雑になっている。
0384デフォルトの名無しさん
2012/12/19(水) 21:14:10.410385デフォルトの名無しさん
2012/12/19(水) 21:37:51.030386デフォルトの名無しさん
2012/12/19(水) 21:52:55.680387デフォルトの名無しさん
2012/12/19(水) 23:15:17.010388デフォルトの名無しさん
2012/12/19(水) 23:29:36.180389デフォルトの名無しさん
2012/12/19(水) 23:29:43.86Singletonパターンが使い易くなるそうですが、
これって、C++11に対応しているVisualStudio2012でコンパイルするだけで、そのようになるのでしょうか?
0390デフォルトの名無しさん
2012/12/19(水) 23:38:45.720391デフォルトの名無しさん
2012/12/20(木) 00:03:18.01盛っとけばいいだろとか言われてもあれじゃねえか
0392デフォルトの名無しさん
2012/12/20(木) 11:12:56.69static データメンバはもともとそんなに気にする必要はない気がする。
関数内の static 変数の初期化↓は、スレッドセーフにならなかった
6.7
4 ... If control enters
the declaration concurrently while the variable is being initialized, the concurrent execution shall wait for
completion of the initialization...
コンパイラのスイッチがあるのかもしれないけど
0393デフォルトの名無しさん
2012/12/20(木) 12:02:04.04C++11フルサポートとは言ってないでしょ。
MSは規格出来てすぐにフルサポートしたことない。
0394デフォルトの名無しさん
2012/12/20(木) 12:37:36.400395デフォルトの名無しさん
2012/12/20(木) 14:52:50.460396デフォルトの名無しさん
2012/12/20(木) 23:42:30.610398デフォルトの名無しさん
2012/12/23(日) 04:42:08.310399デフォルトの名無しさん
2013/01/12(土) 06:09:25.680400デフォルトの名無しさん
2013/01/12(土) 10:27:45.360401デフォルトの名無しさん
2013/01/12(土) 10:55:56.130402デフォルトの名無しさん
2013/01/12(土) 11:14:43.770403デフォルトの名無しさん
2013/01/12(土) 11:25:57.78false 側があらかじめ実行される可能性は?
0404デフォルトの名無しさん
2013/01/12(土) 11:28:18.38if (true)
c++;
else
c;
これでelse側が実行されるかもしれないって危惧するのか?
0405デフォルトの名無しさん
2013/01/12(土) 11:35:49.34a = c++ || c++;
これらは等価?
0406デフォルトの名無しさん
2013/01/12(土) 11:36:45.48(c++) ? c : c++;
の方であって、
(++c) ? c : ++c;
ではないということだな。
0407デフォルトの名無しさん
2013/01/12(土) 11:48:49.92知らんからやらないというのも正しい態度だけど、他人には強制しないでね。
0408デフォルトの名無しさん
2013/01/12(土) 13:07:20.10++がどちらであろうが、後ろの処理が先に実行されることはあり得ない。
0409デフォルトの名無しさん
2013/01/12(土) 13:35:05.82cが最初0なら戻り値1、終了後のcの値は2
cが最初1なら戻り値2、終了後のcの値は2
戻り値よりも他にいい言い方があるかもしんないけどそんだけの話じゃないの?
0410デフォルトの名無しさん
2013/01/12(土) 13:43:41.72kwsk
0411409
2013/01/12(土) 13:55:34.11環境はVS2008でcはintでやったんだけど、実は話題についていけないのは俺だけで
みなさんC++11特有のお話だったりcはint以外の型だったりするの?
0412デフォルトの名無しさん
2013/01/12(土) 14:13:32.530413デフォルトの名無しさん
2013/01/12(土) 15:19:14.76未定義動作や未規定の動作、実装依存の動作かどうかは実際に動かしても
確認できないよ。
この件は、1項目の直後にシーケンスポイント(副作用完了点)があるので
その手のには該当しない。(=問題ない)
0414デフォルトの名無しさん
2013/01/12(土) 17:12:10.162 つの処理の間に順序がある場合は sequenced before という句によって表現されていて、sequece point という点の前後全てで
分ける形にはならなくなった(恐らく concurrency 絡みで)。
0415デフォルトの名無しさん
2013/01/12(土) 17:30:00.980417デフォルトの名無しさん
2013/01/13(日) 00:44:56.98禿同、いったい何処に逝ってしまったのか
0418デフォルトの名無しさん
2013/01/13(日) 00:49:37.680419デフォルトの名無しさん
2013/01/14(月) 16:49:50.490420デフォルトの名無しさん
2013/01/15(火) 16:38:41.34std::functionと似ているが、戻り値の型以外自由にするクラスは作れるぞ。
というかstd::functionが意図的に制限していると言うべきか。
0421デフォルトの名無しさん
2013/01/15(火) 16:56:26.110422デフォルトの名無しさん
2013/01/15(火) 17:50:11.09named lambdaが入っていればなぁ。
0423デフォルトの名無しさん
2013/01/15(火) 23:59:07.09そんなだからお前はHaskellから相手にされないんだぞ
0424デフォルトの名無しさん
2013/01/21(月) 07:54:20.79http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/#mailing2013-01
0425デフォルトの名無しさん
2013/01/21(月) 17:11:15.550426デフォルトの名無しさん
2013/01/21(月) 23:38:33.220427デフォルトの名無しさん
2013/01/22(火) 00:52:25.52{
std::vector<double> angles;
std::vector<double> sines;
const double pi = 3.14159265358979323846;
std::transform(std::begin(angles), std::end(angles), std::begin(sines),
std::bind(std::negate<double>(),
std::bind(&std::sin,
std::bind2nd(std::multiplies<double>(), pi / 180,0))));
}
こういうのbindでちゃんとコンパイル出来るようにするにはどう書けばいいんですか?
0428デフォルトの名無しさん
2013/01/22(火) 01:24:46.92つかエラーメッセージで小数点がカンマになってますとか出てこんのか……
0429デフォルトの名無しさん
2013/01/22(火) 01:37:13.49std::transform(std::begin(angles), std::end(angles), std::back_inserter(sines),
std::bind(
std::negate<double>(),
std::bind(
static_cast<double (*)(double)>(&std::sin),
std::bind(
std::multiplies<double>(),
std::placeholders::_1,
pi / 180.0
)
)
)
);
ていうかbindを重ねて使うようならlambda式使ったほうがよかろう
0430デフォルトの名無しさん
2013/01/23(水) 17:33:34.69なんかつながらなかったからやっと見れた
putfは名前変えたほうがいいと思うんだが
0431デフォルトの名無しさん
2013/01/26(土) 21:38:51.600432デフォルトの名無しさん
2013/01/27(日) 08:49:37.470433デフォルトの名無しさん
2013/01/27(日) 08:51:17.780434はちみつ餃子 ◆8X2XSCHEME
2013/01/27(日) 10:06:01.16明確な定義がないから個々がどういうイメージで捉えようと勝手ではあるけど、
単に自分が理解できないものを黒魔術と呼んでるだけってことが多々ある。
俺のイメージでは「抽象の壁を壊すもの」っていう感じだな。
例えばテンプレートは代表的な抽象化の道具で、
型に依存しない機能 (ジェネリック) を隠すための壁となるべきものだけど、
何らかの計算をさせるために使ったりするのは黒魔術だと思う。
0435デフォルトの名無しさん
2013/01/27(日) 11:27:11.01>>429
0436デフォルトの名無しさん
2013/01/27(日) 11:33:57.93何をやっているかは極めて明快だと思うが。
ただし実際に自分で書くならlambdaで書く。
0437デフォルトの名無しさん
2013/01/27(日) 11:36:11.39極めて明快・・・?
ちょととその感覚は矯正した方がいいぞw
0438デフォルトの名無しさん
2013/01/27(日) 11:40:44.59基本、数学関数の取り回しでしかないから、何をやっているかすぐにわかるだけ。
もちろん、よくわからん(C++の意味での)関数でこれをやられると勘も働かない。
0439デフォルトの名無しさん
2013/01/27(日) 12:04:26.94このコードに手を加えろと言われたら消して書き直すわ
0440デフォルトの名無しさん
2013/01/27(日) 12:04:36.180441デフォルトの名無しさん
2013/01/27(日) 12:08:25.36C++11 の lambda は明快だぞ
0442デフォルトの名無しさん
2013/01/27(日) 12:19:14.190443デフォルトの名無しさん
2013/01/27(日) 12:21:36.570444デフォルトの名無しさん
2013/01/27(日) 12:31:54.510445デフォルトの名無しさん
2013/01/27(日) 12:41:27.93その感覚でいいんじゃね?
lambda自体を使う感覚もそんなもんだし
その場で全てが簡潔に完結してるのがlambda のメリット
0446デフォルトの名無しさん
2013/01/27(日) 12:42:57.49はげどう
0447デフォルトの名無しさん
2013/01/27(日) 12:52:15.20多少複雑でも、局所性が維持されるのは非常にありがたい。
lmbda式の存在はデカいと思うよ。
0448デフォルトの名無しさん
2013/01/27(日) 13:06:59.810449デフォルトの名無しさん
2013/01/27(日) 13:10:02.410450デフォルトの名無しさん
2013/01/27(日) 13:11:06.18それはlambdaとあまり関係ないのでは…
0451デフォルトの名無しさん
2013/01/27(日) 13:27:03.580452デフォルトの名無しさん
2013/01/27(日) 13:57:42.130453デフォルトの名無しさん
2013/01/27(日) 14:29:50.870454デフォルトの名無しさん
2013/01/27(日) 14:34:16.59for_eachは黒魔術としか思えなかった
0455デフォルトの名無しさん
2013/01/27(日) 15:03:56.810456デフォルトの名無しさん
2013/01/27(日) 15:30:16.89C#ではforeachは馬鹿でも使ってた
0457はちみつ餃子 ◆8X2XSCHEME
2013/01/27(日) 17:42:59.14Scheme では for-each は初心者でも使ってた。
0458デフォルトの名無しさん
2013/01/27(日) 18:17:42.200459デフォルトの名無しさん
2013/01/27(日) 19:34:09.040460デフォルトの名無しさん
2013/01/27(日) 19:39:35.47for_eachは要らんな
0461デフォルトの名無しさん
2013/01/27(日) 20:40:57.740462デフォルトの名無しさん
2013/01/27(日) 20:43:52.150463デフォルトの名無しさん
2013/01/27(日) 20:50:24.070464デフォルトの名無しさん
2013/01/27(日) 21:28:22.420465デフォルトの名無しさん
2013/01/27(日) 21:31:09.290466デフォルトの名無しさん
2013/01/27(日) 22:26:16.10カウンタ付きのイタレータアダプタ作ればいいだけ。
0467デフォルトの名無しさん
2013/01/27(日) 22:34:28.050468デフォルトの名無しさん
2013/01/27(日) 22:48:39.630469デフォルトの名無しさん
2013/01/27(日) 22:56:46.230470デフォルトの名無しさん
2013/01/27(日) 23:04:46.38itr->first
itr->second
0471デフォルトの名無しさん
2013/01/27(日) 23:12:38.930472デフォルトの名無しさん
2013/01/27(日) 23:14:31.910473デフォルトの名無しさん
2013/01/27(日) 23:17:55.110474デフォルトの名無しさん
2013/01/27(日) 23:20:07.120475デフォルトの名無しさん
2013/02/13(水) 23:55:44.180476デフォルトの名無しさん
2013/02/14(木) 00:28:29.53JITコンパイル言語の出来が良すぎてC++はその役目を終えつつあるような気がする
0477デフォルトの名無しさん
2013/02/14(木) 00:38:45.390478デフォルトの名無しさん
2013/02/14(木) 00:41:17.58ウェブサイトはある? 英文読んでも込み入りすぎて意味わからん
0479デフォルトの名無しさん
2013/02/14(木) 00:45:48.300480デフォルトの名無しさん
2013/02/14(木) 00:46:02.390481デフォルトの名無しさん
2013/02/14(木) 01:53:56.45そこまで変わらねーよ
スピードが欲しかったらCPUを新しくした方が安い時代
0482デフォルトの名無しさん
2013/02/14(木) 02:53:26.250483デフォルトの名無しさん
2013/02/14(木) 03:48:29.720484デフォルトの名無しさん
2013/02/14(木) 04:28:24.350485デフォルトの名無しさん
2013/02/14(木) 04:42:47.48for(auto &n : nums.subrange(2,3)) {
// 3,4,5 が取り出せたら嬉しい。vector をコピーすることなく
}
0486デフォルトの名無しさん
2013/02/14(木) 07:26:19.90それは本当に速度が要求されるプログラム組んだ事無いだけだろ
C#だけでエンコーダ作ってみろよ
0487デフォルトの名無しさん
2013/02/14(木) 07:43:30.200488デフォルトの名無しさん
2013/02/14(木) 07:46:59.140489デフォルトの名無しさん
2013/02/14(木) 08:58:23.24それは速度のためというより、メモリの効率とかGCとかの関係じゃね?
JITコンパイル言語はメモリを多量に使うしGCが走るのでリアルタイム関係の
仕事をやらせるには都合が悪い
そういう所にしかC/C++の生き残る道はなくなっている
0490デフォルトの名無しさん
2013/02/14(木) 09:07:42.29皮はC#でいいよな
0491デフォルトの名無しさん
2013/02/14(木) 09:14:35.77synchronization operation っつーのは、
× operation that is synchronized
ではなくて
○ operation that is named synchronization
なのね
門外漢は英語の意味とるのも難しい・・・
0492デフォルトの名無しさん
2013/02/14(木) 09:15:19.600493デフォルトの名無しさん
2013/02/14(木) 09:41:48.28IDEが生成したスケルトンプログラムが100M喰うなんて、
いくらメモリが16Gあっても勘弁。
0494デフォルトの名無しさん
2013/02/14(木) 09:54:14.35科学技術計算とか
ゲームとか
ガワはLLってことも多いけど
0495デフォルトの名無しさん
2013/02/14(木) 10:55:56.55インラインアセンブラが使えるかどうかが決定的だろう。
本当に速度が必要なところを徹底的に最適化できるかどうかだ。
0496デフォルトの名無しさん
2013/02/14(木) 15:47:10.22失禁かと思ったw
0497デフォルトの名無しさん
2013/02/14(木) 16:22:51.150498デフォルトの名無しさん
2013/02/14(木) 18:04:34.990499デフォルトの名無しさん
2013/02/14(木) 20:00:50.200500デフォルトの名無しさん
2013/02/14(木) 21:02:49.90書かれていたら絶望的だろうに。
0501デフォルトの名無しさん
2013/02/14(木) 21:15:34.40案外いけるのかもしれん
0502デフォルトの名無しさん
2013/02/14(木) 21:19:54.580503デフォルトの名無しさん
2013/02/14(木) 22:14:43.120504デフォルトの名無しさん
2013/02/14(木) 22:32:49.03超合金合体にみえた
0505デフォルトの名無しさん
2013/02/14(木) 22:55:18.330506デフォルトの名無しさん
2013/02/14(木) 22:56:53.11皮はC#でいいけど
エンコーダ自体は無理、という順番で言って頂きたい
0507デフォルトの名無しさん
2013/02/15(金) 01:26:56.650508デフォルトの名無しさん
2013/02/15(金) 01:45:35.050509デフォルトの名無しさん
2013/02/15(金) 07:20:25.18そういうのを無理って言うんだよw
0510デフォルトの名無しさん
2013/02/15(金) 12:02:34.000511デフォルトの名無しさん
2013/02/15(金) 12:08:38.35昔はCじゃアセンブラに勝てない、って言われてたのに、
コンパイラの最適化コード生成が進化して、むしろアセンブラより
速いってなったんだから、
いつか、C#でエンコーダも、現実的になる日がくるだろ。
いや、ないな。
0512デフォルトの名無しさん
2013/02/15(金) 13:57:18.59取り出して、別のVariadic Template構造体の引数とするには
どうしたら良いですか?
template<typename ...TYPES> struct A{};
template<typename ...TYPES> struct B{};
template<typename T> struct C{
B<Aから取得したTYPES...> b;
};
typedef A<int, char, double> ICD;
C<ICD> c;
//c.bはB<int, char, double>型
環境 VC11
0513デフォルトの名無しさん
2013/02/15(金) 14:36:22.70いや、MSはどうも.NETの脆弱性修正と称して実はJITコンパイラを更新し続けて
いるらしいぞ
VSから生成されたコード(逆アセンブル)見てみろよ
変わって来てる
インライン展開なんか当たり前だし
0514デフォルトの名無しさん
2013/02/15(金) 18:12:27.44アセンブラより速いは無いぞ。
原理上アセンブラと同じまではいけるけど。
0515デフォルトの名無しさん
2013/02/15(金) 18:20:01.79人が普通にアセンブリ言語で書くよりはってことだろ。
0516デフォルトの名無しさん
2013/02/15(金) 18:46:43.67template <typename...> struct C;
template <template <typename...> class Template, typename... Types> struct C<Template<Types...> > {
B<Types...> b;
};
とか。
0517デフォルトの名無しさん
2013/02/15(金) 19:42:53.52じゃあC#だけで超高速なエンコーダ作ってみろよ
0518デフォルトの名無しさん
2013/02/15(金) 21:14:37.82インライン展開が当たり前なのは最初からだ。
どれだけアホなんだよ。
0519デフォルトの名無しさん
2013/02/16(土) 00:05:18.77アホ晒すのもいい加減にしとけ
0520デフォルトの名無しさん
2013/02/16(土) 00:07:33.640521デフォルトの名無しさん
2013/02/16(土) 01:20:27.78後付でよいならばいくらでも反論可能であるよ。
作れる作れないだけで語れ。
0522デフォルトの名無しさん
2013/02/16(土) 01:34:51.36絶対に味方にしたくないタイプだ。
0523デフォルトの名無しさん
2013/02/16(土) 01:42:17.57お前らの好きなN3499/Digit Separatorsはどうよ?
digit-separator:
[to be determined]
だぜ。
0524デフォルトの名無しさん
2013/02/16(土) 06:07:23.27Variadic Templateなクラステンプレートを再帰的に使う。
ということを実装している標準ライブラリがstd::tuple。
0525デフォルトの名無しさん
2013/02/16(土) 21:03:59.94文字列リテラルは並べたらくっつくんだから、数リテラルもそうだということにすればいい
0526デフォルトの名無しさん
2013/02/17(日) 12:05:31.08ユーザー定義リテラルさんには泣いてもらおう。
0527デフォルトの名無しさん
2013/02/17(日) 13:59:05.57それ、16進のとき大丈夫?
0xab cd だと cd がマクロ置換の対象になったりするわけだが。
0xab 0xcd == 0xabcd ってこと?
0528デフォルトの名無しさん
2013/02/17(日) 14:30:41.330529デフォルトの名無しさん
2013/02/17(日) 19:15:20.48そうそう、文字列だって
L"Hello" L"World"
とか書かせてるんだし今さらでしょ
0530デフォルトの名無しさん
2013/02/17(日) 20:11:28.60区切りそれぞれのサフィックスを認識するならこうなるよな
2進リテラルサフィックス 0b も16進中に出現するしあんまりいい予感はしない
0531デフォルトの名無しさん
2013/02/17(日) 20:12:57.170532デフォルトの名無しさん
2013/02/17(日) 20:14:02.680533デフォルトの名無しさん
2013/02/17(日) 22:19:36.380534デフォルトの名無しさん
2013/02/17(日) 22:29:27.19やろうと思えばどの案でも実装可能だから、
話すといっても、どの文字が一番見やすいかぐらいだろ。
0535デフォルトの名無しさん
2013/02/17(日) 22:33:01.900536デフォルトの名無しさん
2013/02/17(日) 23:45:53.520537デフォルトの名無しさん
2013/02/17(日) 23:48:19.280xFF_FF_FF_FF でいいわ
0538デフォルトの名無しさん
2013/02/18(月) 01:21:04.001000 0011
みたいになって、8進数と区別つかない
0539デフォルトの名無しさん
2013/02/18(月) 01:32:05.978進もういらんだろ?
0540デフォルトの名無しさん
2013/02/18(月) 07:33:59.080541デフォルトの名無しさん
2013/02/18(月) 07:57:39.610542デフォルトの名無しさん
2013/02/18(月) 08:10:26.400543デフォルトの名無しさん
2013/02/18(月) 14:00:04.40どういう用途?
初期化子で色々できるようになったけど。
0544デフォルトの名無しさん
2013/02/20(水) 20:55:45.54これ何で採用されねぇんだよ。関数一個一個手書きで移譲すんのめんどくせぇだろ。
0545デフォルトの名無しさん
2013/02/21(木) 02:06:20.33パーミッションのほうを変えろよ
0546デフォルトの名無しさん
2013/02/21(木) 06:11:50.18それくらい分かって諦めろ
0547デフォルトの名無しさん
2013/02/21(木) 11:03:29.230548デフォルトの名無しさん
2013/02/21(木) 11:04:34.780549デフォルトの名無しさん
2013/02/21(木) 11:08:14.10020 とか 0x10 が 16 と同じになるのと同じ意味
0550デフォルトの名無しさん
2013/02/21(木) 11:10:25.330551デフォルトの名無しさん
2013/02/21(木) 19:15:22.33実質的には8進数とかそういう以前の状態で0と判定されそう
0552デフォルトの名無しさん
2013/02/21(木) 19:47:24.280553デフォルトの名無しさん
2013/02/21(木) 21:16:57.190554デフォルトの名無しさん
2013/02/21(木) 21:24:12.49規格がどうであれって意味ね
0555デフォルトの名無しさん
2013/02/21(木) 22:05:03.11公式の提案に対してここで騒ぐだけじゃなんにもならんのがわかってる人はここで議論はしないから
0556デフォルトの名無しさん
2013/02/21(木) 22:14:46.870557デフォルトの名無しさん
2013/02/21(木) 22:32:27.350558デフォルトの名無しさん
2013/02/22(金) 00:21:26.55shared_ptrとweak_ptrを使って自作すればなんぼでも作れる気がするが
0559デフォルトの名無しさん
2013/02/22(金) 00:24:42.370560デフォルトの名無しさん
2013/02/22(金) 00:52:24.26TIGAUこういう事がしたい時につかえるもん。
OldContext *guest = device.CreateContext(); // 新しい描画Contextと互換の無い型
guest->Draw( Text(・・省略・・) );
NewContext *target = new NewContextAdapter( guest ); // 古い型を新しい型用にエミュレートするクラス
// OldContext ( guest ) に委譲される関数 この関数の委譲が明示的に委譲関数を書かなくても委譲される
target->Draw( Text(・・省略・・) );
// NewContextで追加された新しい関数。OldContextで使える
.// 他の関数を組み合わせて動作をエミュレートする。
target->Draw( Video(・・省略・・) );
0561デフォルトの名無しさん
2013/02/22(金) 01:42:49.690562デフォルトの名無しさん
2013/02/22(金) 02:15:17.670563デフォルトの名無しさん
2013/02/22(金) 21:19:44.53みたいに書きたい
いっそのこと
using * = std::shared_ptr
Hoge *ph = new Hoge;
とか書けるようにして欲しい
0564デフォルトの名無しさん
2013/02/22(金) 21:25:01.790565デフォルトの名無しさん
2013/02/22(金) 21:27:15.85気持ち悪い…
0566デフォルトの名無しさん
2013/02/22(金) 21:31:21.04一晩たったら後悔してそうな案だな
0567デフォルトの名無しさん
2013/02/22(金) 21:31:42.84採用されないこともあるって話じゃなく、
却下された理由を知りたいんだけど
>>562
暗黙の変換じゃない。基底クラスを実体じゃなく、
ポインターで保持出来るみたいな話だ。
0568デフォルトの名無しさん
2013/02/22(金) 21:37:31.79#include "ベンダーA.hpp" // typdef bool BOOL
#include "ベンダーB.hpp" // typdef int BOOL
どっちも死んでほしい
0569デフォルトの名無しさん
2013/02/22(金) 21:54:57.00D&E買って嫁
http://www.amazon.co.jp/C-%E3%81%AE%E8%A8%AD%E8%A8%88%E3%81%A8%E9%80%B2%E5%8C%96-Bjarne-Stroustrup/dp/4797328541
0570デフォルトの名無しさん
2013/02/22(金) 21:59:25.770571デフォルトの名無しさん
2013/02/22(金) 22:30:55.04D&EにN1363の事なんて書いてなくね?
0572デフォルトの名無しさん
2013/02/22(金) 22:50:56.67えーなんで何があかんの
今時は生ポインタなんかよりshared_ptrを扱う事の方が圧倒的に多いんだから
簡便な記法があってもいいだろ自転車置き場はともかく
0573デフォルトの名無しさん
2013/02/22(金) 22:51:18.73こんなところでボヤいていても糞の役にも立たない
0574デフォルトの名無しさん
2013/02/22(金) 22:55:58.38C++/CLIみたいに別の記号導入する方がまだマシに見える
0575デフォルトの名無しさん
2013/02/22(金) 23:00:42.400576デフォルトの名無しさん
2013/02/22(金) 23:01:03.980577デフォルトの名無しさん
2013/02/22(金) 23:06:46.67intresuve_ptr と違って
shared_ptr の deleter引数や unique_ptr の default_delete<T> の扱いをどうキモく無い様にするかとかあるけど
0578デフォルトの名無しさん
2013/02/22(金) 23:07:07.73あっても良いかもしれないが、あまり意味がないような。
文字数も減らないし、むしろ混乱要素が増えるだろ。
その記法のメリットはどこなの?
0579デフォルトの名無しさん
2013/02/22(金) 23:17:08.79だってC++でポリモーフィズムをしようとしたらポインタを使う事になるもん
リファレンスでもいいけど関数の引数位でしょ?
この当たりの泥臭さが他のOOP言語を使ってる人から見れば奇っ怪に見えるのかも
0580デフォルトの名無しさん
2013/02/22(金) 23:21:31.39delete &other;
0581デフォルトの名無しさん
2013/02/22(金) 23:27:19.770583デフォルトの名無しさん
2013/02/22(金) 23:35:07.470584デフォルトの名無しさん
2013/02/22(金) 23:37:52.73リファレンスでもいいけどって生ポインタとリファレンスは用途が違うし
何が言いたいのかよくわからない
0585デフォルトの名無しさん
2013/02/22(金) 23:45:31.52ソースコードの最初に using * = shared_ptr; って書いておけば幸せになれる
0586デフォルトの名無しさん
2013/02/22(金) 23:46:31.120587デフォルトの名無しさん
2013/02/22(金) 23:47:57.380588デフォルトの名無しさん
2013/02/22(金) 23:48:15.00どうしても生ポが使いたかったらN3514のstd::exempt_ptr使えばいいよ
0589デフォルトの名無しさん
2013/02/22(金) 23:55:29.92int main(int argc, char **argv)
{
0590デフォルトの名無しさん
2013/02/22(金) 23:57:59.15int main(int argc, std::exempt_ptr<std::exempt_ptr<char>> argv)
{
(あ、あかんこれ)
0591デフォルトの名無しさん
2013/02/23(土) 00:28:13.460592デフォルトの名無しさん
2013/02/23(土) 00:31:32.50shared_ptrをtypedefしろよハゲとしか
0593デフォルトの名無しさん
2013/02/23(土) 00:33:32.410594デフォルトの名無しさん
2013/02/23(土) 00:47:17.74ナマポと混乱するデメリットの方が大きい気がします
0595デフォルトの名無しさん
2013/02/23(土) 02:10:11.88ptr<int> みたいな
0596デフォルトの名無しさん
2013/02/23(土) 12:20:32.50ptr_vectorの場合ポインタではなく参照だと知らなかった
class Animal {
public:
virtual void cry() const = 0;
virtual ~Animal() {}
};
class Dog : public Animal {
void cry() const {
std::cout << "bark" << std::endl;
}
};
class Cat : public Animal {
void cry() const {
std::cout << "mew" << std::endl;
}
};
int main()
{
boost::ptr_vector<Animal> pa;
pa.push_back(new Dog);
pa.push_back(new Cat);
std::for_each(std::begin(pa), std::end(pa), [=](Animal& ra) { ra.cry(); });
}
0597デフォルトの名無しさん
2013/02/23(土) 12:35:17.200598デフォルトの名無しさん
2013/02/23(土) 12:37:23.52これコンパイル通らなかったんだよ
だから気づいた
0599デフォルトの名無しさん
2013/02/23(土) 12:55:08.72#ifdef に対応する iftypedef も欲しいよね
0600デフォルトの名無しさん
2013/02/23(土) 13:05:23.52見当違いのこといってる自覚がないなら勉強しなおしたほうがいい
this 通してアクセスしてねーだろ。
0601デフォルトの名無しさん
2013/02/23(土) 13:11:20.74pointer_containerのイテレータの参照外しが何型になると思ってるんだ
*(pa.begin()); // 何型?
0602デフォルトの名無しさん
2013/02/23(土) 13:19:30.33じゃあthis通してアクセスする、コンパイルが通るプログラム書いてくださいな
>>601
boostのマニュアルを見て初めて知った
0603デフォルトの名無しさん
2013/02/23(土) 13:47:14.51それはテンプレートで十分じゃないか?
0604デフォルトの名無しさん
2013/02/23(土) 15:15:21.32using SP = std::shared_ptr<T>
で->で正しく候補をあげるエディタ(IDE)ってある?
0605デフォルトの名無しさん
2013/02/23(土) 15:21:22.45さっき試してみたがTemplate Aliasesに対応してたんだな
0606デフォルトの名無しさん
2013/02/23(土) 16:16:34.50VimやEmacsならclangの補完プラグイン入れれば行けると思うぞ
0607デフォルトの名無しさん
2013/02/23(土) 18:19:20.74こんなことしたら初めにglobal::data::fooにあったfooはどうなるんですか?
0608デフォルトの名無しさん
2013/02/23(土) 18:51:27.190609デフォルトの名無しさん
2013/02/23(土) 20:09:03.52まずshared_fooが保持していたポインタへの参照カウントが1減り、その結果参照カウントが0になればそのポインタは解放される
その後make_sharedから渡されたshared_ptrの保持するポインタとその参照カウントを共有して保持するようになる
0610デフォルトの名無しさん
2013/02/24(日) 05:46:39.710611デフォルトの名無しさん
2013/02/27(水) 13:37:33.17http://isocpp.org/blog/2013/02/concepts-lite-constraining-templates-with-predicates-andrew-sutton-bjarne-s
0612デフォルトの名無しさん
2013/02/27(水) 21:15:28.30これはいい事なのか
0613デフォルトの名無しさん
2013/02/27(水) 21:19:20.240614デフォルトの名無しさん
2013/02/28(木) 02:14:55.100615デフォルトの名無しさん
2013/02/28(木) 19:12:27.020616デフォルトの名無しさん
2013/02/28(木) 21:18:55.680617デフォルトの名無しさん
2013/03/01(金) 11:02:03.350618デフォルトの名無しさん
2013/03/01(金) 19:38:01.220619デフォルトの名無しさん
2013/03/01(金) 20:30:02.960620デフォルトの名無しさん
2013/03/02(土) 00:07:04.87言語レベルで取り込むのは少しC++的でないかもしれない。
0621デフォルトの名無しさん
2013/03/02(土) 07:20:53.13「最適化のため」の機能がまともに役立った試しがあるか?
0622デフォルトの名無しさん
2013/03/02(土) 07:33:53.960623デフォルトの名無しさん
2013/03/02(土) 10:15:27.79そしてその時点では有効であっても人間側の判断が進歩したコンパイラの解析に劣るようになると害のほうが多くなっていく
0624デフォルトの名無しさん
2013/03/02(土) 10:19:04.92本来不変な条件が足枷になるならもっといろいろと壊れてるよ。
0625デフォルトの名無しさん
2013/03/02(土) 12:48:23.060626デフォルトの名無しさん
2013/03/02(土) 13:30:06.27適切に利用することを第一に考えておけばいいんじゃないか
0627デフォルトの名無しさん
2013/03/02(土) 13:38:06.31axiom MulAdd(T y, T x, T a, T b) {
y = a * x + b <=> muladd(y, a, x, b)
}
こういうの。
まあ提案自体が難しいから、
最適化にしか使えないと思う人がいるのも無理はない。
concept関係は読み込んでる人の方が少ないだろうし。
もとからstatic assertレベルだと思う人がいるくらいで。
0628デフォルトの名無しさん
2013/03/02(土) 13:50:11.530629デフォルトの名無しさん
2013/03/02(土) 14:17:30.07(x + y) + z <=> x + (y + z);
}
これが整備されてないドキュメント以下になることは難しいと思われ
0630デフォルトの名無しさん
2013/03/02(土) 14:25:25.48*p++ <=> { T tmp = *p; ++p; return tmp }
を見た時ちょっと笑ってしまった。そこからかい!
0631デフォルトの名無しさん
2013/03/02(土) 15:43:44.51まったく無関係にオーバーロードできるからな。
0632デフォルトの名無しさん
2013/03/03(日) 05:31:08.520633デフォルトの名無しさん
2013/03/03(日) 13:06:29.240634デフォルトの名無しさん
2013/03/04(月) 08:59:39.38C++11を一人で実装しろとか無茶なこと言って何の意味があるの
0635デフォルトの名無しさん
2013/03/04(月) 21:27:16.05……出てる……よな?
0636デフォルトの名無しさん
2013/03/04(月) 23:09:06.090637デフォルトの名無しさん
2013/03/05(火) 06:04:28.45仕様書で1300ページを超えるC++11を実装するのは話が違うから
まともに使えるC++11を一人でサクサク実装できるなら天才だと思うわ
0638デフォルトの名無しさん
2013/03/05(火) 10:03:59.41ただ結構筆力がないと目安の週10時間では無理だろう。
0639デフォルトの名無しさん
2013/03/05(火) 23:38:22.370640デフォルトの名無しさん
2013/03/05(火) 23:46:05.88コンパイラ実装だけならそれほど無理な作業でもない気がするけど
ライブラリ群はムリ絶対ムリ
0641デフォルトの名無しさん
2013/03/06(水) 00:47:11.070642デフォルトの名無しさん
2013/03/06(水) 00:49:16.41C++11ぐらいになると、もはや人智を超えてる感ある
ロケットみたいなイメージ。巨大すぎて個人で手がけるの無理
0643デフォルトの名無しさん
2013/03/06(水) 00:55:29.31template<typename ... Args>
void test_func1()
{
}
template<typename ... Args>
void test_func2(Args ... args)
{
}
template<typename ... Args>
void func()
{
auto f1 = test_func1<Args ...>; // OK
auto f2a = test_func2<int, int>; // OK
auto f2b = test_func2<Args ...>; // NG コンパイラ内部エラー: unify 内、位置 cp/pt.c:16978
}
関数のアドレス取ろうと思って、何となく書いてみたら内部エラーが起きた・・・
0644デフォルトの名無しさん
2013/03/06(水) 02:32:32.77テスト以外にも、いろいろと自作と結果を比べるために。
配布バイナリいきなり実行か。CPPGMの主催者を信頼していいのだろうか?
0645デフォルトの名無しさん
2013/03/06(水) 02:41:30.25そっちでやれよw
0646デフォルトの名無しさん
2013/03/06(水) 06:40:35.140647デフォルトの名無しさん
2013/03/06(水) 12:08:57.470648デフォルトの名無しさん
2013/03/06(水) 17:27:42.900649デフォルトの名無しさん
2013/03/06(水) 20:10:58.73ここのスレは。物凄いプロ集団か、オタクの世界ですか?
0650デフォルトの名無しさん
2013/03/06(水) 20:18:27.47キチ、超底辺ドカタ、真性オタクのいずれかです
0651デフォルトの名無しさん
2013/03/06(水) 20:57:53.470652デフォルトの名無しさん
2013/03/06(水) 21:02:55.120654デフォルトの名無しさん
2013/03/06(水) 21:19:22.75AVX2はC++11じゃないと速いコードにならないらしいね
0655651
2013/03/06(水) 21:21:02.62そうなんだ!
まぁ、VS2012でガンガンC++11の機能を使う予定だから問題なしだね!
あーもう6月までガマンできないよぉ!!
0656デフォルトの名無しさん
2013/03/06(水) 21:34:32.980657デフォルトの名無しさん
2013/03/06(水) 21:35:46.130658デフォルトの名無しさん
2013/03/06(水) 21:36:14.260659デフォルトの名無しさん
2013/03/06(水) 21:41:18.750660デフォルトの名無しさん
2013/03/06(水) 22:00:30.55x64だとSSE2が標準になるから指定出来るとすればAVXだけかな。
0661デフォルトの名無しさん
2013/03/08(金) 06:54:12.41Assembly書くよりvalarray使い回したほうが楽じゃね?
valarrayがSIMDで最適化されるのってIntelの翻訳器だけだっけ?
0662デフォルトの名無しさん
2013/03/08(金) 06:55:49.49手書きでオプション追加すれば?
0663デフォルトの名無しさん
2013/03/11(月) 23:12:09.560664デフォルトの名無しさん
2013/03/12(火) 01:31:42.300665デフォルトの名無しさん
2013/03/12(火) 01:36:18.700666デフォルトの名無しさん
2013/03/12(火) 02:00:39.14macはtwitterほどの不自由さは感じないな
0667デフォルトの名無しさん
2013/03/12(火) 04:10:00.850668デフォルトの名無しさん
2013/03/12(火) 14:24:52.660669デフォルトの名無しさん
2013/03/12(火) 16:57:09.770670デフォルトの名無しさん
2013/03/12(火) 21:50:59.720671デフォルトの名無しさん
2013/03/12(火) 22:31:04.130672デフォルトの名無しさん
2013/03/13(水) 02:37:48.250673デフォルトの名無しさん
2013/03/13(水) 20:23:20.410674デフォルトの名無しさん
2013/03/14(木) 16:39:38.98まあ不自由なtwitter使っているんだから不思議ではないわな
0675デフォルトの名無しさん
2013/03/14(木) 17:47:04.09じゃあ君は何を使ってんだ?
0676はちみつ餃子 ◆8X2XSCHEME
2013/03/14(木) 18:09:07.000677デフォルトの名無しさん
2013/03/14(木) 18:10:21.79Mac、Windows、Linux全部使ってるし
0678デフォルトの名無しさん
2013/03/14(木) 18:19:53.180679デフォルトの名無しさん
2013/03/14(木) 18:32:00.93効率悪そうだな
もう少し考えた方がいい
0680デフォルトの名無しさん
2013/03/14(木) 18:37:38.420681デフォルトの名無しさん
2013/03/14(木) 19:18:57.10新機能は便利そうだけどほとんどboostにあるわけで、ライブラリの互換性とかコンパイラ間の互換性に引っかかるリスクのほうが怖い
速度に関して03より11にするメリットがあるなら迷わず乗り換えるんだけどどうかな?
0682デフォルトの名無しさん
2013/03/14(木) 19:22:03.240683デフォルトの名無しさん
2013/03/14(木) 19:27:40.48しかしVCはconstexprも実装されて無いという・・・
0684デフォルトの名無しさん
2013/03/14(木) 19:30:58.870685デフォルトの名無しさん
2013/03/14(木) 19:46:37.410686デフォルトの名無しさん
2013/03/14(木) 20:01:28.28Write once, write anywhereやで
0687デフォルトの名無しさん
2013/03/14(木) 20:05:04.630688デフォルトの名無しさん
2013/03/14(木) 23:26:38.810689デフォルトの名無しさん
2013/03/15(金) 00:56:12.210690デフォルトの名無しさん
2013/03/15(金) 02:51:40.42検索サービスは使うんでしょ
0691デフォルトの名無しさん
2013/03/15(金) 03:18:46.66エミュレーターを使うなど使い続けられる可能性があるが
クローズドなサービスは運営が止めたら一巻の終わり
なぜクローズドなソフトウェアを使うのは嫌なのに
クローズドなサービスは使うのは平気なのか?
0692デフォルトの名無しさん
2013/03/15(金) 03:20:58.930693デフォルトの名無しさん
2013/03/15(金) 04:01:28.770694デフォルトの名無しさん
2013/03/15(金) 04:19:59.16いつ使えなくなるかわからん
0695デフォルトの名無しさん
2013/03/15(金) 04:32:10.18プログラマーなんだもん
0696デフォルトの名無しさん
2013/03/15(金) 04:43:15.980697デフォルトの名無しさん
2013/03/15(金) 04:45:29.960698デフォルトの名無しさん
2013/03/15(金) 04:46:44.760699デフォルトの名無しさん
2013/03/15(金) 05:25:15.64ひとつのサーバーで一括してやらないと、F5アタックと変わらんからな
0700デフォルトの名無しさん
2013/03/15(金) 05:45:22.38ソフトウェア作るのとサービス作るのとの違いはそういうところもあるよな
複数ユーザーからの需要をまとめることで取得先に負荷をかけない配慮もあるし
サービス落としてはいけない堅牢性も求められるし
バグや作業ミスで個人情報が漏れることはあってはいけないし
0701デフォルトの名無しさん
2013/03/15(金) 13:56:01.00存在さえ許されずこの世から消えさる悲しき存在
クローズドなソフトウェアは開発元がつぶれてもとりあえず使うことはできる
0702デフォルトの名無しさん
2013/03/15(金) 15:00:59.650703デフォルトの名無しさん
2013/03/16(土) 01:18:20.26俺はまず地元で一通り後輩をナンパし、茶髪で周囲の注目を集めた後
女子高生をひっかけ地元にお持ち帰り、ご近所さんにお披露目をした。
星奈、夜景の綺麗な都会のマンションで結婚式をしよう。またわけのわ
からないダダを捏ねたのだろう。高校を卒業したばかりの星奈にマンシ
ョンを契約させたのだ。
0705デフォルトの名無しさん
2013/03/16(土) 07:32:26.13clangを改造する講座はありませんか?
0706デフォルトの名無しさん
2013/03/16(土) 09:36:40.270707デフォルトの名無しさん
2013/03/16(土) 11:53:33.23Parallel::For使ってる人居るかな?
C#のParallel.Forはいくらでも見かけるけど
C++でこれ使ってる日本語サイトがほとんどみつからない
0708デフォルトの名無しさん
2013/03/16(土) 11:55:42.790709デフォルトの名無しさん
2013/03/16(土) 12:55:54.01Parallel.Forってのはラムダ式がないと使えないんだが.
ライブラリを提供するだけで,制御構造である繰り返しルーチンまでも引数として与えられるのがラムダ式
これに正式対応したのが11からだろ.
0710デフォルトの名無しさん
2013/03/16(土) 13:08:16.95それとC++のラムダ式は基本的には関数オブジェクト定義の糖衣構文でしかない
0711デフォルトの名無しさん
2013/03/16(土) 13:31:27.940712デフォルトの名無しさん
2013/03/16(土) 14:26:59.24そろそろ新しい魔導書とかでないのか?
0713デフォルトの名無しさん
2013/03/16(土) 14:27:34.920714デフォルトの名無しさん
2013/03/16(土) 14:39:45.390715デフォルトの名無しさん
2013/03/16(土) 14:45:18.74電子出版で。
この前改訂版が出た。
もちろん英語。
0716デフォルトの名無しさん
2013/03/16(土) 15:37:33.440717デフォルトの名無しさん
2013/03/17(日) 00:54:46.120718デフォルトの名無しさん
2013/03/17(日) 11:10:22.83struct s {
int x;
explicit s(int x_)
: x(x_*2)
{
}
};
std::vector<s> v;
v.emplace_back(s(2)); // ok
v.emplace_back(3); // ok
これは、どういうからくりでしょうか?
0719デフォルトの名無しさん
2013/03/17(日) 11:44:01.52emplaceはsのコンストラクタの引数を直接渡す。
つまりemplace_back(int arg)にintを渡して関数中で明示的にsのコンストラクタを呼び出すから問題ない。
0720デフォルトの名無しさん
2013/03/17(日) 12:02:29.64new(p_new_element) s(s(2)); // (暗黙定義の)ムーブコンストラクタの呼び出し
new(p_new_element) s(3); // explicit s(int x_)の呼び出し
0721デフォルトの名無しさん
2013/03/17(日) 13:10:22.510722デフォルトの名無しさん
2013/03/17(日) 13:25:20.67boolとか番地と値の格納位置が一致しない型だと実装不可能だろう。
勿論boolは例外扱いになって入るが、stringで言うc_strにあたるようなもん用意すりゃ
良かったろうに何がしたいのか判らんな。
0723デフォルトの名無しさん
2013/03/17(日) 13:28:04.140724デフォルトの名無しさん
2013/03/17(日) 13:28:09.150725デフォルトの名無しさん
2013/03/17(日) 13:28:20.62何言ってんだこいつ
0726デフォルトの名無しさん
2013/03/17(日) 13:34:12.08なにが言いたいんだろうな
0727デフォルトの名無しさん
2013/03/17(日) 13:48:25.84あのさあ
std::vector<bool>の仕様よく読んでみな
0728デフォルトの名無しさん
2013/03/17(日) 15:45:41.15その場合だと、dataを呼んだ時だけbool型配列にすればいいでしょ。
普段の実装時は、bit単位で格納すればいいから格納効率があがるじゃん。
そんで、bool以外も、その制限が加わればstd::vector<bool>と他のstd::vector<T>と
の齟齬が無くなる。
0729デフォルトの名無しさん
2013/03/17(日) 15:50:30.86他のstd::vector<T>と矛盾が無くなる。
0730デフォルトの名無しさん
2013/03/17(日) 15:57:39.850731デフォルトの名無しさん
2013/03/17(日) 16:44:21.95Cの配列と一致するメモリイメージを返すメンバ関数があるのとでは、
CのAPIを呼ぶ際の親和性に天地の差があるだろう。
0732デフォルトの名無しさん
2013/03/17(日) 17:53:00.42> その場合だと、dataを呼んだ時だけbool型配列にすればいいでしょ。
そっちの方が意味変わりすぎだろw
24bitや48bitのpackedなvectorは特殊化で書ける。
0733デフォルトの名無しさん
2013/03/17(日) 17:57:46.49ああいう構造なのかを考えてみた方が良いかも。
std::vector<bool>こそ要らないよね。
STLコンテナですらないとかtemplateの特殊化使った
初期のお遊び的仕様が引きずられている感じ
全く別のクラスとして用意する分には問題ないけど。
0734デフォルトの名無しさん
2013/03/17(日) 18:09:25.030735デフォルトの名無しさん
2013/03/17(日) 18:15:33.650736デフォルトの名無しさん
2013/03/17(日) 19:13:49.390737はちみつ餃子 ◆8X2XSCHEME
2013/03/17(日) 19:39:27.62なんだその似非関西弁は。
「おらへんで」だろ。
0738デフォルトの名無しさん
2013/03/17(日) 19:40:43.68bool 配列作りたい時に凄い困ってるわ
0739デフォルトの名無しさん
2013/03/17(日) 19:57:09.54いーひんやろ
このあたりかな。
0740デフォルトの名無しさん
2013/03/17(日) 20:02:40.05ガキの使いやあらへんで
>>738
だからbitset使うんだよ
0741デフォルトの名無しさん
2013/03/17(日) 20:02:43.11Effective STL 第18項を参照のこと
0742デフォルトの名無しさん
2013/03/17(日) 20:03:08.14boost::dynamic_bitsetがあるだろ
0743デフォルトの名無しさん
2013/03/17(日) 20:53:07.480744デフォルトの名無しさん
2013/03/17(日) 21:42:11.790745片山博文MZパンク ◆0lBZNi.Q7evd
2013/03/17(日) 22:50:57.700746デフォルトの名無しさん
2013/03/17(日) 22:55:45.720747デフォルトの名無しさん
2013/03/17(日) 22:56:25.22>STLコンテナですらない
&vector[0] + n == &vector[n]この余計な制約ぐらいだったと思うが具体的には?
>>740
bitsetは代わりにならんだろ
0748デフォルトの名無しさん
2013/03/17(日) 23:07:37.780749デフォルトの名無しさん
2013/03/17(日) 23:29:34.60なんと!
STLでスレッドがサポートされたとな!
これは使ってみよう!
0750デフォルトの名無しさん
2013/03/17(日) 23:46:26.92&vector[0] + n == &vector[n]
vector 実装に対してこんな制約あるの?
size() が n の vector に対しては vector[n] の時点で未定義動作じゃないの?
0751デフォルトの名無しさん
2013/03/18(月) 00:02:07.33他にもvector<bool>についてはコンテナとしての要件を満たしていない可能性があるのでbegin(),end()は使ってはいけないなどの制約がある
0752デフォルトの名無しさん
2013/03/18(月) 00:31:32.45あ・・・そうか、そうだな
頭いいな
0753デフォルトの名無しさん
2013/03/18(月) 07:09:42.92C++98時点ではそんな制約はなく
vector<bool>はSTLとして問題なかった
0754デフォルトの名無しさん
2013/03/18(月) 07:16:22.930755デフォルトの名無しさん
2013/03/18(月) 07:22:48.860756デフォルトの名無しさん
2013/03/18(月) 07:57:45.68amazon.com見たら Publication Date が March 20 から June 3 になってたぞ...
0757デフォルトの名無しさん
2013/03/18(月) 09:38:48.590758デフォルトの名無しさん
2013/03/18(月) 09:43:39.760759デフォルトの名無しさん
2013/03/18(月) 15:17:26.350760デフォルトの名無しさん
2013/03/18(月) 15:44:55.09>>748
0761デフォルトの名無しさん
2013/03/18(月) 16:17:43.140762デフォルトの名無しさん
2013/03/18(月) 18:19:32.370763デフォルトの名無しさん
2013/03/18(月) 18:33:35.730764デフォルトの名無しさん
2013/03/18(月) 21:55:45.52だから03で追加した仕様が問題だって話じゃないのか?
0765デフォルトの名無しさん
2013/03/18(月) 22:08:49.66きゃりーぱみゅぱみゅってCPPって略称なんだぜ
0766デフォルトの名無しさん
2013/03/18(月) 22:10:34.460767デフォルトの名無しさん
2013/03/18(月) 22:25:33.45CPPFLAGSはC++へのフラグじゃなくてCプリプロセッサ用。
0768デフォルトの名無しさん
2013/03/18(月) 22:41:21.470769デフォルトの名無しさん
2013/03/18(月) 23:50:18.89さっき原発の冷却システム壊れたってニュースが
しかも19時から止まってて復旧見込みないって
(´・ω・`)
0770デフォルトの名無しさん
2013/03/18(月) 23:56:03.510771デフォルトの名無しさん
2013/03/19(火) 00:01:05.55って書いてたら今頃NHKで言い始めた
0772デフォルトの名無しさん
2013/03/19(火) 00:50:55.18「燃料プールの冷却が止まったままで復旧の目処が立たず」の部分は曖昧に言って
「原子炉の冷却は復旧して問題はない」を強調してるらしいな
つうか、何のスレだよ
0773デフォルトの名無しさん
2013/03/19(火) 01:08:31.37あとから指摘されて追加されたんだよな。
C++ Standard Library Issues Listの69。
それまではオレも一生懸命newしてたさ。
・・・ただし、iteratorはポインタとは限らない。
0774デフォルトの名無しさん
2013/03/19(火) 01:33:21.32あちちあち
燃えてるんだ炉が♪
0775デフォルトの名無しさん
2013/03/19(火) 04:20:43.96VC6のときにvectorのiteratorをポインタ代わりに使っていてVC.NETになったときに喰らったよい思い出
0776デフォルトの名無しさん
2013/03/19(火) 06:42:37.380777デフォルトの名無しさん
2013/03/19(火) 07:27:25.06便利にはなったが、&v.front()とか&v[0]は気持ち悪いわぁ
0778デフォルトの名無しさん
2013/03/19(火) 07:28:14.530779デフォルトの名無しさん
2013/03/19(火) 07:44:37.140780デフォルトの名無しさん
2013/03/19(火) 19:18:39.480781デフォルトの名無しさん
2013/03/19(火) 19:52:10.610782デフォルトの名無しさん
2013/03/19(火) 20:16:36.40C++に限ってはそうでもないな
0783デフォルトの名無しさん
2013/03/19(火) 20:17:01.88コーディングじゃなくて
0784デフォルトの名無しさん
2013/03/20(水) 02:12:14.38http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/#mailing2013-03
0785デフォルトの名無しさん
2013/03/20(水) 17:36:15.47http://yamatetsu.dee.cc/info/Class_C11.htm
0786デフォルトの名無しさん
2013/03/26(火) 21:35:41.46クローズドなサービス使ってたばちが当たったわ
0787デフォルトの名無しさん
2013/03/26(火) 23:08:39.400788デフォルトの名無しさん
2013/03/26(火) 23:09:42.990789デフォルトの名無しさん
2013/03/26(火) 23:44:45.550790デフォルトの名無しさん
2013/03/26(火) 23:48:23.64ただ口だけ
0791デフォルトの名無しさん
2013/03/26(火) 23:51:29.96メールアドレス別でいいなら、中身は単なるGmailなんだからどこでも行けばいいし。
0792デフォルトの名無しさん
2013/03/26(火) 23:51:53.57漢気溢れる誰かがやってくれるんだろう
0793デフォルトの名無しさん
2013/03/27(水) 00:12:15.80移った先がまた終了するだろ
0794デフォルトの名無しさん
2013/03/27(水) 00:19:03.060795デフォルトの名無しさん
2013/03/27(水) 00:24:30.470796デフォルトの名無しさん
2013/03/27(水) 19:26:57.77どこの馬の骨か判らない他人に依存してる時点で負け
0797デフォルトの名無しさん
2013/03/27(水) 20:43:18.280798デフォルトの名無しさん
2013/03/28(木) 07:49:00.090799デフォルトの名無しさん
2013/03/29(金) 12:30:59.420800デフォルトの名無しさん
2013/03/29(金) 15:41:44.180801デフォルトの名無しさん
2013/03/29(金) 16:31:17.08提供よろしく
0802デフォルトの名無しさん
2013/03/29(金) 16:55:55.530803デフォルトの名無しさん
2013/03/29(金) 17:51:23.99わざわざ演算子にまでする意味を感じない
ソートが少し書きやすくなるくらいじゃないの
0804デフォルトの名無しさん
2013/03/29(金) 17:56:25.330805デフォルトの名無しさん
2013/03/29(金) 20:35:34.25いまさら演算子追加してもあんまり嬉しくない気がする
0806デフォルトの名無しさん
2013/03/29(金) 21:11:50.60演算子追加するならローテート演算子が欲しい
暗号系でよく使うので
0807デフォルトの名無しさん
2013/03/29(金) 21:27:38.660808デフォルトの名無しさん
2013/03/29(金) 21:35:49.57使える記号を増やしてほしい
括弧の種類とか増やしてくれ
0809デフォルトの名無しさん
2013/03/29(金) 21:58:56.23小さなcore言語+ライブラリで対応していく流れに逆行するのもいい加減にしろ
0810デフォルトの名無しさん
2013/03/29(金) 22:16:14.62文字の種類が増えれば:=:みたいな見苦しい演算子はいらないし
0811デフォルトの名無しさん
2013/03/29(金) 22:22:32.990812デフォルトの名無しさん
2013/03/29(金) 22:25:28.580813はちみつ餃子 ◆8X2XSCHEME
2013/03/29(金) 22:37:22.19ラテン文字だけでも何かと問題は多いので UTF-8 を採用する案は悪くないと思う。 実際にはそれほど使わなくても。
だだ、文法と密接な関係がある予約語や記号類に使う文字は限定的にすべきではあると思うぞ。
0814デフォルトの名無しさん
2013/03/29(金) 22:37:26.89http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3AScheme%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E3%83%AC%E3%83%99%E3%83%AB10
レベル5
仕事でJavaやC++を使っている時にああここでちょいと クロージャを使って再帰すれば、と思うことがある。
救いを求めてファンクタなど使ってみるが、 (), {}, [], <>などという4種類もの括弧にもはや頭がついていかない。 括弧は()で十分だ。
0815はちみつ餃子 ◆8X2XSCHEME
2013/03/29(金) 22:43:24.98Scheme でも [ ] が括弧として使えるようになったけどな。 意味は ( ) と全く同じだけど。
そんでもってもっと大事なことだが、 Scheme は Unicode を採用した。 変数名に漢字も使えるよ。
0816デフォルトの名無しさん
2013/03/29(金) 22:58:30.73試みられているアプローチではあるが、大成功したという話を聞いたことはない
0817デフォルトの名無しさん
2013/03/29(金) 23:11:27.47D言語の!()とか
苦労しているように見えるけどなあ
演算子も数学の演算子が使えた方がいいと思うし
0818デフォルトの名無しさん
2013/03/29(金) 23:15:42.53頭にいちいちtemplateって書く必要もなくなるし
0819デフォルトの名無しさん
2013/03/29(金) 23:21:13.350820デフォルトの名無しさん
2013/03/29(金) 23:26:34.240821デフォルトの名無しさん
2013/03/29(金) 23:35:01.250822デフォルトの名無しさん
2013/03/29(金) 23:36:58.240823デフォルトの名無しさん
2013/03/29(金) 23:37:42.690824デフォルトの名無しさん
2013/03/29(金) 23:38:22.52baka ha ascii mozi igai tukauna
0825デフォルトの名無しさん
2013/03/29(金) 23:39:47.76英語で書けばすむだろって話なんだから。
0826デフォルトの名無しさん
2013/03/29(金) 23:52:30.470827デフォルトの名無しさん
2013/03/29(金) 23:59:37.50なんて通用するのは21世紀まで
0828デフォルトの名無しさん
2013/03/30(土) 10:45:56.900829デフォルトの名無しさん
2013/03/30(土) 11:07:25.270830デフォルトの名無しさん
2013/03/30(土) 14:54:10.310831デフォルトの名無しさん
2013/03/30(土) 15:01:25.690832デフォルトの名無しさん
2013/03/30(土) 15:15:01.020833デフォルトの名無しさん
2013/03/30(土) 15:40:04.800834デフォルトの名無しさん
2013/03/31(日) 09:58:37.200835デフォルトの名無しさん
2013/03/31(日) 10:14:27.89全角文字の変数にしようぜ。
ジジイどもは卒倒するだろうが
ぜったいに保守性は上がる。
0836デフォルトの名無しさん
2013/03/31(日) 10:49:00.80しかし問題が一つ、珍奇な概念の持ち主はやはり珍奇な漢語を羅列するだろう。命名規則はどうする?
prologスレにいい感じの奴があるが、あのレベルを皆に徹底するのは大変なのでは?
0837デフォルトの名無しさん
2013/03/31(日) 11:04:58.82美しく洗練されたコードには陶酔する。
@や$を使うなど、絵画作品にうんこマークを描くようなもんだ。
0838デフォルトの名無しさん
2013/03/31(日) 12:04:16.88全角文字を変数にしようとするバカのレス番を保存するコンテナ >>835;
全角文字を変数にしようとするバカのレス番を保存するコンテナ >>835;
全角文字を変数にしようとするバカのレス番を保存するコンテナ >>835;
全角文字を変数にしようとするバカのレス番を保存するコンテナ >>835;
全角文字を変数にしようとするバカのレス番を保存するコンテナ >>835;
全角文字を変数にしようとするバカのレス番を保存するコンテナ >>835;
0839デフォルトの名無しさん
2013/03/31(日) 12:14:13.27ジジイどもの片割れがあぶり出てきたねえ
>>838
卒倒寸前だねえ、お体をお大事にしてくださいね、この杖でも使って
0840デフォルトの名無しさん
2013/03/31(日) 14:00:47.670841デフォルトの名無しさん
2013/03/31(日) 15:42:26.230842デフォルトの名無しさん
2013/03/31(日) 17:04:25.43エディタに単語翻訳プラグインが必須になりそう
0843デフォルトの名無しさん
2013/03/31(日) 17:10:44.080844デフォルトの名無しさん
2013/03/31(日) 17:16:32.220845デフォルトの名無しさん
2013/03/31(日) 17:25:30.98プライムベンダーが使用する文字を
決めればok。
それが読めない奴は仕様書も読めないので問題なし。
0846デフォルトの名無しさん
2013/03/31(日) 17:46:25.240847デフォルトの名無しさん
2013/03/31(日) 17:53:56.68ISO/IEC 14882:2011で義務付けられてるな
0848デフォルトの名無しさん
2013/03/31(日) 18:13:50.48ってのが>>842だと思うんだけど違うの?
0849デフォルトの名無しさん
2013/03/31(日) 18:20:15.830850デフォルトの名無しさん
2013/03/31(日) 18:36:01.53可読性はある程度改善されるけど
タイピングでめんどくさすぎるからやめた
0851デフォルトの名無しさん
2013/03/31(日) 19:43:24.34むしろ名前考えるときに英語脳使わずに済むので楽だった
0852デフォルトの名無しさん
2013/03/31(日) 20:15:31.360853デフォルトの名無しさん
2013/03/31(日) 20:19:33.93メリットがあると主張する人がいる一方で、
「自分が使ったことなく違和感あるからNG
(ダメな根拠無し)」
と言う理屈は通らないでしょ一般的に。
0854デフォルトの名無しさん
2013/03/31(日) 20:19:38.460855デフォルトの名無しさん
2013/03/31(日) 20:25:50.48これが否定派の論拠
識別子ぐらいでガタガタ言うな
0856デフォルトの名無しさん
2013/03/31(日) 20:35:48.41どっかに有りそうだけど
0857デフォルトの名無しさん
2013/03/31(日) 20:39:10.160858デフォルトの名無しさん
2013/03/31(日) 20:40:12.79以上 異常 とか両方使ってたから困る。
0859デフォルトの名無しさん
2013/03/31(日) 20:41:12.250860デフォルトの名無しさん
2013/03/31(日) 20:42:57.18何で翻訳とかおかしな方向に走るのよ?
多言語カオスなソースじゃなくて、
仕様書と同じ自然言語の用語ぐらい
使わせてってことだよ。
0861デフォルトの名無しさん
2013/03/31(日) 20:58:57.16ボタンひとつで〜ってのがあったから、それに反応したんだ
コーディング規約できっちり縛れるならありだと思ってる
運用しやすいかは良く分からん
0862デフォルトの名無しさん
2013/03/31(日) 21:22:02.190863デフォルトの名無しさん
2013/03/31(日) 21:27:39.25変数名を日本語にしとけ
0864デフォルトの名無しさん
2013/03/31(日) 21:43:33.700865デフォルトの名無しさん
2013/03/31(日) 22:02:56.530866デフォルトの名無しさん
2013/03/31(日) 22:07:05.600867デフォルトの名無しさん
2013/03/31(日) 23:49:35.570868片山博文MZパンク ◆0lBZNi.Q7evd
2013/04/01(月) 13:50:21.53http://www32.ocn.ne.jp/~ons/text/CPP0xFAQ.html.ja
0869デフォルトの名無しさん
2013/04/01(月) 15:58:23.13Presenter:
Jason Merrill
Slides:
http://gcc.gnu.org/wiki/cauldron2012?action=AttachFile&do=get&target=jason.pdf
Video:
part 1: http://youtu.be/-eTrk-52Plk
part 2: http://youtu.be/IdinxdLHpTc
The second revision of the C++ language standard, C++ 2011, was
ratified last year, thirteen years after the first one. In this talk,
I will discuss notable additions to the language since C++98/03.
@GNU Tools Cauldron 2012
0870デフォルトの名無しさん
2013/04/01(月) 22:01:08.46これ、テンプレに加えといて
0871デフォルトの名無しさん
2013/04/01(月) 22:28:00.650872デフォルトの名無しさん
2013/04/01(月) 23:32:01.98参照してる殆どがドラフトじゃないか。
ハゲの書物は昔から「仕様だと信じたら
標準化に入り損ねたハゲの妄想でした」
が多すぎる。
ただハゲは背景とか考え方を説明
しようとする点は評価できる。
0873デフォルトの名無しさん
2013/04/02(火) 01:02:41.69設計者として説明しようとしている点にあるとは思う
そういう本はすごく珍しい
0874デフォルトの名無しさん
2013/04/02(火) 01:58:11.95判りにくいよな。どういう使い方想定してんのか。
まあ、最近はサンプルつけるのが流行ってるみたいだから、この辺も改善されてきてるか。
0875デフォルトの名無しさん
2013/04/02(火) 15:10:29.30あのくらいしっかり説明してるのは珍しいな。
しかも本としてまとまっているのは。
Lisp関係もどういうドキュメントは多いけども。
禿はもともとAT&Tの多社乗り入れ電話交換器に
各社アドオンを組み込む機構の設計をしていた。
だから設計の根拠を説明するのが
長年やりこなしてきた業務の一つだったんだろうな。
調整も巧いと思う。安易に反対したり、
思想対決に持ち込まずに、長文の技術論文を書く。
0876はちみつ餃子 ◆8X2XSCHEME
2013/04/02(火) 15:30:28.28開発環境がどの程度追い付いているかとかも見定めて現実と折り合いを付けてきたってところはすごいと思う。
0877デフォルトの名無しさん
2013/04/02(火) 15:48:26.170878はちみつ餃子 ◆8X2XSCHEME
2013/04/02(火) 16:27:32.17言語そのものの設計だけじゃない色々な点でうまくやったからだということを言ってるのであって、
逆に言えば、言語そのものはグダグダであるという話なんだけど、それって擁護か?
0879デフォルトの名無しさん
2013/04/02(火) 16:33:22.36今はいろんなもの詰め込みすぎてカオス
0880デフォルトの名無しさん
2013/04/02(火) 18:37:20.91C++は人気無いよね
0881デフォルトの名無しさん
2013/04/02(火) 19:18:37.35そもそもC++は誰にでも扱える様なものじゃない
0882デフォルトの名無しさん
2013/04/02(火) 19:31:16.670883デフォルトの名無しさん
2013/04/02(火) 19:32:19.250884デフォルトの名無しさん
2013/04/02(火) 19:34:04.77それはPure Cだろ
C++はカオスもう整形しすぎて崩壊してきてる。
実際大規模プログラミングはPure C で局所的にアセンブラ感覚で
息を止めて慎重にコーディングして速度を稼ぎながら
外枠はC#でいい
Parallel.Foreachで簡単にマルチコアの恩恵を受けられるようになった今
全部C#でほぼ問題なし
>>507
>エンコーダも作れるだろ。1分エンコードするのに数日かかるかもしれんが。
アホかおまえは。
一体どんなコード書いてるんだ。実際 Pure Cと比較しても1.5倍程度で収まる。
0885デフォルトの名無しさん
2013/04/02(火) 19:38:20.01>それは本当に速度が要求されるプログラム組んだ事無いだけだろ
本当に速度が要求される部分でC++てアホかおまえは。
そういう場面は最低コンパイル後のアセンブリコードがほぼ見えるCで書くか、
直接アセンブラで書くわ。
0886デフォルトの名無しさん
2013/04/02(火) 19:39:13.24技術者の鑑だな。
0887デフォルトの名無しさん
2013/04/02(火) 19:43:44.930888デフォルトの名無しさん
2013/04/02(火) 20:10:15.07なんか物足りない
0889デフォルトの名無しさん
2013/04/02(火) 20:24:29.460890デフォルトの名無しさん
2013/04/02(火) 22:04:41.34昔Mindとかあった。
まぁあれはForth系だけど。
0891デフォルトの名無しさん
2013/04/02(火) 22:07:49.030892デフォルトの名無しさん
2013/04/02(火) 22:38:52.13もうC++11が出たよ
0893デフォルトの名無しさん
2013/04/02(火) 22:57:40.292003はマイナー変更だから、
実質15年もかかった>>892には無理
0894デフォルトの名無しさん
2013/04/02(火) 23:21:22.05ひまわりもアイシテ
って今はなでしこか...
0895デフォルトの名無しさん
2013/04/03(水) 00:02:43.410896デフォルトの名無しさん
2013/04/03(水) 00:12:23.0715年前はまだ生まれてないし
0897デフォルトの名無しさん
2013/04/03(水) 00:29:32.260898デフォルトの名無しさん
2013/04/03(水) 00:49:40.040899デフォルトの名無しさん
2013/04/03(水) 07:30:21.930900デフォルトの名無しさん
2013/04/03(水) 07:43:59.51普通にCで書くより、普通にC++で書いた方が
速いコードにはなりやすいよね。
0901デフォルトの名無しさん
2013/04/03(水) 07:50:44.01"普通にアセンブラで書くより、Cで普通に書いた方が
速いコードになりやすいよね。"
おまえのようなアホが書かない限り、C++で書くより
継承なんてもんがないCで書いた方が速いんだよッスカタン
0902デフォルトの名無しさん
2013/04/03(水) 07:53:29.90C++でテンプレート使うより保守性も高いのであった...
0903デフォルトの名無しさん
2013/04/03(水) 07:56:09.540904デフォルトの名無しさん
2013/04/03(水) 08:11:02.330905デフォルトの名無しさん
2013/04/03(水) 08:14:54.81速いとか遅いとか言い始める奴はどっちも馬鹿。
0906デフォルトの名無しさん
2013/04/03(水) 08:18:53.110907デフォルトの名無しさん
2013/04/03(水) 08:23:50.110908デフォルトの名無しさん
2013/04/03(水) 10:48:47.38uyとQが現れてからこの双頭のキチガイによって質が低下している
0909デフォルトの名無しさん
2013/04/03(水) 12:39:27.59何を言ってるんだか
0910デフォルトの名無しさん
2013/04/03(水) 12:52:26.52相手する方が質の低下を加速してあげてる件。
0911デフォルトの名無しさん
2013/04/03(水) 13:06:00.48C++のコードはiostreamを使っただけで肥大するし、コンテナを使ったら
もうカチャカチャ
それに仮想関数の呼び出しはコードを追い掛けるだけでは一体どこに
ジャンプするか予想しにくく、トレースするしかない
0912デフォルトの名無しさん
2013/04/03(水) 13:11:36.03あくまでも人のせいにする気か
この二人を消すだけで十分
0913デフォルトの名無しさん
2013/04/03(水) 13:12:08.41ライブラリの話を言語の違いと混同されても。。。
それに、仮想関数の呼び出しが予想しにくいって?仮想関数の呼び出しメカニズム
(というか仮想関数テーブルのセットアップメカニズム)本当に理解してるか?
0914デフォルトの名無しさん
2013/04/03(水) 13:18:44.290915デフォルトの名無しさん
2013/04/03(水) 13:43:48.89お前エスパーか?どの仮想関数が呼ばれるかは、ジャンプする場所に来てみないと
分からない
その時にメモリから呼び出すかレジスタの値でオフセットでジャンプテーブルを呼び出すかは
別として、call [rbx] とか書かれててみ
rbxの値が事前に予測出来るとでも?
0916デフォルトの名無しさん
2013/04/03(水) 13:53:13.66istream、ostream、ifstream、ofstream、istringstream、ostringstream全部継承だ
つまり内部では仮想関数が使われている
混同ではない
0917デフォルトの名無しさん
2013/04/03(水) 14:06:59.15virtual void print() const {
std::cout << "A" << std::endl;
}
virtual ~A() {}
};
struct B : public A {
void print() const {
std::cout << "B" << std::endl;
}
};
int main()
{
boost::ptr_vector<A> vap;
for (int i = 0; i < 100; i++)
vap.push_back((((std::rand() >> 1) % 2) & 1) ? new A : new B);
std::for_each(std::begin(vap), std::end(vap), [&](A& ar) { ar.print(); });
}
たとえばこんな簡単なプログラムでも、事前にAが呼び出されるのかBが呼び出されるのか
簡単に予測出来るか?
ptr_vectorの中身を見るというのは無しで
その気になればコンテナに入れずに呼び出し時にrand()で振り分けるからな
0918デフォルトの名無しさん
2013/04/03(水) 14:10:43.710919デフォルトの名無しさん
2013/04/03(水) 14:16:42.380920デフォルトの名無しさん
2013/04/03(水) 14:19:43.33やれやれ
0921デフォルトの名無しさん
2013/04/03(水) 14:30:44.74>つまり内部では仮想関数が使われている
晒しage
0922デフォルトの名無しさん
2013/04/03(水) 14:40:07.29アホ発見
>>921
無知は罪
0923デフォルトの名無しさん
2013/04/03(水) 14:47:33.71はやく仮想関数の呼び出しを簡単に予想する作業に戻ってくれませんかね
0924デフォルトの名無しさん
2013/04/03(水) 14:48:27.960925デフォルトの名無しさん
2013/04/03(水) 15:21:55.350926デフォルトの名無しさん
2013/04/03(水) 15:55:19.86int main()
{
std::iostream* ip;
std::string str;
std::stringstream os(str);
os << "abc" << std::endl;
std::cout << os.str().c_str();
ip = &os; // なぜ通る?
}
0927デフォルトの名無しさん
2013/04/03(水) 16:27:32.210928デフォルトの名無しさん
2013/04/03(水) 16:46:10.44分かりやすいですねww
0929デフォルトの名無しさん
2013/04/03(水) 16:57:11.68{
std::iostream* ip;
std::string str;
std::stringstream os(str);
os << "abc" << std::endl;
std::cout << str;
ip = &os; // なぜ通る?
}
0930デフォルトの名無しさん
2013/04/03(水) 17:19:21.020931デフォルトの名無しさん
2013/04/03(水) 17:34:24.840932デフォルトの名無しさん
2013/04/03(水) 17:44:29.40遅くなるし、どういう動きになるか分かり辛い。
0933デフォルトの名無しさん
2013/04/03(水) 17:48:20.090934デフォルトの名無しさん
2013/04/03(水) 17:49:05.63自分はC++11とか、それ以降の規格や新機能について議論するスレだと
勝手に思っていたのですが、そういったことは明記されていないですね。
11なんかはスレ番とか思ってる人もいるんではないでしょうか?
あらためて、スレの方向性とか考えてテンプレ考えてみてもいいのでは?
ただ、ネタがないので暇つぶしに相手してあげることをとめたりはしません(2chですし)
0935デフォルトの名無しさん
2013/04/03(水) 17:54:16.860936デフォルトの名無しさん
2013/04/03(水) 18:54:06.460937デフォルトの名無しさん
2013/04/03(水) 19:20:23.870938デフォルトの名無しさん
2013/04/03(水) 19:24:31.820939デフォルトの名無しさん
2013/04/03(水) 19:38:39.240940デフォルトの名無しさん
2013/04/03(水) 19:45:23.990941デフォルトの名無しさん
2013/04/03(水) 19:55:27.57つーかcall [rbx]とかは分岐予測して投機実行しないの?
最近のプロセッサは分からん…
0942デフォルトの名無しさん
2013/04/03(水) 20:05:44.740943デフォルトの名無しさん
2013/04/03(水) 20:17:40.990944デフォルトの名無しさん
2013/04/03(水) 20:50:15.26クイックソートの例を。
C = 10375ms (Visual C++ 2012)
struct x { int v1; };
int x_comp(void const *lhs, void const *rhs) { return ((struct x const *)lhs)->v1 - ((struct x const *)rhs)->v1; }
qsort(pa, N, sizeof(struct x), x_comp); // Nは1億
C++ = 7730ms (Visual C++ 2012)
struct x { int v1; };
struct x_less { bool operator()(x const &lhs, x const &rhs) { return lhs.v1 - rhs.v1 < 0; } };
std::sort(pa, pa + N, x_less());
v1はstd::srand(1234)で発生させた乱数
0945デフォルトの名無しさん
2013/04/03(水) 20:55:39.440946デフォルトの名無しさん
2013/04/03(水) 21:21:09.92関数ポインタ経由だと、それだけで、それはそれは遅くなるに決まってるでしょう、インラインで展開される場合にくらべると。
0947デフォルトの名無しさん
2013/04/03(水) 21:24:54.910948デフォルトの名無しさん
2013/04/03(水) 21:26:19.50同じアルゴリズムじゃないと「テンプレートが速い」ことを示す例として不適切だと思うんだが
そのへん検証したの?
0949デフォルトの名無しさん
2013/04/03(水) 22:00:35.06テンプレは強力にインライン展開されるんだから、
この手の単純な処理はcより速くて当たり前。
0950デフォルトの名無しさん
2013/04/03(水) 22:01:53.350951デフォルトの名無しさん
2013/04/03(水) 22:06:33.130952デフォルトの名無しさん
2013/04/03(水) 22:24:59.77スレ違いな上に、話が想像を絶するくらい下らないのに。
0953デフォルトの名無しさん
2013/04/03(水) 22:27:53.50で、ゴリゴリ最適化すれば速くなるかもしれないけどそれはC++でも一緒。
そうなると選択肢を狭める意味が見いだせない。
0954デフォルトの名無しさん
2013/04/03(水) 22:32:55.02普通クロックは3GHz程度(0.3ナノ秒)しか無いんだが
関数callが0.1ナノ秒なんて
すごいアーキテクチャーですねw
0955デフォルトの名無しさん
2013/04/03(水) 22:32:57.990956デフォルトの名無しさん
2013/04/03(水) 23:14:20.600957デフォルトの名無しさん
2013/04/03(水) 23:23:57.40恨んで欲しいのか?
0958デフォルトの名無しさん
2013/04/03(水) 23:28:09.30concept liteの話とかしろよしてください
0959デフォルトの名無しさん
2013/04/03(水) 23:33:31.14自尊心が傷ついたようで
0960デフォルトの名無しさん
2013/04/03(水) 23:43:40.430961デフォルトの名無しさん
2013/04/03(水) 23:48:42.400962デフォルトの名無しさん
2013/04/03(水) 23:52:54.29仮想関数なら常に間接コールになると勘違いしてる
0963デフォルトの名無しさん
2013/04/03(水) 23:55:53.81それはお前だけだと思う
0964デフォルトの名無しさん
2013/04/03(水) 23:59:14.37ストリームをポインタで切り替えて使った事もないのか
0965デフォルトの名無しさん
2013/04/04(木) 00:09:28.60自己愛性パーソナリティ障害の人が住み着いてるようですねえ
0966デフォルトの名無しさん
2013/04/04(木) 00:17:32.550967デフォルトの名無しさん
2013/04/04(木) 06:34:50.22固定にしたい人は「継承してもvirtual付けない」。
さすがに>>911もわかってるだろ。
で、iostreamが前者の設計になっていて
>>911のデバッグ作業に時間がかかって
>>911のお気に召さなかった。
好き嫌いは人それぞれだか問題ない。
0968デフォルトの名無しさん
2013/04/04(木) 06:51:04.16話が想像を絶するくらい下らない。
0969デフォルトの名無しさん
2013/04/04(木) 07:15:05.21これでok
0970デフォルトの名無しさん
2013/04/04(木) 09:39:58.33妄想乙
お前がそういう目に遭っているから他人もそうだとしか見えないんだろうな
頭おかしいよはっきり言うと
0971デフォルトの名無しさん
2013/04/04(木) 10:00:34.250972デフォルトの名無しさん
2013/04/04(木) 10:01:24.600973デフォルトの名無しさん
2013/04/04(木) 10:22:16.26精神科に行った方がいいぞ
0974デフォルトの名無しさん
2013/04/04(木) 10:28:22.970975デフォルトの名無しさん
2013/04/04(木) 11:54:03.79thisを引数にとる関数を用意して
ポリモーフィズムを実装し、
その関数ポインターをメンバーに持てば
コンパイラが裏でやる謎の処理に
惑わされずに自分でキッチリ制御できる。
0976デフォルトの名無しさん
2013/04/04(木) 12:06:20.450977デフォルトの名無しさん
2013/04/04(木) 12:24:48.910978デフォルトの名無しさん
2013/04/04(木) 12:27:03.01そんなのはC#でやればいい。
だいたい継承なんて生産性向上のための仕組みでしかない
アセンブラの代わりはCでいい。側はC#
C++はもう居場所がない。
ちなみに組み込みとかC++より未だにCが圧倒的に多いし。
そもそもC++じゃ生産性が上がらないんで全面リニューアルしたのがC#ともいえる
javaやらJ++やら裁判沙汰の経緯を蒸し返すなよ >>all
0979デフォルトの名無しさん
2013/04/04(木) 12:28:56.740980デフォルトの名無しさん
2013/04/04(木) 15:29:46.87http://itpro.nikkeibp.co.jp/article/Watcher/20130331/467401/
0981デフォルトの名無しさん
2013/04/04(木) 16:14:28.74>>980のリンク先書いてる奴が超絶低能だというだけで
C++固有のことではない非同期処理をここに貼っても釣れないだろ
こんなのが本書いてる状況はアレだと思うが
0982デフォルトの名無しさん
2013/04/04(木) 16:34:32.380983デフォルトの名無しさん
2013/04/04(木) 17:44:16.70今更何寝ぼけてる?って記事だな。
C++は未だに粒度の小さいプログラムの並列化に四苦八苦してるからな
0984デフォルトの名無しさん
2013/04/04(木) 17:44:39.350985デフォルトの名無しさん
2013/04/04(木) 17:46:48.87C++/CXでは…
0986デフォルトの名無しさん
2013/04/04(木) 17:48:17.65>C++でWindowsストア アプリを作る場合、非同期メソッドを順次実行させるのは面倒だ。
>Visual Basic(以下VB)とC#では、Async(VBの場合、C#ではasync)と
>Await(VBの場合、C#ではawait)という二つのキーワードを導入したことで、C++よりは簡単に記述できる。
一応認めてるんだな。
実際未だに満足な並列プログラムを書きにくい時点でC++の存在価値は地に落ちた
0987デフォルトの名無しさん
2013/04/04(木) 17:53:25.95どちらかというとMSのAPIが糞ってだけで
それも、並列プログラムが書きにくいというのではなく
並列じゃない処理が書きにくいという意味不明さ
0988デフォルトの名無しさん
2013/04/04(木) 17:55:45.01>ユーザーインタフェースについては、C++よりもVBやC#で書く方が生産性が高いだろう。一方で、
>記者が今回の経験でC++を使うことの意義を再認識したのも事実だ。
こういうアホっているんだな。
ソフトウェアでそら無理して時間をむだにすりゃなんとかつじつま合わせできるだろ。
数値計算もMathematicaでできるが、
そこは無理せずMatlab使うのがスマートなソリューションであって、
無理して時間かけてもだれも褒めてくれない
適材適所ふさわしいツールを使うのが開発の常識だよ無能ライターくん
0989デフォルトの名無しさん
2013/04/04(木) 17:57:54.85ほう.じゃ,タスク内のループ処理で各コアに均等にループを割り当てて処理時間かせぐような処理が
C++で簡単にかけるかね?
0990デフォルトの名無しさん
2013/04/04(木) 18:01:01.690991デフォルトの名無しさん
2013/04/04(木) 18:10:08.82#pragma omp parallel for
でおわりじゃないの?
0992デフォルトの名無しさん
2013/04/04(木) 19:04:32.84かなり大きな処理量じゃないと、オーバーヘッド(スレッド切り替え?)が大きすぎて
ぜんぜん有難味がなかったガッカリした。
0993デフォルトの名無しさん
2013/04/04(木) 19:10:23.490994デフォルトの名無しさん
2013/04/04(木) 19:13:02.24何でスレッドの切り替えってこんなに時間かかるの??
0995デフォルトの名無しさん
2013/04/04(木) 19:18:53.200996デフォルトの名無しさん
2013/04/04(木) 19:21:03.59TLBフラッシュがネック
0997994
2013/04/04(木) 19:25:54.15調べてみた。
.NetFrameworkなんだね。
生C++が好きだから使わないかな・・・。
でも、スレッドより軽くて並列処理ってすごいね。
>>996
なんと!
そんなところがネックになっていたとは・・・!!
もう並列処理はGPUにやらせます!
0998デフォルトの名無しさん
2013/04/04(木) 19:27:52.69軽い処理はGPUじゃもっとヤバイだろ。
1000デフォルトの名無しさん
2013/04/04(木) 19:42:43.33俺は無理だった
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。