- 1 名前:デフォルトの名無しさん [2015/08/31(月) 18:19:04.13 ID:NE3NvROE.net]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part118 peace.2ch.net/test/read.cgi/tech/1435970316/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/tech/1439849418/ 次期規格C++1zはこちら C++14/C++1z 20 peace.2ch.net/test/read.cgi/tech/1410382924/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/
- 820 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 14:43:47.49 ID:zntwOtDH.net]
- std::mapはconst版( operator[](const Key&) const )は無いよ−。
キーがなかったら新しい値を挿入するという動作だから。 ja.cppreference.com/w/cpp/container/map/operator_at findしましょ。
- 821 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 14:48:47.23 ID:VFapxPBu.net]
- そうか、[]の時点で要素増えるからダメか
- 822 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 23:43:18.77 ID:EGogu2NJ.net]
- C++の文法はクソだからな
コンパイラーが手を抜いてプログラマーが不利益を被る良い例だ
- 823 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 00:10:39.56 ID:1Ze1Ogug.net]
- >>806 https://www.google.co.jp/search?q=std+map+at
- 824 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 01:05:09.41 ID:CpsQkQ9O.net]
- C++の仕様がいい加減だからなのか、
regexのマルチライン対応なんかは、VCは対応でGCCは非対応だからな 行頭の^が文字列の頭になると行頭じゃえらい違いだよな
- 825 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 01:23:22.63 ID:EO5+cWSu.net]
- STLに問題があるようだな
- 826 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 01:25:23.49 ID:eWd5i2Y2.net]
- >>812
文法はあまり関係ないけど? 低脳が口挟んでも
- 827 名前:pかくだけだぞ []
- [ここ壊れてます]
- 828 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 11:20:11.67 ID:k9h8FU3j.net]
- むしろ文法があんなだから
コンパイラは手を抜けないとも
- 829 名前:デフォルトの名無しさん [2015/10/06(火) 11:54:27.84 ID:+syJpT4+.net]
- 文法じゃなくて意味が糞なんだよな
- 830 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 12:27:05.15 ID:Zn1/MkM8.net]
- そうそう、mapで思い出したけど
テーブルって実行時に初期化したくないやん ある程度の大きさのmapの初期化を出来るだけ実行時の生成コストを少なくするように記述するにはどうしたらいいのかな? 環境によって違うけど 構造体の配列とかだと、初期化子リスト付けとくと、.dataセクションに即値が書かれてて 初期化時にはそれをコピーしてポインタをセットして準備完了 それと同じようなことをmapでやって見たい c++11だとmapでも初期化子リスト使えるからそれでいけるのかな? 何年か前にg++でコンパイルして.dataセクション見てみたけど当時はmapの即値になってるように見えなかった c++03とかだとどんな手があるんだろう??
- 831 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 12:35:26.69 ID:k9h8FU3j.net]
- そうそう、mapで思い出したけど
テーブルって実行時にメモリ使いたくないやん ある程度の大きさのmapは実行時にメモリのコストが大きいけどどうしたらいいのかな? https://research.preferred.jp/2011/07/stllike-containers/
- 832 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 16:00:02.92 ID:wWQ1shVW.net]
- 初期化はだって実行時じゃないか?
- 833 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 20:34:00.60 ID:hYLbQ3+q.net]
- どうしてもdataセクションにそのままアクセスしたいのであればキーと要素を持つクラスをキーでソート済みの配列で書いてstd::mapのconstメンバ関数と同じものを持つラッパークラス書くとかかな
- 834 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 21:14:23.94 ID:mXRqVUnf.net]
- >>821
要するに map を実行時に構築するんじゃなくてコンパイル時に構築しといて実行時はメモリーコピーだけにならんもんか? っつーことでしょ たまに俺もそう思うことがある
- 835 名前:デフォルトの名無しさん [2015/10/06(火) 21:27:26.34 ID:jUDOLtzl.net]
- 確かにねー
そんな気することよくあるよな constexprなコンストラクタでどこまでできるのかと
- 836 名前:デフォルトの名無しさん [2015/10/06(火) 21:34:08.29 ID:MCB0h3nq.net]
- シリアライズかデータベースつかえ
- 837 名前:デフォルトの名無しさん [2015/10/06(火) 21:37:47.97 ID:MCB0h3nq.net]
- >>820の意図するところと、>>823は別で>>820は省メモリにしたいって話だろ。
- 838 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 21:54:53.32 ID:2Pt1OMoQ.net]
- 配列に入れて線形探索
要素数が小さいうちは線形探索はもともと他より致命的に悪いわけではないし 今日日のCPUならキャッシュと分岐予測とOOOの華麗な連携プレーを目の当たりにできる
- 839 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 22:43:09.92 ID:8+tr+OYB.net]
- これは遅くなりそうだからってがんばってマップ作ったら
線形探索ゴリ押しの方が速かったことならある
- 840 名前:デフォルトの名無しさん [2015/10/06(火) 22:47:58.27 ID:Cu8Zkmdv.net]
- 二分検索じゃだめなの
- 841 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 23:07:19.25 ID:hYLbQ3+q.net]
- std::sortもstd::lower_bound もあるんだからバイナリサーチぐらいしようぜと
- 842 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 05:07:06.28 ID:vlTfjNXN.net]
- >>826
>>823 は >>819 の > ある程度の大きさのmapの初期化を出来るだけ実行時の生成コストを少なくするように記述するにはどうしたらいいのかな? の話だよ データベースとか頓珍漢過ぎ
- 843 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 07:13:23.42 ID:JsRvQDZJ.net]
- コードの工夫で初期化コストを改善するのではなく
データベースでの永続保存という別手法での改善方法もあり得ることを示すことが それほどトンチンカンとも思えないが
- 844 名前:デフォルトの名無しさん [2015/10/07(水) 08:23:24.99 ID:PbTUGDDG.net]
- mapはエントリーを追加できるんだからドンダケ待ってもそうはならないと思。
- 845 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 08:34:53.72 ID:q7nyuwNL.net]
- >>832
なにを改善したいかも理解してないアホ w
- 846 名前:デフォルトの名無しさん [2015/10/07(水) 08:52:16.49 ID:d/PBWwg/.net]
- static_mapみたいな名前になるんだろか。
- 847 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 09:44:01.58 ID:0iwSPjqO.net]
- Rubyでは、Hashの要素数が増えていくと、再編成される
バケット数は、2の累乗付近の素数を使う。 つまり、倍々に増やしていく 8+3, 16+3, 32+5, 64+3, 128+3, 256+27, 512+9... 1つのバケットには、平均して5つの要素を入れる(衝突)。 11*5=55, 19*5=95, 37*5=185... つまり要素数が、56, 96, 186...個になると、 バケット数を増やして、再編成する 普段、1万個の要素を追加するのに、8msかかるが、 再編成するタイミングでは、20msかかる。 要素数が増えていけば、もっとかかるだろう
- 848 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 11:02:09.32 ID:8pl0pVx/.net]
- C++のスレでRubyとかアホなの?
環境も書かずに2msとかアホなの? C++なら1万個追加で1msだ
- 849 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 11:19:07.99 ID:vH7WjwMJ.net]
- 昔、某オンラインゲームの支援ツール作って、プロセスメモリ上にあるVC++2008実装のstd::mapの
テーブルを直接アクセスするコードを書いたのを思い出した
- 850 名前:デフォルトの名無しさん [2015/10/07(水) 11:20:45.74 ID:Qd1lXfpw.net]
- そういった成功体験は捨てたほうがいい
- 851 名前:836 mailto:sage [2015/10/07(水) 11:50:30.95 ID:0iwSPjqO.net]
- 「Rubyのしくみ」という本に書いてあるのだが、
RubyのHashは、Peter Moore が考案したもの。 C++でも、彼のロジックを使っているのなら、同じかなと思って mapの要素数が増えていくと、 バケット数を増やして、再編成されるので、 その際、全要素が移動するから、どうしても遅くなる だから、メモリ的には損だが、 最初から大きめのバケット数を確保しておけばよい
- 852 名前:デフォルトの名無しさん [2015/10/07(水) 13:03:07.75 ID:gQOBln3k.net]
- ん、std::hashって算法まで規定されてたっけ?
17.6.3.4を見る限りそうではなさそうだが
- 853 名前:デフォルトの名無しさん [2015/10/07(水) 14:19:20.92 ID:4iZc7XH3.net]
- struct hoge{};
const hoge h; をコンパイルすると error: uninitialized const 'h' と出ます。何故ですか constを外すとコンパイルできます。GCC4.4です。
- 854 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 15:58:16.91 ID:2UUkd3/F.net]
- 定数は値が書き換えられないわけで
最初の時点で値を代入しなかった場合、「お前なんのために定数宣言したの?」って突っ込まれてる
- 855 名前:デフォルトの名無しさん [2015/10/07(水) 16:15:42.33 ID:4iZc7XH3.net]
- vcではエラーにならないのは何故ですか
どっちが正しいですか
- 856 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 16:35:55.12 ID:vH7WjwMJ.net]
- どっちかというとGCCのほうが余計なお節介?
- 857 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 16:40:45.70 ID:jyxNZJK8.net]
- そうそう、馬鹿が作ったプログラムがちゃんと動かなくてもコンパイラの責任じゃないしね…
- 858 名前:デフォルトの名無しさん [2015/10/07(水) 16:42:23.02 ID:Qd1lXfpw.net]
- ideone.com/Sr2PO1
エラーにならないけれど
- 859 名前:デフォルトの名無しさん [2015/10/07(水) 17:24:17.24 ID:gQOBln3k.net]
- 842は警告ではなくエラーなのはなぜかと聞きたいんだろ
- 860 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 17:42:19.19 ID:tt9P1ak1.net]
- どっちが正しいも糞もないのでは
- 861 名前:デフォルトの名無しさん [2015/10/07(水) 19:09:00.13 ID:qAlHmwsj.net]
- gccはいつも糞だから、これもgccが悪いんじゃねーの。
- 862 名前:デフォルトの名無しさん [2015/10/07(水) 19:11:12.75 ID:Qd1lXfpw.net]
- gccではエラーにならないと言っているだろ
- 863 名前:デフォルトの名無しさん [2015/10/07(水) 20:31:15.75 ID:lwnukUe8.net]
- なるから言ってるんですアホなんですか
- 864 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 21:27:09.31 ID:BAz1ThzD.net]
- >>849
少なくともお前が糞なことは確か
- 865 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 21:40:43.83 ID:3DMfLJBU.net]
- 標準C++ではエラーになるのが正しい
VC++でエラーにならないなら標準非準拠か独自拡張 クラス型のconstオブジェクトをデフォルト初期化(で定義)するときは そのクラスにはユーザ定義のデフォルトコンストラクタがなければならない >>847がエラーにならないのは静的記憶期間のためゼロ初期化されて上記には該当しないから
- 866 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:01:49.00 ID:JsRvQDZJ.net]
- >>854
>ゼロ初期化されて上記には該当しないから フーン、それはISO/IEC 14882:2014のどこに書いてあるのですか?
- 867 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:06:57.63 ID:pNycS8F+.net]
- パーサー書いたことある人いますか
一応作ったけどすごい難しいというか面倒というか どういったアルゴリズムがいいのか馬鹿だからわからん
- 868 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:22:04.98 ID:ftNCaisU.net]
- BoostにC++パーサーがあったような
- 869 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:23:53.25 ID:Kru1mWVv.net]
- boost::spiritでおk
- 870 名前:デフォルトの名無しさん [2015/10/07(水) 23:24:01.37 ID:gQOBln3k.net]
- (1)文字単位の検査 →エラー文字を弾く
(2)文字を結合してトークンを作る →エラートークンを弾く、コメントなど延期トークンをまとめる (3)トークンを結合して再帰的ツリーを作る →構造の欠損を弾く (0)メタな表記がある場合、そのメタ表記についてまた(1)から逆再帰的に繰り返す できたツリーを意味解析に渡す
- 871 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:25:58.96 ID:0v/h/3vS.net]
- >>856
オープンソースのパーサー腐るほどあるだろそれいっぱい読め
- 872 名前:デフォルトの名無しさん [2015/10/08(木) 00:13:00.11 ID:p7bZHcv9.net]
- >>856
あります。 ・(E)BNF ・HTTP ・Sentence segmentation 等書きました。
- 873 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 04:32:10.77 ID:FlZYA0H2.net]
- >>856
LL(5)位がおすすめ
- 874 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 06:37:28.57 ID:ETVAEvki.net]
- >>862
なんでLL(5)んああんだよ? 5記号先読みするパーサなんて一般的じゃないだろJK、 ていうかLL(1)(再帰下降構文解析の一番簡単なやつ)とかは 素人でも勝手に再発見するがそこで理解が止まってしまうと 数式のパーサで死ぬので(そのまま作ると2項演算子が全部右結合になってしまう 、やpっぱまずわ正規言語のパーサあたりからから作ってみて感触をつかんだるのちに ボトムアップパーサの理解に進むべし、
- 875 名前:デフォルトの名無しさん [2015/10/08(木) 11:19:30.61 ID:GTAWjzct.net]
- LL(1)はLL(1)文法になるように人工的に作り出した言語にしかほとんどつかえないからな
LL(5)位なら適当にある言語ならほとんど解析できるだろ
- 876 名前:デフォルトの名無しさん [2015/10/08(木) 12:23:57.11 ID:GTAWjzct.net]
- 左結合にしたければカッコつければいいだけだし
右結合する演算子なんて普通無いしな
- 877 名前:デフォルトの名無しさん [2015/10/08(木) 12:25:42.38 ID:PEkcocuS.net]
- バックトラックはセキュリティの問題をはらみやすいので避けたほうが良い。
- 878 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 12:28:11.85 ID:GTAWjzct.net]
- また例の再帰関数大嫌い君か
- 879 名前:デフォルトの名無しさん [2015/10/08(木) 12:33:40.58 ID:PEkcocuS.net]
- 好き嫌いの問題ではないはず。
安全か安全でないか。
- 880 名前:デフォルトの名無しさん [2015/10/08(木) 12:39:28.24 ID:GTAWjzct.net]
- 妊娠と同じですとでも言いたいのか?
- 881 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 13:46:07.06 ID:XT2XQMd7.net]
- template関数をvirtualにはできない制限って今後のC++でも続くんでしょうか?
そもそもこの制限の理由は仮想関数テーブルを作るコストが大変だから、ってやつですよね? コンパイル時間かかってもいいからやってくれ、ってニーズはないんでしょうか?
- 882 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 14:03:10.79 ID:jZEKLa+0.net]
- 具体的にどういう風に仮想関数テーブルを構築したら
template関数のvirtual化が可能なんですか? 分割コンパイルは可能なのですか? コンパイル単位を守れるのですか?
- 883 名前:デフォルトの名無しさん [2015/10/08(木) 14:29:05.60 ID:1TGlpU6G.net]
- >>871
やってみろよ、まず struct A { template <typename T> virtual void func(T) { } };
- 884 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 14:40:04.09 ID:jZEKLa+0.net]
- そんなこと出来っこないだろう、という返しだったのですが・・・
- 885 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 14:48:15.03 ID:jZEKLa+0.net]
- プログラムに必要なソースコードをグローバルな視点ですべて解析してから
コード生成を開始するならテンプレートな仮想関数どころか もっととんでもない事が可能かも知れんが C++はcpp単位で分割コンパイルするのがルールだから無理っていう baseクラスをコンパイルしてvtable作る時には それにどんな派生クラスがあるか分らないし、分らなくてもコンパイルできるように なってるのがC++のルールだからね
- 886 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 15:32:00.85 ID:YWpiDxnr.net]
- テンプレートのインスタンスの概念すら知らないってことでしょ?
こんなの初心者レベルの内容じゃん やってみろよじゃねーよ
- 887 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 17:33:27.84 ID:G0kXf/E8.net]
- むしろ出来ないと主張する根拠を聞きたいものだ
- 888 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 18:00:23.72 ID:TDkjtQvD.net]
- 今の仕組みじゃ出来ないだろ。
普通のvtableより更にものすごく遅い 仕組みでやるなら出来ないことはないだろうが。
- 889 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 18:07:23.28 ID:G0kXf/E8.net]
- ISO/IEC 14882:2014は別にvtableの実装を要求してないのだが
「今の仕組み」が普遍的なものであるかのように語られても
- 890 名前:デフォルトの名無しさん [2015/10/08(木) 18:11:00.56 ID:1TGlpU6G.net]
- vtable以外の実装の具体例もしくは具体案なしに空想論を語られてもねえ
今んとこ「できるわけない」という立場を取っているが 説得力のある反論〜反証は金払ってでも拝聴したい
- 891 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 18:12:29.15 ID:jZEKLa+0.net]
- 普通に考えて無理だろう
実行時に動的にロードする事も有るし うまくいくとは思えないね
- 892 名前:デフォルトの名無しさん [2015/10/08(木) 18:12:44.05 ID:GTAWjzct.net]
- 出来るからやるんじゃない
出来ないからやるんだよ
- 893 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 18:13:11.65 ID:TDkjtQvD.net]
- vtableより早い仕組みがあれば
vtableに置き換わるだろうが vtableでできないなら何らかの 遅い仕組みで実装しなきゃいけない。 その機能を使わない場合に遅くならないようにするためおそらくはvtableとのハイブリッドになる。 少なくとも現状の仕様でできないのだから、できるというならリーズナブルな実装の一つでも提案しろと。
- 894 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 18:20:47.25 ID:G0kXf/E8.net]
- なんだ
「俺の使ってる糞コンパイラーではできない」 ってとか。そりゃしょーがない
- 895 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 18:22:57.97 ID:jZEKLa+0.net]
- struct base { template< typename T > virtual void method( T ){} };
struct derived : public base { template< typename T > void method( T ){} }; このとき、 base::method< int >(); base::method< float >(); derived::method< int >(); derived::method< float >(); の関数の実態があったとき、仮想関数に詰め込む順番をあわせる必要が有る これはリンカで行うしかないが、動的にロードする場合はどうなるんだという問題が出る また、derived::method<double>() を追加したとして baseの方に対応する関数がなかった場合はどうするんだという問題が出る リンカエラーにするのかvtableを拡張するのかどうするのか 動的にロードする時にどうするのか
- 896 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 18:33:41.15 ID:TDkjtQvD.net]
- 凄いな。
それができるc++コンパイラを持っているらしいぞ。
- 897 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 18:55:11.54 ID:G0kXf/E8.net]
- 「分割コンパイルするから無理」「テンプレートのインスタンスの考えからして無理」
と言うから理由を聞いてみたのだが 「ボクのvtable実装では無理」とか、話をすり替えるなんて 非仮想関数と非テンプレ仮想関数は追加オーバー無しでテンプレ仮想関数を実現する方法さえ思いつかないらしい
- 898 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 19:11:16.86 ID:TDkjtQvD.net]
- だから追加オーバーヘッドの無い
実装方法や実装したコンパイラを 具体的に出せと。
- 899 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 19:14:33.28 ID:jZEKLa+0.net]
- どちらにしても、C++は一つのcppのコンパイル中は、それしか見えない仕様
コンパイル単位とかいう物がある だからテンプレート仮想関数のvtalbeの構築はリンカに頑張ってもらうしかないが 動的にリンクする場合はどうするんだという問題が出てくる
- 900 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 19:20:02.77 ID:e3P/In2F.net]
- >>841
されない
- 901 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 19:28:15.57 ID:idvE5Tw4.net]
- >>888
動的じゃなくてもリンカーがインスタンス化されてないtemplate仮装関数を発見しちゃったらtemplateのコードをインスタンス化してコンパイルやり直さなきゃいけないよね 動的リンクするならコンパイラを実行ファイルに組み込まなきゃいけない JITありのインタプリタみたいなものになる そんなものを規格に入れるわけがない
- 902 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 20:03:43.82 ID:YWpiDxnr.net]
- >>886
黙ってろゴミ
- 903 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 20:13:36.43 ID:ETVAEvki.net]
- vtable方式は構造体に(メンバ)関数へのポインタを埋め込む方法より
1段ポインタ参照が増えるから不利だが vtable方式をやめるとdynamic_castの実現で頭を抱えることになると思う
- 904 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 20:17:35.06 ID:tERbEPZQ.net]
- 相変わらず雲をつかむような話で喧嘩できるエスパーなスレですね
- 905 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 20:19:58.94 ID:fbjyyooL.net]
- え?お前出来ないの?
- 906 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 20:43:07.22 ID:YWpiDxnr.net]
- そもそも規格で駄目と明言されてる事なのに
自分じゃできないからって、実装方法すら他人を煽るわせびるわ 頭悪いにも程があるだろコイツ
- 907 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 21:05:21.80 ID:idvE5Tw4.net]
- >>895
現時点での規格で駄目だとしてもそれが将来的に実現可能かどうか、妥当かどうかを考えてみるのは興味深い事だと思うよ ただ、なぜか彼は偉そうで喧嘩腰なのがいただけないけど
- 908 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 21:07:33.55 ID:p4LiiGTw.net]
- 婆ちゃんのために天ぷら揚げないで
- 909 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 22:26:31.48 ID:XT2XQMd7.net]
- >>874
>プログラムに必要なソースコードをグローバルな視点ですべて解析してから >コード生成を開始するならテンプレートな仮想関数どころか >もっととんでもない事が可能かも知れんが ですよね C#の生産性の高さを考えると、C++ももう少しユーザに優しくあってほしいと思うわけです 当方数値科学計算が仕事ですがC++歴は浅いので、戯れ言として聞き流してください
- 910 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 22:40:21.99 ID:ETVAEvki.net]
- >>874
>プログラムに必要なソースコードをグローバルな視点ですべて解析してから >コード生成を開始するならテンプレートな仮想関数どころか >もっととんでもない事が可能かも知れんが あーそれかなり無理 任意のプログラムに対して有限停止問題が解けるというのと多分同義
- 911 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 00:01:41.40 ID:3NeJM4zm.net]
- かなり無理は不可能なのかそうでないのか
- 912 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 00:08:18.42 ID:GfpzmItO.net]
- 必要なソースコードをグローバルな視点ですべて解析してからコード生成
と同等のことは他言語でやってること
- 913 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 00:09:59.28 ID:m6l+7vgz.net]
- 言葉の意味まで変更してしまえば当然なんでも可能です
- 914 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 00:21:28.96 ID:IUqyiVrM.net]
- >>901
へえ、例えば? そういう言語があるとしたらそれソースコード以外のライブラリが使えないんだけどそういう言語はインタプリタで実行するものしか知らんなあ そういう言語は大抵そこを実行するときに他のソースを読み込むし
- 915 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 00:23:34.66 ID:m6l+7vgz.net]
- C#ではジェネリックなメソッドをオーバーライド出切るんだけど、
C#のジェネリックとC++のテンプレートは仕組みが違うからなぁ
- 916 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 00:26:43.46 ID:m6l+7vgz.net]
- C#はそこそこ頑張っているんじゃないのかねぇ
ヘッダファイルは無いし、複数のファイル間で相互参照があっても うまいことコンパイルしてくれるって聞いたこと有るぞ
- 917 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 06:57:51.96 ID:VT/0EZUp.net]
- >>899
> 任意のプログラムに対して有限停止問題が解けるというのと多分同義 全然違うと思う
- 918 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 09:59:13.28 ID:4cEJzv4C.net]
- >>904
抽象でしかできないぞ
- 919 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 13:36:37.06 ID:IUqyiVrM.net]
- >>904
ググっても エラー出るよ助けてよー 出来ないから別の方法使え しか見つからなかったけど本当に出来るの?
- 920 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 18:02:05.60 ID:m6l+7vgz.net]
- 「ジェネリック メソッド オーバーライド C#」
でググって一番上にあるのに何を検索したんだかww あまりにも検索能力が低すぎて日常にも支障が有るレベルでは
|

|