1 名前:デフォルトの名無しさん mailto:sage [2015/05/10(日) 01:08:05.30 ID:mDK/R5EU.net] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part116 peace.2ch.net/test/read.cgi/tech/1424782918/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.95【環境依存OK】 peace.2ch.net/test/read.cgi/tech/1423872914/ 次期規格C++1zはこちら C++14/C++1z 20 peace.2ch.net/test/read.cgi/tech/1410382924/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/
604 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:06:24.20 ID:k0Gw61eH.net] >>593 たとえば int getlength(char* str); こんなのにconstつけてなになる? 長さを取得する関数ってことは誰が見ても分かるし、 呼び出すほうも、関数を作るほうもstrの内容を変更しないことはあたりまえ
605 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:17:28.34 ID:8uauNRnw.net] あたりまえで全部解決すればバグなんて出ないよ^^
606 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:19:41.73 ID:YnY7GEM9.net] >>597 いや、const付けろよ そのケースで付けないで良い理由なんてないから
607 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:20:15.27 ID:g/VxZAez.net] >>597 それだと const char * の長さが測れなくなる
608 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:20:45.69 ID:Qd0dXrIr.net] int main ( int argc, char * *argv ) {} 「付けるべき」「付けなきゃ駄目」と珍妙な主張する人たちは メイン関数のargvをどう思ってるわけ? 付けたらバグが減るという幻想は自分の妄想の中だけにしてね
609 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:24:26.63 ID:YnY7GEM9.net] どうしようもないアホだな
610 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/21(日) 02:24:58.84 ID:szDYpocA.net] 当たり前や常識が通用しないコンピューティングだってある。 番兵を知らないかね。文字検索のために書き換えることもある。 constを使うルールは信頼性に影響する。
611 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:34:54.98 ID:Qd0dXrIr.net] >文字検索のために書き換えることもある へー、じゃあどうしてC++のstrchr(char const *, int) は返り値がchar const *なのかね 思いつきで言い訳するのは良くないぜ まあ言い返せなくなると >どうしようもないアホだな とファビョるだけの朝鮮人たちには難しかったかな
612 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:35:46.42 ID:qbGsUBw5.net] やっぱり、なんかみんな勘違いしてると思うよ?(´・ω・`) これこれだから付けなきゃいけないとか、こうだから付けなくていい そういう議論は無意味なんだよ?(´・ω・`) >>595 でも言ったけど > constが付いた型はconstが付いていない型とは「違う型」なんだから そういう型に「なるかならないか」だけなんだよ?(´・ω・`)
613 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/21(日) 02:37:14.74 ID:szDYpocA.net] 覚えておけ、constを適切に使っていないソースはゴミ箱行きだ。
614 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:37:42.08 ID:Qd0dXrIr.net] ↑ まさにファビョった朝鮮人!!
615 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:41:53.19 ID:YnY7GEM9.net] >>604 ファビヨって意味不明の朝鮮人認定してるのはお前という池沼
616 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/21(日) 02:43:17.53 ID:szDYpocA.net] こいつ番兵を知らないのか
617 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:47:44.87 ID:YnY7GEM9.net] 「メイン関数のargvをどう思ってるわけ? 」w 「じゃあどうしてC++のstrchr(char const *, int)は返り値がchar const *なのかね 」w
618 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:51:53.95 ID:Qd0dXrIr.net] >>606 >constを適切に使っていないソースはゴミ箱行きだ ああ、君のプログラムのmain関数のことだねw >>610 とうとう内容で言い返すことができなくなって 「w」を付けただけのオウム返しレスになっちゃったか 哀れ
619 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:54:35.69 ID:YnY7GEM9.net] >>611 内容?どこまで笑わせる気だよ池沼 お前と議論するような内容なんて無いよ ただただお前がバカなだけ バカすぎて自覚できないだろうけど
620 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/21(日) 02:55:10.96 ID:szDYpocA.net] argvは書き換え可能。
621 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/21(日) 02:57:12.96 ID:szDYpocA.net] そんなにC++が嫌いならJava使いなさい。 JavaからC++へ普通に変換できますよ。
622 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 02:59:40.34 ID:g/VxZAez.net] サックリと柔軟に捉えられないヤツはもう少し高級なの使っとけ
623 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 03:07:20.90 ID:fO5JAwrS.net] 究極的にはconstもprivateも設計思想を明確にするためのものだからなあ 自分は100%設計思想を把握していて忘れることもないし うっかりコードを描き違えることもない、そういう自信があるなら constなしpublicでいいんじゃなかろうか 俺はしょっちゅう忘れるしうっかりコードも間違えるから使うけど
624 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 03:23:51.57 ID:YnY7GEM9.net] ちなみにunix系でargvを書き換えるとpsの出力が変わる これを利用して引数が丸見えになるのを避けるための対策を行うのは割と一般的な手法 プログラム名(argv[0])も変えられる
625 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 03:26:29.86 ID:V01ss4k7.net] アホですか? argvをどんな値にしてもそんなことは起こらねーよ。
626 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 03:37:21.95 ID:Qd0dXrIr.net] char * p = "" ; //const char[1]でchar *を初期化 こんな文法が許されてしまう言語なのに constに妙な思想を夢見てソースをconstだらけにするのは マジ勘弁ですよ
627 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 03:40:59.28 ID:wi8ruPuE.net] p[0] = 'a'なんてしたら落ちるからconst付けてんだよ そんなことも分からないのか
628 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 03:47:47.46 ID:YnY7GEM9.net] >>618 そりゃargv=なんとか ってしても変わんねーよw 渡されたアドレスの内容を書き換えるんだよ もちろん書き換えサイズはオーバーしないようにね やってみ
629 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 03:51:03.94 ID:k0Gw61eH.net] >>600 オーバーロード、キャスト いくらでもやりようはあるよ 勉強しろ
630 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 03:55:42.41 ID:VBnOEKb6.net] >>622 はわざわざ int getlength(char* str); と
631 名前:int getlength(const char* str); 両方作るのかwwwwwwwwwwww それとも getlength(const_cast<char*>(str)); ってすんのwwwwwwwwwwwwwww int getlength(const char* str); 一つ作れば十分なのにバカなんだなwwwwwwwwwwwww [] [ここ壊れてます]
632 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 04:08:35.70 ID:fO5JAwrS.net] 非const派はそもそもconst char* 型を使わないということだろう まあそれはともかく、もっと抽象的なクラスAで int getlength(A& a) ってあったら、これは長さを返すついでになにか 内部状態も変更するのかな、と推測してしまう int getlength(const A& a) ならAクラスから推測される長さを返す関数なんだと理解できる
633 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 04:55:53.89 ID:k0Gw61eH.net] getlengthの中で A& aaa = const_cast<A>(a); とすればおまえさんの推測はなんの意味も無いわけだが・・・
634 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 04:57:03.71 ID:k0Gw61eH.net] &がぬけた
635 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 05:13:55.03 ID:pgtV211P.net] そう思ってしまう、連想するってことだろ。 実装は知らされないことが多いし。
636 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 06:29:16.54 ID:QGPUzNZz.net] const_castは頑なにconst不要論を掲げる ID:k0Gw61eH みたいなやつの為に存在するのでそいつらが一掃されたら不要だし使わない お前みたいなのがいるせいでconst_castがあるってことをまず自覚しろ
637 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 06:38:32.39 ID:k0Gw61eH.net] >>627 そんなライブラリよく使えるな・・・ constがどうこう言うより、よっぽど危険だろ 勝手に上司に死ね、アフォ、カスってメールを送信するような 実装かもしれんし
638 名前:デフォルトの名無しさん [2015/06/21(日) 07:38:59.09 ID:YrgsgPjW.net] #include <iostream> using namespace std; auto f(int b,...){return b;}; int main() { cout<<f(1,2,3,4)<<endl; return 0; } ...は再帰も出来ないし使いどころがわからないのですが いったい何の役に立つのですか?
639 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 08:14:09.13 ID:nUm+UHVV.net] レスの消費に役立ってます
640 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 08:18:47.57 ID:QrPate9Z.net] >>625 あんたの世界では、文字列の長さを知りたくてgetlengthを使うときは getlengthの実装を見て、書き換えてないことを確認してからconst_castして渡すか、 わざわざコピーを取ってから渡すか、 どっちかしかなさそうだな。
641 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 08:23:02.09 ID:TOFaYzkd.net] このスレ、本当に不可解な伸び方するよな
642 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 08:36:53.52 ID:fO5JAwrS.net] >>625 それをいったら >>597 はそれどころじゃないなw
643 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 09:15:27.34 ID:2Lp/obQP.net] const_castは複雑な初期化が必要なconstメンバー をコンストラクタ内で初期化するのに必要。 constを使っていないライブラリ関数を呼び出すのに必要。
644 名前: ◆QZaw55cn4c mailto:sage [2015/06/21(日) 09:17:31.61 ID:1IBkKjPW.net] ここまできても char const * const p = "abc"; がない件について
645 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 09:19:44.77 ID:9rSSXz+5.net] そりゃコンパイルエラーだからな
646 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 09:21:31.30 ID:9rSSXz+5.net] おっと目が節穴だった const信者の書きそうな糞コードだな constexpr char const * const p = "abc"; の方が長くて好みだろ
647 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 09:51:22.98 ID:V01ss4k7.net] >>621 ドヤ顔で説明した↓は引っ込めるのか? > ちなみにunix系でargvを書き換えるとpsの出力が変わる
648 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 09:52:07.51 ID:/vdMr5S0.net] 組み込み用途だとグローバル変数の割当先をきちんと管理したいからconstは欲しいconst有理 いま単に int g_foo = 1000; // (A) と書いたとしたら、ROMに値1000のための領域が1ワード取られて、さらにRAMにも変数g_foo用に1ワード取られて、 さらにブートストラップコードに値1000をg_fooに書き込む(初期化)処理が発生する。これが const foo = 1000; // (B) なんなら値1000のための領域がROMに取られるだけで済む (尤も、ROMアクセスはRAMアクセスより一般に遅いので、敢えて(A)の書き方にすることもあるがある程度リッチな環境限定 しかしROMに割り当たっているオブジェクトにconstはがしなどやられる可能性を考えると結局はコード見なきゃイカンので、 C++の穴があるconst仕様は糞
649 名前:デフォルトの名無しさん [2015/06/21(日) 09:55:35.20 ID:KiamKvSu.net] const付けると最適化されやすくなるってホントですか
650 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 09:56:05.44 ID:/vdMr5S0.net] >>639 ようわからんが有り得ない話じゃないんじゃ… argvはポインタの配列なので、同じ配列をpsが参照するのだとしたら、配列内容の書き換えはpsの挙動に影響する
651 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:00:41.87 ID:/vdMr5S0.net] >>641 const固有の最適化が出来る、 PC相対でデータを参照できるインストラクションセットでなおかつコードをROMに置く場合、constを付けたらPC相対アクセス1命令になる そうでなければ一般に遠くはなれたRAMまでデータを参照に行くコード (最悪、当該変数のアドレスをROMかRAMからレジスタに読み込んで、当該レジスタを使ってリードアクセスの2命令ぐらいになる上に、 レジスタを使う以上値の退避が必要となり、pushやpopまで発生するかも試練、
652 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:05:57.71 ID:XfDjA2Ye.net] ならconst/register/volatileは共に処理系のヒントのためのキーワードで
653 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:12:42.48 ID:V01ss4k7.net] >>642 > ちなみにunix系でargvを書き換えるとpsの出力が変わる argvを書き換えるという事は argv = hoge; に他ならないが、どのOSの、どのバージョンがそんな挙動を示すんだ?
654 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:18:11.32 ID:/vdMr5S0.net] >>645 漏れは「配列内容の書き換え」ときちんと断ったで?
655 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:29:35.52 ID:V01ss4k7.net] >>646 argvをどうやって書き換えると、配列内容が書き換わるのかね? ありえない話じゃないと言っているんだから、そういうテクニックがあるんだろうな。 で、どうやって書き換えるんだ?
656 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:37:28.53 ID:XFnAya/C.net] 文盲のフリしてconst否定派のイメージダウンを図る肯定派の攻撃とみた
657 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:40:11.48 ID:V01ss4k7.net] ついでに言っておくが、linuxや古いunixでのプロセスタイトルの変更は argvでもargv[0]の書き換えではなく、argv[0]の指している先(内容)を書き換えている。 それをargvの書き換えだけで変更できるんだったら、スゲー大発見だよ。
658 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:49:31.35 ID:YnY7GEM9.net] >>639 、>>645 constポインタの話をしてたんだからポインタが指す先を書き換える話に決まってるだろ 例えばこうやるんだよ argv[0][0] = 'B'; argv[0][1] = 'A'; argv[0][2] = 'K'; argv[0][3] = 'A';
659 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:53:49.07 ID:YnY7GEM9.net] >>649 文脈読めないバカ
660 名前:デフォルトの名無しさん [2015/06/21(日) 10:56:19.10 ID:CUX5ZuNU.net] >>641 実体にconstつけると即値になったりする ポインタや参照のconstは逆に最適化を妨げたりもする bool func(const int& a, int* b) { int c{a}; func(b); return c == a; }
661 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 11:58:48.84 ID:/vdMr5S0.net] >>652 ようわからんがint c{a}って何でしたっけ…; それはともかく、func(b)にaの実体を書き換える副作用が無い、とコンパイラが判断できる状況なら >>652 の例ではfunc()内のcもaも普通に即値に落ちるのでは… (cが事実上const扱いで即値に落ちるのはデータフロー解析の助けを借りてそうなるで最終的にfunc()はtrueを返す関数になる で、同じことはaにconstが付いていなくても言えるんじゃ…
662 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 12:01:25.32 ID:/vdMr5S0.net] スマンaは即値に落ちないorz しかしfunc()が定数trueを返す関数にまで最適化されることは(func(b)呼び出しの副作用の無さをコンパイラが見切れば)有り得る
663 名前:デフォルトの名無しさん [2015/06/21(日) 12:09:14.03 ID:V01ss4k7.net] >>651 文脈読めない方が悪いと責任転嫁する、三菱のSIer
664 名前:のようなバカ。 まだ、 > ちなみにunix系でargvを書き換えるとpsの出力が変わる こんなアホな主張を続けるのか? [] [ここ壊れてます]
665 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 12:22:33.00 ID:YnY7GEM9.net] >>655 はいはい「unix系ではargvを書き換えるとpsの出力が変わるOSがある」に訂正しますよ でもあれは >「付けるべき」「付けなきゃ駄目」と珍妙な主張する人たちは >メイン関数のargvをどう思ってるわけ? に関して言ったことで、そこは論点じゃない 揚げ足取りもいい加減にしとけよ
666 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 12:36:06.25 ID:k0Gw61eH.net] いまどきunixって・・・ おっさんはしね
667 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 12:40:57.01 ID:YnY7GEM9.net] 文脈よめないアホがまだ揚げ足取りで粘着してるな そんなんじゃ三菱のSIerさんにまたたしなめられちゃうぞw そんなことよりconst付けるべきところではちゃんとconst付けろよ怠け者
668 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 13:40:39.00 ID:ZULOTU5v.net] こんな記述するための、fooの宣言の仕方をおしえてください std::vector<int> v; foo<int,std::vector>(v); もっというと foo<vの要素からint,vからvector>(v); がしたい
669 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 13:49:29.11 ID:jWPtn3rV.net] >>658 付けることが正しいかのような妄想を他人に吹聴しないでください
670 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 13:57:17.92 ID:fO5JAwrS.net] >>659 template<class V>void foo(const V& v); にして typename V::value_type を使うべきだと思う
671 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:26:09.56 ID:9rSSXz+5.net] >>659 関数テンプレートは部分特殊化出来ないが 型推論から部分的な型を導ける ideone.com/f0ibAT
672 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:34:03.13 ID:vdoq01Zs.net] >>635 初期化のつもりでconst_castって、未定義動作になるよ。
673 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:39:16.26 ID:ZULOTU5v.net] >>662 ありがとうございます。 参考にさせて頂きます。
674 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:39:50.18 ID:j4xtDVxh.net] >>663 規格のどこに書いてある?
675 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:44:04.49 ID:vdoq01Zs.net] >>665 7.1.6 [dcl.type] p4 Except that any class member declared mutable (7.1.1) can be modified, any attempt to modify a const object during its lifetime (3.8) results in undefined behavior.
676 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:57:07.41 ID:6GC1jl0K.net] 弱参照と強参照について、わかりやすい解説サイトなどありましたらご指導お願いします
677 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:59:10.49 ID:ARzVGPaS.net] あるけど指導はしてやらない
678 名前:デフォルトの名無しさん [2015/06/21(日) 15:48:17.40 ID:CUX5ZuNU.net] >>659 #include <vector> template <typename elem, template <typename...> class cont> struct foo { foo(cont<elem>&) { } }; int main() { std::vector<int> v; foo<decltype(v)::value_type, std::vector> w(v); }
679 名前:デフォルトの名無しさん [2015/06/21(日) 17:28:09.41 ID:V01ss4k7.net] >>656 > はいはい「unix系ではargvを書き換えるとpsの出力が変わるOSがある」に訂正しますよ 間違いを認められないゴミクズ。 どのOSのどのバージョンが、argvを書き換えると、psの出力が変わるんだ?
680 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 17:34:53.30 ID:7Y2WUkP1.net] うむ、そんなことができるなら argv を存在しないアドレスに割り当てれば ps ごとアクセスバイオレーションを起こしてストップすることも 考えられるな
681 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 17:38:27.30 ID:7Y2WUkP1.net] システムとしてそれが成り立つなら脆弱さからしてダメすぎる希ガス
682 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 17:43:34.43 ID:RBHwsW1q.net] >>597 >>656 こんな恥ずかしいレスしちゃ奴に構ってたのか…
683 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 17:54:58.69 ID:RBHwsW1q.net] >>654 即値どころかfunc(const int&,int*)の中のfunc(int*)が副作用ないなら 普通に定数返すね この場合、func(const int&,int*)呼び出し元はfuncのコールが消える
684 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 18:02:00.70 ID:gR9DrUit.net] >>672 自分のプロセス空間で自分でバグやらかして死ぬだけでなにがシステムの脆弱性だよ
685 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 18:07:07.42 ID:RBHwsW1q.net] レス番間違えてたごめん、間違ってるのは>>670 な argvは確か仕様上変更可能
686 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 18:15:18.23 ID:RBHwsW1q.net] また間違えた 仕様上ってのはLinuxなどではなくCの仕様上の話 これは例外的に仕様でmutableなのが明確=基本のイディオムとなってる以上、 他人に見せる物には付けるべきではないね
687 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 18:17:20.45 ID:1IBkKjPW.net] そうだ void main() がありえない理屈と同じ
688 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 21:01:37.12 ID:KN4zQeQw.net] void mainがあり得ない理屈は たまたま規格がそうなってたから とくに深い理由は無い
689 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 21:05:58.15 ID:1kI6SICX.net] void main()をしょっちゅう使っています。有るでしょ?
690 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 21:58:31.73 ID:VBNKos8R.net] 誰も知らないようなC++の奇怪な文法を教えてください
691 名前:デフォルトの名無しさん [2015/06/21(日) 22:04:58.42 ID:CUX5ZuNU.net] 奇怪語でもやっとれ
692 名前:デフォルトの名無しさん [2015/06/21(日) 22:17:28.30 ID:V01ss4k7.net] >>676-676 何言ってんだ? このバカは。
693 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 22:36:19.79 ID:/gmt9Vmx.net] ちょっと勢い余りました。 なのでargvの指す先をいじることでpsの結果が変わる話を ISO/IEC 9899:2011でargvが変更可能な話にすり替えちゃいました。てへ☆
694 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 23:59:07.75 ID:PLHnXuw3.net] PS. I hate you.
695 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 00:12:34.01 ID:e4hiyCLD.net] >>555 constexprとconstは全く違うわけでな
696 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 00:20:50.26 ID:owzZAd5i.net] >>681 ::* ->*
697 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 00:22:36.97 ID:DsLO/OM8.net] トライグラフとか使えば奇怪なソースコードができる!書ける! (いやC++では無くなったんだっけ?
698 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 00:43:38.87 ID:rhvfLAPY.net] 何かもの凄いカオスな感じだなー
699 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 02:59:43.06 ID:yyiP4D81.net] NGが捗るな
700 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 03:57:47.08 ID:HGgblcg2.net] >>684 >なのでargvの指す先をいじることでpsの結果が変わる話を >ISO/IEC 9899:2011でargvが変更可能な話にすり替えちゃいました。てへ☆ 別に論点ずれてないよ 元の話でも事実だから
701 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 04:26:44.17 ID:HGgblcg2.net] >>679 調べたが全然たまたまじゃないね ANSI-Cから、mainの返り値はプログラムの終了値として使われるので、int ちなみにconst無しargvのmainの例の下に、argvが変更可能と明記 C++の話題なのでこれ以上は控えるが、ここまで書いてあるのに否定する方がおかしいだろ
702 名前:デフォルトの名無しさん [2015/06/22(月) 05:16:38.92 ID:VgWiq03z.net] std::iterator_traitsのようなtraitsは usingをつかってtypenameを書かないで良いように する方向に向かっているんですか?
703 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 08:32:36.63 ID:y4ye4wgw.net] struct CCC {void ccc(){}}; auto mf = std::mem_fn(&CCC::ccc); このautoを使わない場合 mfはどのような宣言になりますか?
704 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 08:55:08.05 ID:XqKQre6K.net] >>694 std::function<void (CCC&)> mf = std::mem_fn(&CCC::ccc);
705 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 09:15:30.20 ID:y4ye4wgw.net] >>695 ありがとうございます
706 名前:デフォルトの名無しさん [2015/06/22(月) 09:20:33.75 ID:MaxvP/1L.net] >>691 まだ、ごまかそうとしてるのか? ゴミクズ。 お前がほざいてたのは「argvの指す先をいじる」ではなくargvをいじる事だ。 > はいはい「unix系ではargvを書き換えるとpsの出力が変わるOSがある」に訂正しますよ どのOSのどのバージョンだよ。 argvの指す先の指す先を書き換えるとpsの出力が変わるOSは良くあるが。
707 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 09:41:10.37 ID:b3s7gwa+.net] >>694 嘘つきに騙されるな std::mem_fun_t<void, CCC> ちなみにstd::mem_funは次の規格改訂で削除される予定
708 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 10:04:50.18 ID:xy197upQ.net] >>698 はぁ?
709 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 10:36:36.21 ID:LtTdRlZ1.net] プログラミングをかじってる人はケンカっ早い人が多いんですか? 割とマジでこの質問をぶつけたくなる流れだな
710 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 10:39:16.97 ID:QXqLXD7b.net] プログラムは宗教だからな
711 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 17:42:42.61 ID:HGgblcg2.net] >>697 はいはい無知乙 知らなかったなら素直にそう言えばいいだけなのに
712 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 17:48:29.23 ID:HGgblcg2.net] 形勢が悪いからって頑張って重箱の隅つついてごまかして… 詭弁のガイドラインの典型をやってる人って、 それで何が得られると思ってるんだろう
713 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 19:55:05.81 ID:josAaD1D.net] でもネット以外で面と向かった相手を攻撃することは殆ど無いという
714 名前:デフォルトの名無しさん [2015/06/22(月) 20:37:50.10 ID:YfvhQkht.net] >>704 平和な人だね 面と向かって喧々囂々やり合えないことこそ半端ないストレスなんだが もっとも、どんなに白熱してても論客としての一定の礼儀はあってのことだ 潔くない保身だの幼児チックな感情論はもってのほかで
715 名前:デフォルトの名無しさん [2015/06/22(月) 20:48:34.90 ID:MaxvP/1L.net] >>702-703 ウソを突き通して守る安っぽいプライド。 頭の悪い奴の典型だな。
716 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 20:56:07.78 ID:ILh0wq8G.net] c++は間違った方向に進んでいるように思うのは俺だけか?
717 名前:デフォルトの名無しさん [2015/06/22(月) 21:00:10.30 ID:z5fTT0EF.net] ○○なのは俺だけか!? っていう人久しぶりに見た
718 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 21:06:28.63 ID:Rf9RS/lq.net] マチガッテル系ってあったな
719 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 21:17:12.65 ID:HGgblcg2.net] >>706 元のレスの人は言葉足らずで誤解があっただけで嘘ではないよ 主題を無視して欺瞞的な態度を貫いてるのは君だよ いい加減自覚しようね
720 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 21:34:30.21 ID:9wnjfpMf.net] >>707 どういう方面で? enum class とか範囲 for とかは俺としてはようやくだけど、よくぞ入れてくれましたって感じなんだけど
721 名前:デフォルトの名無しさん [2015/06/22(月) 22:08:06.32 ID:+y1xR2Mb.net] >>711 横レスすまそ 糞すぎ=例外関係、typename/templateの前置、const&と&&に分身しちまったテンポラリ
722 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 22:19:32.57 ID:iW451COy.net] 意味不明
723 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 22:43:13.67 ID:6dp2DntE.net] const &&も忘れないでください。 テンポラリを束縛するんだから const &よりconst &&の方が適切。
724 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 22:48:35.56 ID:HGgblcg2.net] >>712 >>714 参照はC++03視点だと汚く見えるかも知れないけど、 実際はmove実装時のconst外しが消え、 rvalue(T&&)一本にして、constも本来の意味に綺麗にしている std::forwardとかのがいかにも妥協的で汚い
725 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 23:00:40.73 ID:9wnjfpMf.net] >>712 全然具体的じゃないんだが... まあ、記法が気持ち悪いと言うのには同意するけど、それは今に始まったことじゃないし
726 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 23:02:22.60 ID:DsLO/OM8.net] エンジニアなんだから C++も直せるでしょ?
727 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 23:47:12.28 ID:tlZZb8mq.net] 具体的に書いたら無知を晒すだけだからな。
728 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 08:21:07.65 ID:Ng+F0VU1.net] template argument deductionがT&&に限って参照に推論されるのがイヤです
729 名前:デフォルトの名無しさん [2015/06/23(火) 08:52:42.83 ID:I0ATeeuQ.net] > 元のレスの人は言葉足らずで誤解があっただけで嘘ではないよ 間違いを訂正できないバカは議論する資格がない。 > 主題を無視して欺瞞的な態度を貫いてるのは君だよ 主題以前の問題だが、 >>610 > 「メイン関数のargvをどう思ってるわけ? 」w と言っておきながら、 mainのargv(の参照先)は書き換える事でpsの出力変える。 => だからmainのargvにconstないのはおk と意味不明のタワゴトほざいてるバカだ。 それを元レス正しいとかいってる、お前もバカ。
730 名前:デフォルトの名無しさん [2015/06/23(火) 08:57:25.00 ID:N7JGN5SL.net] お前は裁判で本当はやったのにやってないと言えば 無罪になるのに、やったと言えるのか?
731 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 09:10:55.81 ID:kcQ8bjDG.net] やってないと言えば無罪になるとか少なくとも日本ではありえんな。 日本の刑事裁判の99.9%が有罪になるなんて有名な話だろ
732 名前:デフォルトの名無しさん [2015/06/23(火) 09:28:34.22 ID:N7JGN5SL.net] 0.01パーセントが無罪になったことがあり得ているのに あり得ないと矛盾したことを言う馬鹿
733 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 10:03:44.14 ID:M//w1eH8.net] >>723 「やっていない」と主張するだけでは無罪に ならないのは、事実でしょう。 無罪になるには、他の客観的な証拠があったから で、否認しつづけても有罪にされた例は、冤罪事件 を見ればあきらかでしょう。 たとえば、「八海事件」「徳島ラジオ商殺し事件」
734 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 10:18:55.03 ID:KLn5qgUW.net] シカトしてたけどあまりにしつこいんで。。。 >>720 意味不明なタワゴトほざいてるのはお前だよバカ ID出てるんだからイチャモンつける前に文脈を確認しろ 「メイン関数のargvをどう思ってるわけ? 」ってアホ発言は俺が言ったんじゃないんだよバカ 「argv書き換え」っていうのがargvが指してる先を書き換えるという 意味だっていうのも同じIDで補足している
735 名前:デフォルトの名無しさん [2015/06/23(火) 10:24:08.59 ID:N7JGN5SL.net] やった証拠が無ければ無罪だろ やってないことの証拠とか悪魔の証明だから どれだけ馬鹿なの
736 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 10:37:39.91 ID:bPOLRPzG.net] 痴漢冤罪なんかやった証拠がないのに女が「やった!」と言う一言だけで有罪確定だぞ 刑事裁判甘く見過ぎだな
737 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 10:41:55.94 ID:kcQ8bjDG.net] >>726 無罪と無実は違うんだよ お前が何を主張したいのか知らんけど起訴されたらやっていないという証拠を求められるのが今の日本の司法。 つーかいい加減すれ違いだから自分でググれ、それか「それでも僕はやってない」って映画でもレンタルして見ろ
738 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 10:50:15.54 ID:rWZbMeiE.net] 朝からアスペvsアスペかよw
739 名前:デフォルトの名無しさん [2015/06/23(火) 11:00:17.64 ID:N7JGN5SL.net] 前提条件として「裁判で本当はやったのにやってないと言えば 無罪になる」という状態が起こることを仮定しているわけだから これが現実にあり得るかあり得ないかはどうでもいい話だろ
740 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 11:01:19.79 ID:9r3RXp4j.net] スレ違いどころか板違いの話題を延々と続けるな、迷惑だ
741 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 12:16:44.03 ID:VUNYVcVn.net] >>720 メインについてどうだと言ったのは俺だが argvの書き換えとargvの指す先の書き換えについて 大変こだわってる>>725 は別人だ
742 名前:デフォルトの名無しさん [2015/06/23(火) 14:31:04.11 ID:EDJkGmJ5.net] メモリの消費についてなんですが 例えば、 1.グローバルで、配列を宣言 2.関数の中で配列を宣言 3.クラスの中で配列を宣言 この三つでメモリの消費はどう違うのでしようか? また、タブーな使い方とかありますか? (メモリをどんどん使用するとか)
743 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 14:36:35.36 ID:Seol6lnP.net] スタックとヒープでggrks
744 名前:デフォルトの名無しさん [2015/06/23(火) 15:13:46.37 ID:RNrYnhXO.net] std::free(new int);
745 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 15:43:25.10 ID:Tkj4kQAi.net] まだconstごときでモメてんのかよw
746 名前:デフォルトの名無しさん [2015/06/23(火) 16:46:06.41 ID:I0ATeeuQ.net] >>725 「メイン関数のargvをどう思ってるわけ? 」を否定しただろ。死ねよ。バカ。 >>610 :デフォルトの名無しさん:2015/06/21(日) 02:47:44.87 ID:YnY7GEM9 > 「メイン関数のargvをどう思ってるわけ? 」w
747 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 18:33:55.12 ID:kS9yst7s.net] >>733 クラスの中で配列がstaticの場合はグローバルと同じですが staticでない場合はそれだけではメモリ確保されません。 その配列を持つクラスの変数をグローバルに書いたときはグローバルに、 関数ローカル書いたときは関数ローカルに確保されます。 struct A {char a[100];}; A a;//グローバルに int main() {A a;} //関数ローカルに
748 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 19:25:35.40 ID:J6BxFv/5.net] >>733 1.グローバルで、配列を宣言 -- 静的記憶 2.関数の中で配列を宣言 -- スタック 3.クラスの中で配列を宣言 × === 他の3つのどれかに振り分けられる 4.配列を動的確保(malloc/free あるいは new/delete) -- ヒープ この中でヒープは罠が多くやや難しいがプログラマなら必ず理解・習得すべし スタックは一番使いやすいけど、関数をぬけた後持ち出せないとか、セキュリティホールにつながるとか罠があるけど、やっぱりいちばん使いやすい グローバル・静的記憶は楽ちんだが子どもに刃物を持たせるようなものなのでなるべく避ける 後はそれぞれの用語でググってくれ
749 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:03:11.65 ID:HRCTZ2uq.net] auto f() { static int 関数の中で配列を宣言[1];//スタックじゃない thread_local int 関数の中で配列を宣言[1];//スタックじゃない new(&関数の中で配列を宣言[0]) int[1];//ヒープじゃない } だいいちヒープって何だよ フリーストアと何か違うの
750 名前:デフォルトの名無しさん [2015/06/23(火) 21:22:46.71 ID:KBBYxELv.net] malloc/free=ヒーパローケーター new/delete=フリーストアローケーター new/deleteは重いので多用する場合は カスタマローケーター以外では使うべきではありません スタックが高速なので特に理由のない限りスタックをつかってください
751 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:31:34.85 ID:qkxeTacg.net] c++は記法が汚いよなあ。ラムダ式とかテンプレートとかが多用されているコードを見ると気持ち悪いと思うのは俺だけか?
752 名前:デフォルトの名無しさん [2015/06/23(火) 21:35:17.11 ID:DnHgPUjX.net] ○○って俺だけ〜?○○って俺だけ〜?
753 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:35:37.96 ID:lAuYvcP9.net] ファンクタとかマクロが多用されてる汚いコードを何とかしようとした結果だろ
754 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:39:26.59 ID:xmziolSE.net] <::><%%>();
755 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:50:54.09 ID:pXD9WDis.net] >>711 言語構文の拡張ではなくライブラリで言語拡張もどきやってるのがなぁ。 for_eachとかにラムダ関数食わせてると、 なんでこんなところにreturnあるねん? とか寝惚けてデバッグしてると混乱する。
756 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:27:32.43 ID:fA8g5cCu.net] CもC++もファンクター多用しまくりな言語です 何を言ってるんですか
757 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:30:30.81 ID:Yra6/pdr.net] >>746 > 言語構文の拡張ではなくライブラリで言語拡張もどきやってるのがなぁ。 意味わからん... 俺にアンカーしてるんだから、enum class とか範囲 for の話だよね?
758 名前:デフォルトの名無しさん [2015/06/23(火) 22:31:15.16 ID:ZYzQRQQT.net] typeid キーワード使うのに#include必要とか気は確かかと
759 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:42:53.22 ID:qkxeTacg.net] 範囲for使っている時に限ってindexが必要になり、int i=0;とi++;を挿入する事になるよな。なのでforは最初から普通にfor(int i=0;って書くのは俺だけか?
760 名前:デフォルトの名無しさん [2015/06/23(火) 22:59:36.96 ID:ZYzQRQQT.net] うん、範囲forとは何たるやを強引に無視するとそうなるな
761 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:04:49.44 ID:VlLWw7EO.net] range-based forのindex付属版はたま〜に欲しくなるな rubyのeach_with_indexみたいなの
762 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:41:16.93 ID:Yra6/pdr.net] >>749 sizeof は演算子なのに結果の型 size_t 使うには include 必要なんだから、何を今さらって感じなんだが
763 名前:デフォルトの名無しさん [2015/06/23(火) 23:54:18.75 ID:ZYzQRQQT.net] >>753 char func() { return sizeof(long long); } これのどこにincludeが必要なのか教えてくれ
764 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 06:30:37.03 ID:JTCZnA99.net] >>754 > 結果の型 size_t 使うには って書いてあるんだが...
765 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 07:13:56.18 ID:TuXeNp5y.net] >>753 もともと問題として挙げられたのは typeidがコード上に出現するだけでもインクルードが必要なことなので size_tとは話が違う。
766 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 09:42:15.65 ID:iKfJXuFB.net] >>755 sizeof()の結果の型ってそもそもsize_tって決まってたっけ? なんにしろ#include要るかいらないかって話なのに size_t使う場合なんて条件限定して反論する意味ないよね
767 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 11:11:40.49 ID:mSDBMbUW.net] 何でバカってこんな下らんことに必死になるんだろう...
768 名前:デフォルトの名無しさん [2015/06/24(水) 11:18:16.20 ID:2tIhDsiK.net] そんなことよりchar8_tビルドインタイプが無いほうがヤバいだろ 8ビットキャラクター以外のマスィーンで UTF8キャラクターを使う場合どうしたらよいのかのう
769 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 11:32:42.92 ID:Y94ZhR9j.net] charでいいじゃん
770 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 13:25:30.70 ID:q/iymKMR.net] 範囲forってひとつのコンテナしか扱えないから使いづらい。 ごく単純なzipWith的なこともできないじゃん。
771 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 13:56:02.64 ID:DVsceA8G.net] そういうときはtransformでいいんじゃないの
772 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 14:29:35.49 ID:hCh+/iKv.net] c++にjavascriptみたいなデータや関数の柔軟性が有れば言う事ないんだがなあ。
773 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 14:31:28.97 ID:ApCDts4W.net] インタプリタと比べるのはちょっと…
774 名前:デフォルトの名無しさん [2015/06/24(水) 14:59:51.82 ID:2tIhDsiK.net] tupleにstd::beginとstd::endを定義すればできる
775 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 15:11:55.77 ID:ZTbRYN2O.net] javaとかいうクソ言語信仰している奴ってなんなの?
776 名前:デフォルトの名無しさん [2015/06/24(水) 15:14:35.47 ID:2tIhDsiK.net] tupleよりtupleを継承したクラスを使ったほうが一つsdt::beginに固定じゃなくなるからいい
777 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 15:20:45.95 ID:hCh+/iKv.net] >>766 javaの話なんて誰もしとらんだろ。 お前が阿呆、そして童貞。
778 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 16:04:48.83 ID:ZTbRYN2O.net] 図星つかれて発狂かよw メンタルよえぇw
779 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 16:36:39.97 ID:hCh+/iKv.net] 767は童貞で確定。
780 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 16:36:51.41 ID:q/iymKMR.net] それ実際やるかつったらやらないわけで、それを称して不便と呼ぶのだと思う。
781 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 16:45:56.11 ID:UxxhGQg+.net] そもそもzipWithって何?
782 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 16:49:54.82 ID:DVsceA8G.net] ggrks
783 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 16:50:02.26 ID:ZTbRYN2O.net] javaのように高級言語のクソ仕様にすればできないこともない だが、その仕様改訂したとしてお前ら4流マどもにはその改悪の行方がどれほどの悪影響を与えるか理解できんだろうな
784 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 16:54:01.44 ID:UxxhGQg+.net] ぐぐったら二つのコンテナを同時になんかするやつだった いまいち有用な場面が思い浮かばなかった
785 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:28:05.07 ID:tF/MfqgU.net] C++の創造主ってBjarne Stroustrupらしいけど、結局彼は具体的にはなにをつくったの? MSやGNUがコンパイラ作ってるんでしょ
786 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:35:55.69 ID:1wf20En+.net] 言語の仕様
787 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:52:14.93 ID:5lQ1lw+W.net] Cfront
788 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:58:30.65 ID:ayX+k7op.net] >>759 C++11はcharがutf-8が入るサイズと規定されとるでよ
789 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 21:14:08.06 ID:awOBQFTx.net] forでtupple回せるじゃん zipWithとforに何の関係があるんだろ…
790 名前:デフォルトの名無しさん [2015/06/24(水) 21:36:55.35 ID:NRCLHLbF.net] >>755 おい751 752のリターン式が返却値の型に、 どのように変換されるのか言ってみな
791 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 21:55:50.66 ID:5/GXLIV8.net] おい、779 「リターン式」←ここ笑うところか?
792 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 21:57:01.52 ID:33RnX7v/.net] 5.3.3p6 『The result of sizeof and sizeof... is a constant of type std::size_t』
793 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 21:58:52.68 ID:33RnX7v/.net] 間違えて送信した。 >>757 向けのレス。 >>753 size_tを使うのにcstddefのインクルードは要らないはず
794 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:00:09.78 ID:mSDBMbUW.net] >>781 >>758 しかも的はずれだし
795 名前:デフォルトの名無しさん [2015/06/24(水) 22:30:45.79 ID:NRCLHLbF.net] >>782 うん、バカ笑いするところだよ
796 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 23:15:09.57 ID:3dw221TT.net] リターン式ごときで笑ってたらSTLとかヘッダーファイルとかインスタンスなんか目も当てられない
797 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 23:45:45.92 ID:q/iymKMR.net] 複数のコンテナからtupleにするのに必要になるものって?
798 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 23:47:39.75 ID:x/BKJXwU.net] >>787 ヘッダーファイルって、なんて言うのが正しいの?
799 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 00:41:04.13 ID:8PqzseGz.net] コミュ障ばっかだなここ
800 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 00:52:42.12 ID:t/w7u9he.net] 殊更当たり前のことをレスしないでいただけますか?
801 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 05:19:34.80 ID:UTudwcBW.net] おたがいの疑問に対しておたがいにまともに返す気がないから、 ドッジボールどころかもはや撃ちあいだな 殺意に満ちあふれている
802 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 05:51:41.31 ID:QrIpaMYv.net] お互いってどれとどれが対応してんのかすらわからんぞこれ
803 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 08:00:50.08 ID:nSqMrdVl.net] 範囲じゃないforだったら複数のコンテナーを扱えるのだろうか
804 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 08:03:29.76 ID:NYl9rCV7.net] 同じコンテナならいけるんじゃね
805 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:27:15.66 ID:b0ArPb9h.net] >>783 sizeofの返値の型はsize_t だが、なにもインクルードせずにsizeofを使ったところで問題ない。 なぜならsize_tは基本型のtypedefにすぎないから、 現実はその処理系でsize_tとなる整数型を返しているにすぎない。 typeidは演算子であるにもかかわらず、基本型でないものを返すというのが根本的な違い
806 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 22:21:42.76 ID:OEV+WERq.net] >size_tは基本型のtypedefにすぎない んなこたーない ISO/IEC 14882:2014 18.2p6
807 名前:デフォルトの名無しさん [2015/06/25(木) 22:31:02.71 ID:r4iSpWQ0.net] >>797 mpz_classかも知れないってことか?
808 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 22:32:56.80 ID:R1q5YO+m.net] >>797 > The type size_t is an implementation-defined unsigned integer type > that is large enough to contain the size in bytes of any object. unsigned integer type は基本型 (fundamental type, 3.9.1) なわけで、 「size_tは基本型のtypedef」で合ってると思うんだけど、どういうこと?
809 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:05:28.54 ID:eQSMT7Q1.net] template<typename T> void test(T a) { wchar_t* aa = a; //Tがwchar_t* の場合(A) wchar_t* aa = a.c_str();//Tがwstring の場合(B) //↓うだうだと長い } (A)と(B)をコンパイル時に決定したいのですが、可能でしょうか?
810 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:17:03.84 ID:0CRANchn.net] >>800 void test(wstring a); void test(wchar_t * a); [] [ここ壊れてます]
812 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:28:08.80 ID:0CRANchn.net] 間違えた ideone.com/DQRngy
813 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:31:18.66 ID:R1q5YO+m.net] >>802 > inline wchar_t const *aaa(std::wstring s) > { > return s.c_str(); > } これ、ダングリングポインタになるよ。 >800 の解決方法としては >801 で合ってると思うんで、何を間違えたと言ってるのかわからない。
814 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:33:05.46 ID:CZ++MN8y.net] void udauda(const wchar_t* a) { } template<typename T> void test(T a) { udauda(a); } template<> void test(wstring a) { udauda(a.c_str()); }
815 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:52:57.85 ID:E9C2fDqc.net] inline wchar_t const * aaa(wchar_t const *) inline wchar_t const * aaa(std::wstring & )
816 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:57:55.69 ID:HjStf6rX.net] const いらないおばさんが帰ってくるから危険
817 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 00:42:06.45 ID:JggZpWgl.net] staticいらない幼女
818 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 01:47:42.06 ID:IOTh97/P.net] >>807 無名名前空間を使えば本当に要らないのでは… いや個人的にはやらんけど
819 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 03:25:07.87 ID:wqX3fguj.net] クラス変数系の意図は代替できないから抜けないはず
820 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 21:48:04.57 ID:1Dyee7pB.net] staticないとシングルトンめんどくさすぎ と言ってみる。 staticいらないならnewもいらないよな。 あんま使わんし。
821 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 22:02:09.40 ID:bI5K71Dy.net] モノステートでいいじゃん
822 名前:デフォルトの名無しさん [2015/06/27(土) 08:48:25.08 ID:rTvPy598.net] だよな newいらねー mallocとplacementでいい
823 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 09:11:43.36 ID:KUf9kyhl.net] calloc「…」 realloc「…」 free「…」
824 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 12:15:24.80 ID:Uau5C/Wv.net] C++って良く見たら後置インクリメントなんだけど これって何か問題にならないの?
825 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 12:19:42.75 ID:VhkuZCtv.net] 同じ式内でもう一度Cが出てこない限り大丈夫
826 名前:デフォルトの名無しさん [2015/06/27(土) 12:19:46.48 ID:34ShL78H.net] イテレータのi++と++iって最適化されて同じにならないの?
827 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 12:32:23.57 ID:SX1nKwfp.net] 内部で何やってるか分からないのにどうやって最適化するのよ
828 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 12:41:16.82 ID:VhkuZCtv.net] テンプレートなんだから分かるでしょ
829 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 13:05:27.01 ID:uSdVLyN2.net] C++でnew使わないならCで十分だな
830 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 13:33:48.30 ID:HRd5Hrhz.net] C++不要論たまに話題なるな
831 名前:デフォルトの名無しさん [2015/06/27(土) 14:29:09.07 ID:rTvPy598.net] >>819 newが使いたいってだけで、わざわざC++なんか使う変態か?
832 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 14:35:44.09 ID:H2Sf9zMB.net] なぜnewが必要でmalloc()じゃ駄目なのか分かってないんじゃね?
833 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 14:42:41.61 ID:m86EUix7.net] newにできて、mallocにできないことって、何?
834 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 14:43:44.44 ID:Me0rIRNZ.net] えっ
835 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 14:51:56.28 ID:+YDV+Gxn.net] 初心者歓迎の方の>>272 あたり見てみればいいよ。
836 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 14:55:07.96 ID:VhkuZCtv.net] new使わないといちいちキャストする必要あって面倒だろ コンストラクタ呼ばないといけないし
837 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 15:04:57.43 ID:f57Tnoer.net] new[]なんてデフォルトコンストラクタしか呼べないし最悪。 malloc+placement newでどんな型にも対応できて最強。
838 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 15:09:06.62 ID:wVo6Igii.net] >>827 std::vector使え >>826 new使わないとは言ったがmake_unique make_sharedを使わないとは言ってない とか?
839 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 15:33:33.58 ID:f57Tnoer.net] >>828 定数メンバ変数を持つクラスをvectorで使うと コンパイルエラーを引き起こす糞な処理系がまだ現役で使われてるので論外。
840 名前:デフォルトの名無しさん [2015/06/27(土) 15:51:23.71 ID:5By7
] [ここ壊れてます]
841 名前:g+rr.net mailto: デフォルトのnewを使うなということでしょ newであらかじめフリーストアを割り当てておいて newでそこのどこかにオブジェクトを作る役割だけをさせろと言うことだろう [] [ここ壊れてます]
842 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 15:53:02.39 ID:wVo6Igii.net] >>829 定数メンバー変数なんてめったに使わないだろ。それだけのためにmallocとか他人の目に入らない所であればどうぞご自由にご苦労様です。
843 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 16:22:33.04 ID:YU4kaX8K.net] >>829 その糞コンパイラ何よ? そんなしょうもないコンパイラ使ってる限りくだらない迂回コード書きまくらなきゃなるだろうねそりゃ
844 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 16:34:47.20 ID:wVo6Igii.net] メンバー変数にconst付けたらコピー(moveも)出来なくなるからvectorに直接突っ込めなくなるのは普通だよ 正常なコピー(move)演算子も書けないだろうしね
845 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 16:59:03.41 ID:e2zMBxYg.net] ttp://ideone.com/KTSP2Z そんなわけないだろ
846 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 17:16:03.83 ID:wVo6Igii.net] 入れるだけならcopy or moveがあれば11から出来たんだったな。 でもerase使えないしsortとか各種algorithmも使えなくなるから普通はしないと思う
847 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 17:38:41.65 ID:uSdVLyN2.net] このスレにはデフォルトのなんたらかんたらが嫌いな人が少なからずおる そういう人なら他の何を犠牲にしてでも使わないくらい平気でするだろう
848 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 18:06:21.84 ID:wVo6Igii.net] >>835 copy or move”コンストラクタ”が抜けてた一番大事な所
849 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 19:16:39.28 ID:tGfycaEq.net] virtualも要らないな
850 名前:デフォルトの名無しさん [2015/06/27(土) 19:33:08.02 ID:RP+B0MK9.net] C width Classesにvirtualを入れることに禿も懐疑的だったらしいね
851 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 19:38:41.04 ID:tGfycaEq.net] width はもっと要らない子
852 名前:デフォルトの名無しさん [2015/06/27(土) 19:40:50.12 ID:RP+B0MK9.net] すまん、脳も誤変換するんだ
853 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 21:07:40.13 ID:K06hVkJE.net] 最近javascriptやっているんで、 もうc++には戻りたくないわ。 javascriptは何でもかんでも代入できるし、nullやundefinedな変数があっても 気にせず実行出来るし楽チンでいいわ。 c++もそう成れば良いのになあ。
854 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 21:21:22.45 ID:e2zMBxYg.net] インタプリタと比べられてもなぁ
855 名前:デフォルトの名無しさん [2015/06/27(土) 21:47:02.42 ID:RP+B0MK9.net] マシン寄りの面倒くさいところを任せておけず、 気にするとき使うのがC/C++ ハングリー精神を知らずに育ちぶっ壊れた金銭感覚してるボンボンが ときどき闖入してひとしきり暴れて去って行く職人の工房に喩えやすい そのとき狙われやすいのがnew
856 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 22:58:06.17 ID:CJnS6alp.net] javascript特有のコールバックお化けはなるべく遠慮したいけどな 何が嫌ってあのスタイル他の言語にほとんど応用効かん Nodeのソースコードなんて吐き気する
857 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 23:16:57.69 ID:tGfycaEq.net] MFCのCString::Format位速い, std::stringをformatできるライブラリありませんか? boostは遅くて使い物になりません。 多分コピーするからだとおもいます std::string s = boost::format( ~~
858 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 23:18:03.65 ID:e2zMBxYg.net] C++11ならコピーしません
859 名前:デフォルトの名無しさん [2015/06/27(土) 23:22:57.63 ID:RP+B0MK9.net] >>846 つstd::stringstream 845も言っているようにC++11以後はムーブセマンティクスがあるので テンポラリからのコピーはしなくなった そこがネックと思っているおまえの頭が使い物になっているかチェックしろ
860 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 23:35:10.71 ID:tGfycaEq.net] >>847 コピーしているかどうかなんか
861 名前:竭閧ナはありません 遅いことが問題であって、速いライブラリありませんか?という質問です みなまで言わせないでください。 よく「一から十まで教えないとできないの?」とか言われるでしょ [] [ここ壊れてます]
862 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 23:38:37.66 ID:nyq9mOqM.net] キチガイだった
863 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 23:47:31.42 ID:eNvk9NzQ.net] 言っておくけど>>849 はいつもの基地害コテハン Qの炎上学習法だぞ
864 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 23:49:38.29 ID:tGfycaEq.net] 本買ってね
865 名前:デフォルトの名無しさん [2015/06/27(土) 23:49:42.05 ID:RP+B0MK9.net] >>849 > たぶんコピーするからだとおもいます こう言ったのはおまえだぞ マイナス十をほざいたのはおまえだぞ 死ねとはっきり言われないとできないのか?
866 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 00:05:13.89 ID:z/1IIDkq.net] cppformatってやつのステマでしょ知ってる知ってる
867 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 02:01:03.78 ID:G1fmyMIp.net] ideone.com/hvPva4
868 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 02:09:25.84 ID:h2M+2bNV.net] ヌル文字のバッファが足りないな
869 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 02:36:16.89 ID:j0ev9jQe.net] std::string s = boost::format() がC++11からコピーしなくなったって? 猫に小判、無知にC++11コンパイラ
870 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 03:05:38.03 ID:z/1IIDkq.net] ぱっと見boost::format()でstringが帰ってきてそれをmoveするように見えるけど違うの?
871 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 03:12:02.99 ID:rotd9Dcd.net] >>858 03時代からsに直接構築されるから関係ないって話でしょ
872 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 03:54:05.56 ID:z/1IIDkq.net] 言われてみればRVO前からありますねすまんかった
873 名前:デフォルトの名無しさん [2015/06/28(日) 10:32:33.24 ID:4/kUOOOQ.net] >>857 struct String { String(const char*); private: String(String const&); }; String a = ""; おまえVCに騙されてるだろw
874 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 11:23:20.22 ID:5FazHgOK.net] >>861 おまえコンパイラに騙されてるだろ melpon.org/wandbox/permlink/cSaQJHHfoIxihtzG
875 名前:デフォルトの名無しさん [2015/06/28(日) 11:26:18.73 ID:4/kUOOOQ.net] >>862 ブーメラン投げてんじゃねえよw unko(unko const &) = delete; //{ std::printf("copy\n"); }
876 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 12:01:49.15 ID:7lniKfSs.net] C++11以降は言語仕様上コピーされることが無くなったという話と C++98時代から実質的にコピーされないことに変わりないという話を、 「コピーしない」という同じ日本語表現で言い合っているのがアスペだな。
877 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 12:29:56.26 ID:XsTSGkpW.net] コピーの定義の解釈違いだろアスペ >861のエラーはcopy elisionを行った際の 規格12.2p1の要求によるもので コピーは発生していないと解釈するのべき 『all the semantic restrictions shall be respected』
878 名前:デフォルトの名無しさん [2015/06/28(日) 13:29:24.35 ID:4/kUOOOQ.net] >>865 解釈するのべきじゃねえだろ String format(int a) { String c("c"), d("d"); if(a) return c; else return d; }
879 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 14:13:38.78 ID:xQ1QrflY.net] アスペはコードの断片を貼るだけで会話ができません
880 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 14:25:42.27 ID:4PA/u/+9.net] 規格がどうとうか、うるさい奴に限って仕事できねーよなw 駄先輩でC++について詳しいのか知らんが、やたらと規格がどうとか言ってるが 全く装置動かせないw そんなことどうでもいいから、さっさと運転しろよって言いたい
881 名前:デフォルトの名無しさん [2015/06/28(日) 14:33:07.62 ID:4/kUOOOQ.net] >>867 コード書けないカナーよりマシだ
882 名前:デフォルトの名無しさん [2015/06/28(日) 16:00:31.98 ID:4/kUOOOQ.net] >>868 そういえばその昔 規格がどうとか言わず(言えず)動きゃいい主義な先輩が エッジトリガーな信号をレベルセンスして後でブーイング浴びてたっけな
883 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 16:03:05.50 ID:4PA/u/+9.net] エッジトリガーな信号とレベルとかってC++の規格とどう関係があるのだ?
884 名前:デフォルトの名無しさん [2015/06/28(日) 16:09:42.09 ID:4/kUOOOQ.net] 別にC++に限ったことじゃない 規格の話だよ 規格の話に持ち込んだのは866だ 不適切だと思うなら866に言え
885 名前:デフォルトの名無しさん [2015/06/28(日) 16:10:45.49 ID:4/kUOOOQ.net] 言うと思ってたんだ 窮したやつが揚げ足とれそうなところって限られてるからな
886 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 16:11:47.94 ID:8y2XT/gF.net] >>871 要求されたことと違うことを自分の思いこみで作ってしまう残念な人は規格を軽視して適当なプログラムを作りがち と言いたいのだろう。 マ板でやれと言いたい。
887 名前:デフォルトの名無しさん [2015/06/28(日) 16:12:15.00 ID:vjkUYG/A.net] どっちもあり得る話だからなんの意味も感じられない
888 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 16:20:40.06 ID:4PA/u/+9.net] >>872 文句は>>865 に言え
889 名前:デフォルトの名無しさん [2015/06/28(日) 16:32:05.63 ID:4/kUOOOQ.net] >>876 863はC++の話をしてるんだが おまえには違って見えたのか?
890 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 16:33:10.20 ID:4PA/u/+9.net] C++規格なんてどうでもいい話をしてるよねw
891 名前:デフォルトの名無しさん [2015/06/28(日) 17:10:46.59 ID:4/kUOOOQ.net] >>878 おまえにはどうでもいいのはわかった 俺らには、それこそがどうでもいい
892 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 17:19:14.31 ID:4PA/u/+9.net] イミフ
893 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 17:24:49.47 ID:KlxpTm2d.net] で結局、超絶速いstring戻りのフォーマットライブラリは無いの?
894 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 17:30:09.46 ID:NqiNrH0U.net] cppformat boostなんて比じゃ無い位速い。 昔は正規表現使いたくて、使ってたけど最近は、boostなんて遅い、キモい、メンドいだからな。
895 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 17:35:16.56 ID:g8B7t7Kj.net] もうsprintfでいいよ
896 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 18:07:17.59 ID:SolI9ZCS.net] 2chは言語勉強中の奴が多いからな。どうしても規格とかコメントの書き方とかそういうのに目がいく
897 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 18:21:45.25 ID:y0HQ23je.net] そんな連中って小さなサンプルプログラムしか書いたことないから、仕事では全く使えない奴が多い
898 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 18:26:08.96 ID:5+tdFZes.net] そんな連中て 勉強中ならそら使えんだろ
899 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 18:31:51.17 ID:o5WpSoWe.net] ここで息巻いてるボクたちはネット越しに初心者を攻撃して 僅かな優越感を得ることでしか 自己を肯定することができないのです そっとしておいてください
900 名前:俺はしつこいw [2015/06/28(日) 20:29:24.58 ID:4/kUOOOQ.net] 855 :デフォルトの名無しさん:2015/06/28(日) 02:36:16.89 ID:j0ev9jQe std::string s = boost::format() がC++11からコピーしなくなったって? 猫に小判、無知にC++11コンパイラ
901 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 20:38:13.09 ID:mzdNGLuj.net] コピーコンストラクタの呼び出し回数削減は、 かなり昔から規格で許されているが 実装は処理系依存だとオモタ ソースコードとオブジェクトコードでアルゴリズムを等価に保つ、というのを現実的な処理量でやろうとすると 外部リンケージな関数(どんな副作用があるかわからない)の呼び出しをコンパイラが勝手に削減するとかアリエネー話だったんだけど C++はある意味アルゴリズムを等価に保つ仕事を放棄して言語仕様業界に水爆級の一石を投じた
902 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 21:27:46.44 ID:8y2XT/gF.net] 言語仕様が手抜きなだけでしょ。 アルゴリズムが非決定的なのは初期化の挙動(規格の3.6.2) とか他にもあるし。
903 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:01:30.17 ID:xC0l4Cw2.net] テンプレートのパーシャルオーダリングを勉強してるんだけど どうしてこんなにムズいんだぜ C++で最も難解な文法にオイラの中で認定されました
904 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:12:12.04 ID:5CpBW/i3.net] ほらあれだ ムズい文法のほうが 俺スゲーできるじゃん
905 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:34:37.21 ID:lVop4u0
] [ここ壊れてます]
906 名前:1.net mailto: パトローナムexplicit! [] [ここ壊れてます]
907 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:36:05.66 ID:4PA/u/+9.net] そうか?逆じゃね? 大学数学より、灘中の算数がガンガンできるほうが スゲーできるじゃんってならない?
908 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:39:51.32 ID:lVop4u01.net] コピコンというかリファレンスカウンタの上昇じゃなくて?よろしくて?
909 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:41:33.24 ID:SH3agkdR.net] >>894 アレはあくまで 「受験問題」だから解けたら凄いっていう話 研究と勉強をごっちゃにしちゃいかんよ
910 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:50:15.07 ID:lVop4u01.net] stringごときで実体のコピーやるライブラリはクソだな
911 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:52:33.58 ID:lVop4u01.net] で、なんでそれが言語仕様と関係あるんだか馬鹿なんすかw?
912 名前:デフォルトの名無しさん [2015/06/28(日) 22:52:40.93 ID:J9LsISiA.net] コピー命令出したんだからちゃんとコピーして欲しいわ 勝手に内部でいらんことするなよ
913 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 23:00:25.25 ID:/m0G7Kmk.net] >>896 >大学数学 を >研究 と同一視してる時点でアカデミアに縁ないのバレバレだよ高卒ちゃん
914 名前:俺はしつこいw [2015/06/28(日) 23:00:30.05 ID:4/kUOOOQ.net] テンポラリ1つエリミネートされただけで 「変わってしまう」アルゴリズムほど 俺すげーな中二病はちょっと思いつかん
915 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 23:08:32.13 ID:SH3agkdR.net] >>900 そんな文脈の読めない揚げ足取りされても
916 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 23:09:43.49 ID:8y2XT/gF.net] >>899 代用する文法が無いものはどうすんの string s=f();→string&&s=f(); string s="";→string s(""); f( A() )→? auto f(){A a; return a;}→?
917 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 23:26:14.63 ID:PO3P0REA.net] template<class T> struct A {}; template<template <class T> class U> struct B { T b; U u; }; って、なにがマズイのしょうか?
918 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 23:36:52.34 ID:4PA/u/+9.net] なにがしたいのかイミフ
919 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 23:53:36.82 ID:8y2XT/gF.net] >>904 確認せずに適当に答えると template<typename T, template<typename t> class a> struct B { T b; a<T> u; };
920 名前:デフォルトの名無しさん [2015/06/29(月) 08:34:16.30 ID:RBuJiewE.net] >>904 マズイのは U u; 正しくは U<int> u; もしくは U<T> u; としてもよい
921 名前:デフォルトの名無しさん [2015/06/29(月) 08:34:58.20 ID:RBuJiewE.net] あ、わりい U<T> u; はあかんw
922 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 18:27:24.21 ID:XqthOP/Z.net] 流れに便乗して質問なのですが, https://ideone.com/v36RkH template<class, class...> _Type とは,_Typeの型仮引数は第二引数,第三引数で補うから, 型仮引数の情報はいらない(形式のみ必要)ので省略している, _Get_first_parameter<_Type<_First, _Rest...> > は,部分特殊化を表し,_Typeの型は,_Type<F, R...>ではなく テンプレ実引数としてあたえられた_Typeとなる. そしてこの定義は,<_Type<_First, _Rest...> >という形式をとるすべての _Get_first_paremeterに共有される. という解釈であってますか?
923 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 18:35:58.93 ID:XqthOP/Z.net] いや,補うというよりこうじゃないと, 部分特殊化の部分がおかしくなるから, 必要なテンプレ引数情報が引数三つ〜というより,_Type<F, R...>になるから, といった感じなんですかね.
924 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 19:29:07.25 ID:ZS1C/3AC.net] template定義にclassっていう 単語を使うようにした奴は誰だよ。 本来のclassと紛らわしいだろ。
925 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 19:34:54.89 ID:edeVcH9g.net] そこらへんもコンセプト入ればわかりやすくなるだろう
926 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 19:36:55.09 ID:90QiI5GE.net] typenameとかながったらしいからな
927 名前:デフォルトの名無しさん [2015/06/29(月) 20:33:12.27 ID:RBuJiewE.net] >>911 それがな.... 禿...なんだ
928 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 22:47:49.00 ID:jFniY3ju.net] 禿はキーワード増やしたくないという理由で既存のキーワードに幾つも違う意味をねじ込む馬鹿だからな
929 名前:デフォルトの名無しさん [2015/06/29(月) 23:13:20.66 ID:y0FiN7DE.net] ある構造体に==演算子を定義する場合 friendにするべきなのでしょうか? 下記、二つの違いがわかりません。 struct A{ bool operator==(const A& rhs){ return true;} friend bool operator==(const A& lhs,const A& rhs){ return true;} };
930 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 23:29:21.31 ID:mhfYMs/C.net] どっちでもええがな 左辺値が自身の型以外になるならfriendで
931 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 23:32:07.73 ID:ZdHOzAPU.net] Aに(例えばintからの)implicitな変換コンストラクタがある場合、 1 == a みたいなやつ、下のやつならできるけど上のやつはできない
932 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 23:35:26.98 ID:KCa+kJYy.net] 自分自身を友達ってどれだけ寂しい奴やねん 友達にするのは普通、自分以外だ どっちでも自分のプライベートにアクセス出来るから好きにしたらいいけど
933 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 23:47:17.88 ID:mhfYMs/C.net] × 左辺値 ○ 左項 失礼
934 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 23:48:13.12 ID:j/9Vvva7.net] それこそどっちでもええわw
935 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 00:37:31.57 ID:CHefkucA.net] www.cplusplus.com/reference/string/string/operators/ www.cplusplus.com/reference/string/string/operator+/ これ見てどう使えるようになるのか考えたらいい
936 名前:デフォルトの名無しさん [2015/06/30(火) 05:14:46.50 ID:1FGWQDn1.net] >>915 それは禿だけじゃねーべ
937 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 07:34:07.22 ID:Ewdnk5mn.net] 世の中の多くの単語には複数の意味があるが、 それを紛らわしいからこう決めた奴はバカって言ってたら…ね
938 名前:デフォルトの名無しさん [2015/06/30(火) 07:47:20.80 ID:bPuow3t+.net] 友達の友達は友達だから自分自身も友達だろ
939 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 21:03:06.08 ID:oIqAPu05.net] 言語設計者が言語仕様をすべて検討するプログラミング言語と自然言語を比較するなんて 禿信者はどれだけアタマがいかれてるのか
940 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 21:44:50.30 ID:9v+w0WGW.net] 何言ってんだ禿
941 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 23:18:20.26 ID:fdxBm1RE.net] qiitaのコードですが template < template < class, class > class Type > struct something { Type < int, std::allocator < int > > container; }; このintを外部から与えようとすると 下記の方法しかないですか? template < typename T, template < class, class > class Type > struct something { Type < T , std::allocator < T > > container; };
942 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 02:21:38.19 ID:WHdOzeax.net] >qiitaのコードですが まずその某とやらが何なのか 説明してもらおうか
943 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 04:53:05.20 ID:enJxQHpB.net] 下記の方法しかないって、何がしたい場合の話? template < template < typename, typename > class Type, typename T > struct container_type { typedef Type < T , std::allocator < T > > type; }; template < typename Container > struct something { Container container; }; something< container_type<std::vector, int>::type > something_inst; こういう分割とかの話?
944 名前:デフォルトの名無しさん [2015/07/01(水) 10:00:26.37 ID:FNDbafIP.net] >>929 ここ https://qiita.com/
945 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 14:44:34.91 ID:D21eOTfg.net] Qiitaを知らない層がC++スレにいるなんて
946 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 14:49:23.39 ID:nBkj9HIl.net] 具体的な場所じゃね
947 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 14:50:40.76 ID:UI7Zb7Dp.net] qiitaは光るようなスレが少ないじゃん 雑談場みたいで
948 名前:929 [2015/07/01(水) 15:22:56.14 ID:FNDbafIP.net] >>933 そんな気もしたが、荒らし依頼になりたくなかった
949 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:06:23.01 ID:EE30plWk.net] 少なくともこのスレよりはマシだけどなw
950 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:36:43.76 ID:9JpXnge6.net] そんなマイナーなサイトは知りません 万人が知ってると妄想してる低能は出家した方がいい
951 名前:デフォルトの名無しさん [2015/07/01(水) 23:43:40.09 ID:FNDbafIP.net] 耳が遅い、それだけで(ry
952 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 03:34:02.22 ID:0eGuE8Qw.net] ここ半年ぐらいぐぐってるとqiitaがヒットすること増えて来たけど役だったって印象はないなw 文章量が多めのつぶやきって感じでゴミが多い
953 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 09:13:39.80 ID:B+m7sXir.net] for each(auto& a ... としたとき、aの型がconst付けてないのに 定数になってしまうのですがどうしてこういう仕様にしたんですかね。
954 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 09:45:19.80 ID:nGREujsR.net] >>940 あなたがそうなるように書いたからです
955 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 10:02:53.75 ID:Y0nozqak.net] >>940 ならないんだが
956 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 10:03:09.77 ID:Y0nozqak.net] あ、忘れた ideone.com/AP6KGY
957 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 10:38:21.17 ID:c4RHuSvY.net] たぶんこれのことだろ faithandbrave.hateblo.jp/entry/20070807/1186499965 それはそういう仕様だからRange-based forを使うべき
958 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 11:00:26.85 ID:Y0nozqak.net] >>944 こんなの初めて知った std::for_each()もC++03では要素を変更しない操作とされていたけど実際はできてたし、 C++11でははっきりと変更可能と書かれた
959 名前:デフォルトの名無しさん [2015/07/02(木) 21:12:59.01 ID:Gl0sBIHW.net] 嘘も大きすぎると誰も騒がない
960 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 22:47:14.97 ID:6qHZU/AK.net] どの辺が嘘なのか詳しく
961 名前:デフォルトの名無しさん [2015/07/02(木) 23:03:48.89 ID:Gl0sBIHW.net] std::for_each()もC++03では要素を変更しない操作
962 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 23:08:54.32 ID:bYkpTfSh.net] 昔からfor_eachは要素変更できるだろ 要素変更出来ないのは大抵あらかじめソートされたコンテナとかに対してだろ
963 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 23:22:54.12 ID:AiijB2ck.net] >>948 規格票読んでよ ISO/IEC14882:2003 §25.1 Non-modifying sequence operations §25.1.1 For each ISO/IEC14882:2011 §25.2 Non-modifying sequence operations 25.2.4 For each どちらも変更しないアルゴリズムに分類されている 変更できるのは規格では保証されてない でも変更しても未定義の動作とは書いてないので 変更出来るかもしれないし、出来ないかも知れないと取るべき
964 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 23:27:05.67 ID:bYkpTfSh.net] え?そこら辺はconst_iteratorでどうにでもなるんじゃないの?
965 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 23:27:41.27 ID:AiijB2ck.net] ちなみにgccの該当するヘッダを見てみると template<typename _InputIterator, typename _Function> _Function for_each(_InputIterator __first, _InputIterator __last, _Function __f) { // concept requirements __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>) __glibcxx_requires_valid_range(__first, __last); for (; __first != __last; ++__first) __f(*__first); return _GLIBCXX_MOVE(__f); } としか書かれてないから要素のコピーではなく要素そのものをデリファレンスしてるよね 処理系によるとしか言えない
966 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 23:50:57.68 ID:nGREujsR.net] C++03もC++11の規格も持ってないからドラフトから参照するけど Effects: Applies f to the result of dereferencing every iterator in the range [first,last), starting from first and proceeding to last - 1. [ Note: If the type of first satisfies the requirements of a mutable iterator, f may apply nonconstant functions through the dereferenced iterator こんなところ変わってないだろうから03から一緒でしょ
967 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 00:13:07.46 ID:mft8l0hB.net] > 嘘も大きすぎると誰も騒がない (ドヤァ) ってしといてこれって恥ずかしいな。 間違い(だと思うもの)を指摘するときはこんな恥ずかしい事にならないよう謙虚に言うよう他山の石として気を付けるよ
968 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 00:21:13.60 ID:9x47oHYv.net] >>953 その Note が追加されたのが C++11 から。 cplusplus.github.io/LWG/lwg-defects.html#475
969 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 00:39:14.22 ID:P33eFhD6.net] 規格厨 キタ━━━━━━(゚∀゚)━━━━━━ !!
970 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 00:50:17.24 ID:zEu43QHg.net] 規格厨が居ないとコンパイラを作ったりテストできないジャマイカ、
971 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 00:53:38.52 ID:uO8sjm4v.net] コンパイラ作ったりテストしたりしてるの? 俺はしたことない
972 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 00:54:22.74 ID:MBHMxnKO.net] >>956 規格票なしだとただの雑談になっちゃうんだよ
973 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 00:55:23.46 ID:X+jFQ+8B.net] よ〜く考えよ〜 規格は大事だよ〜
974 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 01:40:50.95 ID:UHB4/heP.net] 多くの場面では細かい規格など知らなくても結構問題なくコードは動く しかし、規格を知らないとどうしてそうなってしまうのか分からないバグもある
975 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 02:43:04.80 ID:ZzGaWUcQ.net] ここは企画相談室ではありません
976 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 02:46:20.13 ID:MBHMxnKO.net] >>962 そういう話ではない いい加減な発言をするなって話題になってるんだぜ
977 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 05:58:31.19 ID:ZzGaWUcQ.net] ここは企画相談室ではありません
978 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:03:30.32 ID:qS6PMyIR.net] ここは雑談で荒らす場所ではありません 少しはまともな話をしましょう というかこいつ>>946 だろ 論破された事を根に持って荒らしてんじゃねーっつーの 悔しかったら人に文句を言われない書き込みでもしてみろや とりあえずあぼーんしときますね >>961 その通りだと思う また分からず屋が荒らし始めたんであぼーん推奨 こいつは根に持ってしつこく荒らしそうな予感
979 名前:デフォルトの名無しさん [2015/07/03(金) 10:43:04.60 ID:jiu6umxA.net] >>958 VCのベータテストにも参加したことないのか?
980 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 11:34:36.13 ID:uO8sjm4v.net] >>966 Windowsはβから対応状況見るのに使うがVCはないな ってかVCのβテスト程度が「コンパイラのテスト」なのかよwww
981 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 11:39:52.08 ID:YJdeMD7w.net] >>965 すこしはまともな話をしましょうといいながら荒らしレス アスペルガーにもほどがあるなw
982 名前:デフォルトの名無しさん [2015/07/03(金) 12:02:10.60 ID:jiu6umxA.net] >>967 うん(断言) とくに現行バージョンの規格違反でストレスを感じていたりすると 今度こそ対応したかどうか、けっこう厳格にチェックするしね
983 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 12:05:27.00 ID:MBHMxnKO.net] >>968 悔しいのう悔しいのう
984 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 12:23:40.47 ID:uO8sjm4v.net] >>969 ブラウザーのHTML対応状況しらべるようなもんか。製品版出てからもチェックしないとダメだろうし大変だな・・・
985 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 12:50:47.42 ID:scPdPWSA.net] >>968 今度は「アスペルガー」という言葉の意味も分からずに使ってさらに恥を晒すのか もうやめような?無知にも程があるぞ? あ、無知には程がないのか だから馬鹿にされてどんどん窮地に追い込まれてファビョるしかないわけだ 己の無知さを恥じろ 無知って怖いねえ 限界知らずになるんだから 「アスペルガー」の意味と>>965 の発言を対比させて論じてみ 無理だろうけど
986 名前:デフォルトの名無しさん [2015/07/03(金) 16:08:22.48 ID:jiu6umxA.net] >>971 んで、おかしいの見つけたらきっちりバグ報告もする とにかくエラッタ欲しいからね
987 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 20:22:42.30 ID:tI4EZg1z.net] >>950 規格を読んでよ タイトルが不変を彷彿させるだけで不変だなんて書かれていない。 typedefじゃないものをtypedef名と読んだり Postfix expressionの節を読んだらPostfixじゃない式の説明が書かれてるみたいな引っかけ
988 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 20:28:58.57 ID:tI4EZg1z.net] 03のfor_eachは目次が「Non-modifying sequence operations」なだけで その中身を読めば変更可能と分かるはず
989 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 21:09:08.93 ID:D9WxvNGl.net] >>974 お前もしつこいねえ 「不変アルゴリズムに分類されている」とは書いたけど「不変だ」なんて一言も言ってない ただ規格票に書かれてない以上、C++03の関数オブジェクトで値を変更して反映されなくても 文句は言えないと言ってるんだけど お前理解力全然足りないな これがC++11になって", f may apply nonconstant functions through the dereferenced iterator" とはっきり書かれたので不変アルゴリズムに分類されていようとも必ず変更は反映されると 保証されるようになったわけ
990 名前:デフォルトの名無しさん [2015/07/03(金) 22:59:53.84 ID:jiu6umxA.net] >>975 中身って実装のことか? まあ、あの規格票自体そもそも仕様と実装の線引きがブレまくってて、 そういうところは俺も好かんのだが
991 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 23:10:52.88 ID:ZzGaWUcQ.net] ここは企画相談室ではありません
992 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 23:32:15.59 ID:i5jShfi3.net] >>976 デリファレンスしたものを変更して反映されなかったら それはもはやC++ではない ここはC++のスレだぞ
993 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 23:53:34.75 ID:ZNzd5P28.net] >>975 どこを読んでそんなことを思ったのか書いてみ
994 名前:デフォルトの名無しさん [2015/07/03(金) 23:54:57.51 ID:jiu6umxA.net] 「逆参照は左辺値を生じる」は、あくまでビルトイン演算子の話で それは operator * が純右辺値を返すことを妨げてはおらんだろ
995 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 00:09:05.14 ID:T1HfWWft.net] オリジナルの STL や標準ライブラリへの提案当初は明確に変更操作を禁じており、分類も Non-modifying で間違いなかった。 www.open-std.org/jtc1/sc22/wg21/docs/wp/html/jan95R1/lib-algorithms.html > Requires: > f shall not apply any non-constant function through the dereferenced iterator. C++98 時点では↑の要求は削除されたものの、分類は Non-modifying のままだったので 仕様として変更していいのかダメなのかは不明確になった。実際のところ変更可能となる 実装が広まっていた。それを受けて C++11 では明確に変更操作も可能であることが明記された。 C++98 から C++11 まで、10年以上も不明確だったんだから、どっちが間違いということも無い。 どっちを否定しようとしても無理筋になる。おちつけ。
996 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 00:11:10.81 ID:js16kE+m.net] Noteの記述で言語仕様が規定されたり保証は生まれない 「ソースはNote」とか言ってるアフォは糞して寝ろ
997 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 00:20:05.57 ID:T1HfWWft.net] >>983 それには同意。 >955 の改定は中途半端だったと思う。 変更操作を許すのが意図されているのであれば、デリファレンスのコピーを取ってそれを関数に 渡すような実装はNoteではない本文の規定によって禁止されるべきだろうと思う。
998 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 00:23:18.17 ID:wK443U8X.net] 【事実】提案当初は変更禁止と書かれていた 【事実】規格ではそれが削除された 【事実】規格では逆参照の結果が渡されることになっている 【事実】改訂時に「変更可能」というNoteが追加された
999 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 01:36:30.32 ID:VV3jJEnC.net] >>982 > 不明確だった (なんの前提もなしに)変更可能って言ってる奴は明らかに間違ってるわけだが
1000 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 02:26:14.39 ID:jQVKSFpl.net] 規格票を持ってない奴に限って「ここは企画相談室ではありません」と言うんだなあ それくらい買え
1001 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 06:15:47.45 ID:ftwwXgNP.net] 次スレは?
1002 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 07:34:43.40 ID:MkaTbGB5.net] C++11では変更できる C++11では03から特に仕様の変更無し でもC++03では変更できる保証がありません! ソースは出せません!!
1003 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 07:58:09.78 ID:l29Ffi6J.net] 朝っぱらからうるさいなぁ 俺のタルタルソースかけるぞ
1004 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 08:07:59.43 ID:23HCzMnD.net] for文使って書くのと対して手間じゃなかろうに
1005 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 08:19:36.14 ID:negZyq4J.net] 次すれは企画相談室
1006 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 09:39:08.72 ID:G5g709D9.net] 次スレ peace.2ch.net/test/read.cgi/tech/1435970316/
1007 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 09:43:41.85 ID:NrliYMAO.net] 乙梅
1008 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 12:40:23.19 ID:eanKaweg.net] 規格は初版から4版まで持ってるけど規格票は持ってないな。 信者はISO規格の代わりにJIS規格票買ったの?
1009 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 12:46:41.57 ID:62UPrMy6.net] ISOは英語が読めない低脳のためのものです コンパイラは英語版の規格票を元に作られています というか>>995 はISO買ったのか?普通に本屋に並んではいるけど 規格票は約3万円ですがISOは9000円ほど出せば買えます お徳用だろ? >>995 はまさかISOを買ってないのに言ってるんじゃないだろうね?
1010 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 12:47:27.41 ID:62UPrMy6.net] あ、間違えた ×ISO ○JIS
1011 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 12:54:05.21 ID:8e3bejTi.net] そこ間違えたらダメだろ
1012 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 12:55:23.32 ID:62UPrMy6.net] 土曜だから昼間からビール飲んでんだよ悪いか JISは不要な部分が多すぎてコスパ悪い 安いのはいいけど
1013 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 12:55:43.89 ID:l29Ffi6J.net] お徳用…?
1014 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 14:16:01.08 ID:Gg9PfjwB.net] 費用対効果でいえばFDISが一番お得じゃね?
1015 名前:デフォルトの名無しさん [2015/07/04(土) 14:44:29.72 ID:5GZwA8ys.net] 公文書が高くて買えないということ自体そもそもおかしい
1016 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
1017 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています