[過去ログ] C++相談室 part154 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
802(2): 770 2021/02/21(日)03:54 ID:HYHVDYIS(1/4) AAS
>>780
IFooっていう名前からしてインターフェースってJava/C#的な意味でのそれだと思ってたけど
それならポインタなり参照なりじゃないと機能してないよっていうかコンパイルエラーでしょってツッコミ
803(1): 2021/02/21(日)03:58 ID:0HHdBuLy(1) AAS
メモリコピーを最適化する前に、他にすべきこと沢山あるだろ的な答えになるよな、確かに。
PG界の真理情報だわ。
804: 2021/02/21(日)05:11 ID:L28MHLBD(1) AAS
valarrayでxorとか
805(1): 2021/02/21(日)07:43 ID:F92hI73d(1/6) AAS
>>802
オブジェクトAがconstメンバとして保持しているブツの所有権を移してオブジェクトBを構築することは
ムーブコンストラクタでないと?なのでムーブコンストラクタである必要があり
この要請はオブジェクト全体が直接アクセスかポインタや参照経由の間接アクセスかとは独立愚連隊、
>>803
真に高速化を求められる内側のループでstd::vector<int> xとかしないから
>>796はひとつながりの省略のないコードとして読んだら判断を誤りうる
806(1): 2021/02/21(日)07:51 ID:F92hI73d(2/6) AAS
じゃなかったorz
Foo::Foo(const Foo& src) { (srcを変更して新しいインスタンスを初期化) }
はconst_cast<Foo>的な危険手段でないとやれないが
Foo::Foo(Foo& src) { (srcを変更して新しいインスタンスを初期化) }
とするとなんかコンパイラが警告を出すから
Foo::Foo(Foo&& src) { (srcを変更して新しいインスタンスを初期化) }
にせざるおえないという、
807(3): 2021/02/21(日)13:21 ID:Dqlg3tSu(1) AAS
関数と関数オブジェクトってどう使い分けるの?
808: 2021/02/21(日)13:30 ID:YxY+Ievf(1) AAS
こういう馬鹿にはちゃんとベンチマークとれって言ってやるのが正しい行い。
809(1): 2021/02/21(日)14:32 ID:HYHVDYIS(2/4) AAS
>>805
そんなこと聞いてるんじゃなくて
提示されたコード片じゃどう考えても動かないから何したいか分からんのよ
外部リンク:wandbox.org
こっから始めてどこをどうしたいか教えてくれ
810: 2021/02/21(日)14:47 ID:9WgNecVw(1) AAS
404 Not Found
811: 2021/02/21(日)15:33 ID:HYHVDYIS(3/4) AAS
すまん
外部リンク:wandbox.org
812: 2021/02/21(日)16:21 ID:u2qGdVDT(1) AAS
過疎ってるし、初心者どころかJavaの質問でもOKでは?
813(2): ◆QZaw55cn4c 2021/02/21(日)19:01 ID:3Ebck9FU(1/4) AAS
>>807
この質問に対して回答をつける用意がありますが、しばしお待ちを
814(3): ◆QZaw55cn4c 2021/02/21(日)19:27 ID:3Ebck9FU(2/4) AAS
>>807,813
昔のコードを今読んでみたんですが、実のところ関数オブジェクトにする必要性があったかどうか、今の価値観のもとでは首をかしげています
数値計算のプログラムって、無自覚にバンバン書いてると例えばルンゲ食ったをやっているとこと他とかが混ざり合って収拾がつかなくなる、と思って関数オブジェクトにアイソレートした記憶があって、それを思い出して読んでみたんですけれども、今読んでみても、なんだか、ねえ‥‥
2chスレ:tech
815(1): 2021/02/21(日)20:07 ID:F92hI73d(3/6) AAS
>>809
Fooはこんなやつ、
外部リンク:ideone.com
IFooは、C++ではよく考えたらIFooのオブジェクトを直接生成できないので(>>802の仰せの通り
std::shared_ptr<IFoo>とかで生成することを考えたのだがエラーになるorz
(上のリンク先のコードでコメントアウトしてあるgenerate_IFoo()
思いのほか闇が深かった\(^o^)/
std::shared_ptr<IFoo>が生成できた暁には、
std::shared_ptr<IFoo> pがリソースの所有権を握ったFooを保持しているとき、
std::shared_ptr<IFoo> qというのがいるとして、
省4
816: 2021/02/21(日)20:09 ID:F92hI73d(4/6) AAS
ちなみにWandboxでソースコードをフォークする方法は
初心者なので
わかり
ません
817(1): 2021/02/21(日)20:14 ID:LxNhpnKU(1/2) AAS
generate_Foo()がコケてるのはnewのところでFooのコピコンがないだけだろ
コピコン書くか、ムーコン使いたいならnew Foo(std::move(foo3))にすればいいだけ
後半も意味不明
*q = *pってそれスライシングだぞ
818(1): 2021/02/21(日)20:23 ID:F92hI73d(5/6) AAS
>>817
普通の(ムーブでない)コピコンは書けないなぜなら>>806の理由により
>*q = *pってそれスライシングだぞ
どゆこと?
Foo foo1とFoo foo2だと
foo1 = foo2
とできるのに、
819: 2021/02/21(日)20:26 ID:F92hI73d(6/6) AAS
ちょっと補足すると、IFooには現状代入手段が無いから、
*q = *pはそもそもコンパイルが通ることはなく、目的とする機能を形而上的に表す仮想コード
のつもり
820(3): 2021/02/21(日)21:03 ID:+My/Unlg(1) AAS
>>814
処理を意味でまとめるようなことなら積極的にやるべきだと思いますが、それは関数オブジェクトじゃなくて関数でもできますよね?
821: 2021/02/21(日)21:05 ID:HYHVDYIS(4/4) AAS
>>815
コピー代入演算子とムーブコンストラクタだけ定義するとか意味分からんし
インターフェースによる隠蔽より先にそっち解決しなさい
何がしたいのか自分で本当にわかってる?
上下前次1-新書関写板覧索設栞歴
あと 181 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.081s*