- 1 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 17:53:02.14 ID:FOAGvAbs.net]
- 次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part135 https://mevius.5ch.net/test/read.cgi/tech/1522495206/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1509780815/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) ----- テンプレ ここまで ----- VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
- 730 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 15:53:50.27 ID:xFvEQmr2.net]
- >>663
>どうしてこう融通が利かないのか。設計のせいか・・・Orz ユーザーコードにクラスの中で定義された型(Base::TypeやNext::Type)を見せるのはやめて、 NextやBaseのオブジェクトのふるまいとしてだけ見せたら宜しいかと ふるまいだけを見せる抽象化はまず純論理的にはポリモーフィズムで逝ける 次の段階として、呼び出しの度にvtblの間接参照が一発入る遅さを嫌い、高速化したいという要求が生じるかもしれないが そのときは知らん(テンプレートによるダックタイピングでさらに戦うこともできるが同一翻訳短以内でのcloseが前提でありかつクラスの継承の恩恵にはなかなかあずかれない
- 731 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 15:58:27.82 ID:xFvEQmr2.net]
- なおふるまいだけを見せる抽象化ができないオブジェクト指向言語とか無いから他言語への移植性とかを気にするのは狂気の杞憂
ていうか非オブジェクト指向言語であっても関数ポインタと構造体が使えれば似たようなことはいつでもできる
- 732 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 18:59:43.05 ID:X6Hz/xY3.net]
- 非オブジェクト指向言語とオブジェクト指向言語で
最終的に作れるものと作れないものは その違いによる差は全くないんだが
- 733 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 22:22:49.51 ID:xFvEQmr2.net]
- ちな>>707は、>>660へのレス。
- 734 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 22:42:05.15 ID:4zfRZVUI.net]
- 技術系の板でID使い分けする惨めさよ
- 735 名前:707 mailto:sage [2018/08/12(日) 07:44:03.92 ID:2Xoj+DoI.net]
- 俺の偽物がいるな
- 736 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 20:13:35.92 ID:KnTIebYQ.net]
- レイトレーシングをやってみたいんですけど、何もない状態から画像を生成するのと、画像処理(opencv)でやろうと思ってます。
前者と後者とも資料は見つけたのですが、どうやって勉強するのがおすすめですか? opencvで例えばアイドルの画像をCGっぽく、またはアニメっぽくはできたりするのでしょうか?
- 737 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 22:21:45.58 ID:MDfKI+a6.net]
- >>711
多分君には無理だからそういったアプリを探しなさい 煽りでも何でもなく実力不足
- 738 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 23:17:59.82 ID:RJjtK8Ko.net]
- >>711
レイトレーシングの本質は三次元空間での光の挙動のシミュレーションであって 既存の画像を加工するような技術じゃないぞ
- 739 名前:デフォルトの名無しさん [2018/08/13(月) 00:27:19.20 ID:p4qIMBze.net]
- Late racing.
- 740 名前:デフォルトの名無しさん [2018/08/13(月) 00:28:37.24 ID:p4qIMBze.net]
- 視線の追跡したほうが効率よさそうな気がする。
目に入らない光は無いも同然だし。
- 741 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 00:31:27.67 ID:sn7iPKpv.net]
- 一番シンプルなレイトレの実装は視線追跡だからな
- 742 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 00:33:31.73 ID:sn7iPKpv.net]
- >>716
寝ぼけて謎な用語の用法をしてしまった忘れてくれ 視線側からのレイの追跡だ
- 743 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 00:36:44.24 ID:XxWurSAu.net]
- トイレの覗きかと一瞬勘違いしましたw
- 744 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 00:43:21.17 ID:MxL7CAkg.net]
- ちゃんとミラーボールの映像から抽出しないと
- 745 名前:デフォルトの名無しさん [2018/08/13(月) 01:42:46.41 ID:+YkMTMKz.net]
- 遠い昔だが、いい基礎解説本があったんだがタイトルが思い出せない
98用のCのソースコードも附録でついてた 98なんかもってなかったから、Xlibで動かした記憶がある その書籍はサーフェイスモデルもレイトレーシングも基礎から丁寧に書いてある良書だった サーフェイスモデルについては、ものすごい力を入れて書かれてた良い本だった ワイヤーフレームから陰面消去、さらに双三次スプラインでの補間、そしてレンダリング、バンプマッピング さらに3次アフィン変換つかってモーションキーで動くとこまで解説してる 基礎で必要な内容は、ほぼすべて網羅されてて、バカでもチョンでも分かるように書かれてた で、レイトレーシングはサーフェイスモデルより超簡単だからな このスレのアホが難しいといってるだけで むしろレイトレーシングはバカでもチョンでも分かる
- 746 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 01:48:30.63 ID:GxmByJ3O.net]
- せっかく良い質問なのに、
あまり汚い言葉で、アホとかバカとかチョンとか言わなない方がいいよ…
- 747 名前:デフォルトの名無しさん [2018/08/13(月) 02:07:33.90 ID:Zz4bK/+7.net]
- レイトレならこれもおすすめ
https://qiita.com/mebiusbox2/items/89e2db3b24e4c39502fe
- 748 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 02:52:34.70 ID:J+SKK2b0.net]
- Oh!Xにソース付きで事細かく書いてあってだな
- 749 名前:デフォルトの名無しさん [2018/08/13(月) 03:13:41.34 ID:bfksj/4u.net]
- 多分これだと思う
https://www.amazon.co.jp/dp/4871481999 3冊とも名著。1と2はBASICだけど
- 750 名前:デフォルトの名無しさん [2018/08/13(月) 03:39:58.88 ID:p4qIMBze.net]
- レイトレーシングに限らないけど、アルゴリズムの勉強にはLinuxが良いですよ。
- 751 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 04:00:12.36 ID:3+Hm6Wut.net]
- 紹介されてる本全部古い...
linuxだと何がいいの?
- 752 名前:デフォルトの名無しさん [2018/08/13(月) 04:14:38.66 ID:p4qIMBze.net]
- Kernelソースが勉強になります。
- 753 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 04:15:34.47 ID:J+SKK2b0.net]
- openclとグラボの勉強したら?
レイトレーシングの大量の計算するのがグラボでしょ
- 754 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 06:59:52.73 ID:k7xD/gvg.net]
- >>724
アスキーの『応用グラフィックス』か。入門・実習・応用の3冊シリーズだね。 各巻のつながりは緩いから順番に読まなくてもほぼ大丈夫だけど。 確かに良い本だった気がするけど、なにぶん読んだのが昔なんで いくらも理解できなかったわ。今ならもう少しマシだと思いたい。 大学近くの古本屋でなら見つかるかも。
- 755 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 07:05:01.34 ID:JKsq+WjD.net]
-
畏(おそ)れ多くも森喜朗元帥閣下の有り難いお言葉: 「オレはIT(いっと)のことはよく知らんがぁ 時計をたった2時間早めるだけだろぉ? オレなら1分あれば済ませるぞぉ! サマータイムの何がそんなに難しいんだぁ?」 システム開発現場の勇ましい言葉: 「畏れ多くも森元帥閣下のご下命を賜った以上 現場SEは有り難いお言葉に勇気百倍 デスマーチとバンザイ突撃を敢行いたします!」 「マラソン選手さまが涼しい時間に走るためなら 現場SEの千人や二千人死んでも本望です! 私たちSEの生命など、虫けらと同じです!」 「畏れ多くも森元帥閣下の有り難いご下命にしたがって 最前線システム開発現場で殉職出来るとしたら 現場SEとしてこれに勝る喜びはありません!」 日本という国では 体育会系が一番偉い(森元帥閣下、田中理事長) 文科系がその次で(財務省、教授会) 理科系は最底辺の奴隷とされています(現場SE)
- 756 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 07:26:44.37 ID:WtSMvp2C.net]
- レイトレーシングがサーフェイスモデルより簡単とか
半透明物体内部の散乱表現に踏み込んだらそんな寝言は言えないんじゃ…
- 757 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 10:07:11.78 ID:uSgRX9ke.net]
- みんな例外と戻り値ってどう使い分けてる?
例えば以下みたいな、ファイルからとある要素を抜き出して返す関数とかで std::string extractHogeFromFile(const std::string& file_path) 俺だったら以下みたいにしてるけど、いまいちしっくり来てないとも思ってる ファイルが見つからない→例外 要素が見つからない→例外 要素が見つかるけど空→空 みんな例外クラスとかはstd::exception継承して自作してるのかな? バックトレースやコード行数とれないのが使いにくくて、javaっぽい例外クラスを自作してる
- 758 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 10:16:27.95 ID:Z0vFISs/.net]
- 例外は発生時の動作が遅い
- 759 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 10:17:50.65 ID:gsTSbRo/.net]
- exceptionを直に継承ということは滅多にないな
system_errorがあるからerror_categoryの派生クラスを作れば大抵足りる __FILE__ や __LINE__ のようなデバッグ情報を入れたくてマクロを作ることはあるけどね 空という概念ならoptionalはいかが? template <typename ELEMENT> std::optional<ELEMENT> extractHogeFromFile(std::path) noexcept(false);
- 760 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 10:36:14.97 ID:uSgRX9ke.net]
- >>733
発生時は確かに遅いね ただ、あくまでも例外的なものだけに利用をとどめておけば、そんなに発生するものでもないし、その場合は戻り値をifで見るより命令数が少なくなるから、結果的に高速になるって俺は考えてる >>734 exception直に継承も少し疑問もってるんだけど、std::exceptionのcatchで全部取りやすいからこうしてるんだよね ...でcatchは乱暴な気がするし ただ、調べて見た感じsystem_errorも使いやすそうね。最近開発で使えるようになったC++11だからこんなのあるの気づいてなかったわ std::optionalとかあったんだね、ちょっと調べてみるわありがとう
- 761 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 11:20:33.79 ID:NtbFT1j9.net]
- >>720
レイトレーシングが簡単なのは入り口だけ 20世紀あたりのなんちゃってレイトレーシングは楽だけど本格的にやると解決できない問題が多数出てくる
- 762 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 11:32:34.68 ID:D1VtDJH7.net]
- ファイル開くのはそれ自体がすっごい遅い操作だから例外のコストなんか無視できるのと
開き損なうとそれ以降の処理が致命的な失敗になりやすい そういう操作のエラー通知が例外に向いてる
- 763 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 11:47:23.91 ID:2dORgvS5.net]
- >>733
例外発生時の速度が問題になるなら例外の使い方を見直した方がいい
- 764 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 12:31:28.26 ID:Z0vFISs/.net]
- >>832に対して
例外は遅いから例外の時に使いましょう ということを書いたつもりなんだけど 単なる終端マークとか区切りとか そういう頻出する可能性のある用途では使っちゃダメってこと
- 765 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 12:35:13.84 ID:Z0vFISs/.net]
- 例外は仕組みを入れるだけで、
例外が発生しなくてもオーバーヘッドが発生する環境がほとんどなので 組み込みだとわざと無効にすることも多い x86の64bitはオーバーヘッドが無い代わりに 例外発生時は極端に遅い 一度測定してみるとその遅さがよく分かる そういうことがわかっていれば どこに使うべきかがおのずとわかる
- 766 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 12:41:46.34 ID:WtSMvp2C.net]
- 低水準ライブラリに属するべき関数が例外みたいな高級なしくみに依存するのは美しくないキモス
システム設計とかアプリの基本設計レベルで例外の種類とcatch箇所とcatch時の処理を定義して使うなら良い が、呼び出し側でif文を書きたくないからという理由でイミフな例外定義を行うと、結局第三者に正しく使ってもらえない キモス
- 767 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 12:48:07.11 ID:WtSMvp2C.net]
- 例外のオーバーヘッドについてはこれな↓↓↓
ttp://zakkas783-blog-blog.tumblr.com/post/3870295160/c-の例外ハンドリングとパフォーマンス >>740の通り例外処理の裏側の実装には2つの潮流があるんじゃ
- 768 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 13:03:58.12 ID:u8inRKlo.net]
- 制御をすっ飛ばす必然性があるほどの例外的状況に限るのが吉だろうな。
返値で返せないものを返すのに使うなら検査例外のような保証が欲しいところ。
- 769 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 13:22:39.94 ID:BGH31mSy.net]
- 別スレッドでの関数呼び出し階層が深すぎて安全にスレッド終了させる方法が分からない時に便利でしょ、例外。
- 770 名前:デフォルトの名無しさん [2018/08/13(月) 13:37:06.53 ID:hqkLiaZ4.net]
- このパーセンテージどうやって表示してるのですか?
aokomoriuta.hateblo.jp/entry/2016/05/05/145810
- 771 名前:デフォルトの名無しさん [2018/08/13(月) 13:37:33.57 ID:hqkLiaZ4.net]
- すいませんこれです
https://i.imgur.com/p53FZao.jpg
- 772 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 14:16:12.02 ID:uSgRX9ke.net]
- 前測ったときはアセンブリ言語にしてみると、戻り値ifチェックだと2命令だったのが例外使うと20命令くらいだったなぁ
- 773 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 14:27:34.65 ID:uSgRX9ke.net]
- >>741
自前の文字列操作のUtilとかだと例外にするかすごいその観点で迷うんだよね >>743 賛否両論なjavaの検査例外だけど欲しくなるときはあるね C++の例外指定がもう少し使いやすければよかったんだが >>744 すごく同感
- 774 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 14:39:38.06 ID:gsTSbRo/.net]
- >>739
困ったことにbasic_iosはexceptionsで頼みもしてないのにEOFで例外を投げる
- 775 名前:デフォルトの名無しさん [2018/08/13(月) 14:48:44.15 ID:p4qIMBze.net]
- HTTPで400番台500番台は例外投げればいいのかな。
- 776 名前:デフォルトの名無しさん [2018/08/13(月) 14:51:05.76 ID:p4qIMBze.net]
- 例外を投げるクラスはピッチャーって名前でいいんか?
受け取るクラスはキャッチャー?
- 777 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 15:18:30.60 ID:m/ibS17x.net]
- 甘めの例外を打ちかえすのはバッター
- 778 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 15:38:43.20 ID:Twrhv79p.net]
- C++17では多値が返せるようになりました。
できるならレガシーを切って次へ行きたいものです。 またはstd::optionalなんてものもありますな。 std::tuple<bool,Item> Fun(){return {true,Item()};} auto [F,I] = Fun();
- 779 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 15:41:48.16 ID:Twrhv79p.net]
- あ
- 780 名前:、多値自体は返せたけど受け取って初期化できるようになったか。
ちなみにすでに実体化している変数は、std::tie(...);で受け取れます。 [] - [ここ壊れてます]
- 781 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 16:14:15.10 ID:gsTSbRo/.net]
- >>754
prvalueでもforward_as_tupleならおk
- 782 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 16:15:13.67 ID:gsTSbRo/.net]
- auto func()
{ return forward_as_tuple(123, "456"); }
- 783 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 19:17:45.97 ID:Twrhv79p.net]
- お、なるほど。良いこと聴いた!
- 784 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 20:21:18.19 ID:m/ibS17x.net]
- ただ元からタプルがある言語と比べたら劇的に汚い仕上がりだよね
- 785 名前:デフォルトの名無しさん mailto:sage [2018/08/13(月) 21:43:01.79 ID:3hlPfGdJ.net]
- itest.5ch.net/test/read.cgi/tech/1528382412
前スレのURL違うくね これがただしいっしょ
- 786 名前:デフォルトの名無しさん [2018/08/14(火) 02:06:11.13 ID:41LFYoyc.net]
- >>758
何と比べてる?
- 787 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 02:50:24.34 ID:oCVPQ4uM.net]
- そんなに汚いかねえタプル
- 788 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 03:32:08.59 ID:+lmSJTba.net]
- 演算子オーバーロードっぽいものを珍重するのはやめた方がいいと思うけどね。
- 789 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 08:20:26.94 ID:8F/Sy9ZI.net]
- autoでしか受けられないのがイマイチかなあ
メインの戻り値は期待する型を明示したいことがある エラーの方が何のenumかは知ったこっちゃないからautoにしたかったりするからややこしい
- 790 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 09:31:57.53 ID:oMbBbcEB.net]
- 無名の共用体と似たようなもので
構造体のメンバをバラで貰えるってだけやん
- 791 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 09:44:39.80 ID:fJuFDfsp.net]
- 型推論のautoを見て嘔吐
- 792 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 12:12:14.83 ID:9UC8tUq9.net]
- C++のメタプログラミングって実際にはどうすればあんな複雑に書けるの?
自分は出来ても階乗を求めると型の判別くらいしか出来ない
- 793 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 12:16:05.35 ID:aWfB90DT.net]
- まずは脳内バッファを増やす訓練からだな
- 794 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 12:26:17.71 ID:8F/Sy9ZI.net]
- 関数型言語を勉強するといいよ
- 795 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 12:41:59.55 ID:9UC8tUq9.net]
- >>767
脳内バッファがなぜ必要? >>768 そうしてみる‥ Lisp読んで見る
- 796 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 13:29:44.46 ID:z3VJK4Uc.net]
- >>766
メタプログラムは今ほとんどconstexprに置き換えれない?
- 797 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 14:16:24.99 ID:9UC8tUq9.net]
- >>770
確かに置き換えられるんだけど、それじゃあ普通のプログラミングと変わらなくて面白みが無いと思って‥
- 798 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 14:39:49.94 ID:vEMT9LA3.net]
- >>770
型でメタプログラミングするとき困らんか?
- 799 名前:デフォルトの名無しさん [2018/08/14(火) 14:41:24.25 ID:UlU0qat0.net]
- >>772
もちろんtemplateも使う
- 800 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 16:24:16.29 ID:oKGdiTQg.net]
- >>760
特に何とは言わないけど return (123, "456"); とか return 123, "456"; みたいに現行のc++ではできないタプル表現のほうがすっきりして見える (個人の感想です)
- 801 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 16:31:09.91 ID:fJuFDfsp.net]
- 123には副作用が無いから最適化でreturn "456";になるんじゃ…
- 802 名前:はちみつ餃子 mailto:sage [2018/08/14(火) 16:32:25.07 ID:EPC9iky2.net]
- >>775
「できない」って話だから……
- 803 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 17:01:49.73 ID:zHCh+0V6.net]
- vector<object*>* list;
Fuga fuga; Hoge* hoge; for(int i = 0; i < 5; ++i) { fuga.fugaMethod(hoge->hogeMethod(list->at[i])); fuga.fugaMethod(hoge->hogeMethod((*list)[i])); // エラー } リストの要素に対して全部処理をするっていうよくあるプログラムなんです。 なんですが、上の書き方だと通るのに対して、下の書き方だと「式にはクラス型が必要です。」と出ます。 vectorの要素指定はa
- 804 名前:t(i)を使うか括弧で指定するかの2通り、違いは範囲チェックを行うかどうかだけという認識だったのですが……
何がまずいんでしょうか? [] - [ここ壊れてます]
- 805 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 17:10:49.55 ID:oMbBbcEB.net]
- list->at[i]はまずいだろ
typoか? それとも本当にそう書いているのか?
- 806 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 17:27:33.05 ID:8F/Sy9ZI.net]
- typoじゃないとしたら、上は通ってるんだから
hogeMethodの引数がobjectかobject&なんだろうな
- 807 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 17:31:42.31 ID:zHCh+0V6.net]
- えーっとtypoじゃないです。
何がまずいんでしょうか。ポインタだしアロー演算子で問題ないのでは。 それとhogeMethodの引数はobject*ですね。抜けてましたすいません。
- 808 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 17:49:25.24 ID:K29Njy0m.net]
- listの前の*が邪魔?
- 809 名前: mailto:sage [2018/08/14(火) 18:00:20.07 ID:5K5qKv3G.net]
- >>777
vector<string *>::iterator list; なら理解できるのですが、 vector<string *> *list; というのが、よくわからないのです プログラム例では list にすでに値が入っているようですが、実際には list をどのように初期化しているのでしょうか?
- 810 名前:782 mailto:sage [2018/08/14(火) 18:19:15.36 ID:5K5qKv3G.net]
- >>777
(*list)[i] (*list).at(i) list->at(i) は等価であることを確認しましたが list->at[i] というのは逆にダメっぽいです https://ideone.com/ripLji list->at[i] がどういう文脈なのか? コンパイラがなになのか情報をください
- 811 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 18:27:08.03 ID:oMbBbcEB.net]
- >>780
何がまずいって listはvector<object*>へのポインタ list->atはvector<object*>::atでメンバ関数 ここまではいいが at[i]は関数に添え字だろ こうやってんのと同じだぜ void func(); func[1];
- 812 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 18:32:33.03 ID:9UC8tUq9.net]
- なんでメンバ関数を配列にしたいのかかが気になる
- 813 名前:デフォルトの名無しさん [2018/08/14(火) 18:35:36.38 ID:zHCh+0V6.net]
- あ、すいません、確かにat(i)はtypoでしたね。
ごっちゃになってましたすいません
- 814 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 19:46:01.17 ID:TB9AjC50.net]
- >>786
> 確かにat(i)はtypoでしたね。 なら普通に両方コンパイルはできるはず エラーになる最小限のコードにしてどこかにアップして
- 815 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 20:00:34.01 ID:aWfB90DT.net]
- そんでだいたい最小化してるうちに気づくんだよなw
- 816 名前:デフォルトの名無しさん [2018/08/14(火) 20:01:24.90 ID:UKq+CNIv.net]
- 関数テンプレートの部分特殊化ってC++17でもできないの?
- 817 名前:デフォルトの名無しさん mailto:sage [2018/08/14(火) 20:08:30.24 ID:HhG+br3u.net]
- >>788
まあ本人気づくのが一番いいから
- 818 名前:782 mailto:sage [2018/08/14(火) 20:18:07.26 ID:5K5qKv3G.net]
- >>790
寛大ですね…
- 819 名前:デフォルトの名無しさん mailto:sage [2018/08/15(水) 13:34:49.18 ID:bAZUebux.net]
- >>789
できない # いらんだろ、多重定義で同じ目的を達成できるから
- 820 名前:デフォルトの名無しさん mailto:sage [2018/08/15(水) 15:58:12.56 ID:/VaqEwQY.net]
- 関数の多重定義もクラステンプレートの部分特殊化でstaticメソッドを特殊化したら代替できるからイラン
- 821 名前:デフォルトの名無しさん mailto:sage [2018/08/15(水) 17:45:56.30 ID:bAZUebux.net]
- >>793
どゆこと? たとえば int abs(int); double abs(double); を、 クラステンプレートの部分特殊化でstaticメソッドを特殊化つーと template <typename A, typename B> struct num; template <typename A> struct num<int> { static int abs(int); }; template <> int num<int, int>::abs(int arg) { return arg < 0 ? -arg : arg; } みたいなことすんのか?
- 822 名前:デフォルトの名無しさん mailto:sage [2018/08/15(水) 18:07:46.14 ID:GkoLimxd.net]
- 普通は関数オブジェクトにするんじゃね?auto operator()(...);
- 823 名前:デフォルトの名無しさん mailto:sage [2018/08/15(水) 18:46:53.07 ID:GkoLimxd.net]
- あ、余計なこと言った。
https://dotup.org/uploda/dotup.org1613077.zip
- 824 名前:デフォルトの名無しさん mailto:sage [2018/08/15(水) 18:48:12.11 ID:GkoLimxd.net]
- うご、投稿してモータ。
例のローグのシステムが大分できたのでなんとなく投下してみた。 汎用AIってどうやって書けばいいんや? しかも、まだバトルシステム作ってないし。
- 825 名前:デフォルトの名無しさん mailto:sage [2018/08/15(水) 19:02:43.98 ID:GkoLimxd.net]
- ところで質問なんだけど、パスファインディングってサービスとして入れたほうがいいのかなぁ。。。
- 826 名前:デフォルトの名無しさん mailto:sage [2018/08/15(水) 22:40:01.74 ID:QxvGNpoJ.net]
- >>766です
C++テンプレートメタプログラミングという本を買ってみたのですが、この本C++BoostのMPLの解説本です C++17がある今、この本の価値ってあるんでしょうか? 一応全部読んでみようと思ってるのですが
- 827 名前:デフォルトの名無しさん mailto:sage [2018/08/16(木) 07:25:03.80 ID:t6OwQxX1.net]
- >>799
> 一応全部読んでみようと思ってるのですが 読んでみてから判断すれば?
- 828 名前:デフォルトの名無しさん mailto:sage [2018/08/16(木) 08:19:40.35 ID:NceGg90N.net]
- 多分聞きたいのはこれ読んだらオラついていいですか?ってことだと思う。
- 829 名前:デフォルトの名無しさん mailto:sage [2018/08/16(木) 08:50:47.25 ID:MDl/UAh8.net]
- >>800
>>801 すみません Boostを使わず、mplを使わないのでメタプログラミングするのが目的なので、それがこの本を読んで可能なのか?という質問の趣旨です
- 830 名前:デフォルトの名無しさん mailto:sage [2018/08/16(木) 09:51:57.97 ID:t6OwQxX1.net]
- >>802
> Boostを使わず、mplを使わないのでメタプログラミングするのが目的 そんな明確な目標あるのになんでこんな本買うかなぁ ちょっとググればこんな意見が見つかるだろうに… ちょっと文章が直訳っぽくてところどころ不自然だけど,丁寧にBoost.MPLの実装(と使い方)について解説してあってとても分かり易い! d.hatena.ne.jp/eldesh/touch/20100412/1271090614
|

|