- 1 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 17:54:00.55 ID:0DW9z0rL.net]
- ※前スレ
C++相談室 part153 https://mevius.5ch.net/test/read.cgi/tech/1602339500/ テンプレここまで
- 730 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 07:17:08.75 ID:3x5iWh5q.net]
- >>716
> >>714 > 通ってねえじゃん > 何が言いたいんだ? ※ VS2010限定
- 731 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 07:24:49
]
- [ここ壊れてます]
- 732 名前:.77 ID:45Tu3B4L.net mailto: だから何?
ill-formedなのがわかっても自分が正しいと強弁したいのか? [] - [ここ壊れてます]
- 733 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 07:27:26.57 ID:3x5iWh5q.net]
- 全員の主張を再検証しただけでつよ?
>原文のままでは>>711が言うとおり通るわけがない (>>712) が覆されてご機嫌ななめ??
- 734 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 07:32:07.63 ID:45Tu3B4L.net]
- 覆った?
おまえVS2010限定で逃げただろ ill-formedはill-formed これを覆せたら出直して来な
- 735 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 07:34:53.80 ID:45Tu3B4L.net]
- 俺も昔のバージョンのコンパイラは使うがバグ技は使わないし
そういうことをする厨二病とは組みたくない
- 736 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 07:38:38.54 ID:3x5iWh5q.net]
- >おまえVS2010限定で逃げただろ
VS2010ではビルドが通るというのが話の発端なので… 1番目の例がill-formedであろう点は同意
- 737 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 07:51:23.22 ID:45Tu3B4L.net]
- orzなんだろ
何が誰が悪いのかわかったら素直になれよ 居直る態度が気に入らねえ
- 738 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 08:12:22.74 ID:3x5iWh5q.net]
- 何が悪いのか、はともかく
誰が悪いのかとは一体… つか現象(事実)の提示に対してそれを反発と解釈して勝手に炎上しないでいただきたい;;; 個人的にはVS2010のバグである可能性でほぼ確定とは思いつつ、 例1と例2で動きが違うことから、MSVC2010は、グローバルなシンボルについて template foo()や関数baz()の中の解釈に入る前に名前空間を確定させる実装なのだと感じる (template foo()の解釈ロジック自体にバグがあるなら例1、2とも同じ結果になるのが自然 再発防止のためには、C++規格のどこをどう読めば良いんじゃorz
- 739 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 08:57:55.62 ID:45Tu3B4L.net]
- >>719は明らかに煽り口調だろうが
和解したいなら、あの態度を撤回しろ 俺は和解なんかできなくて構わんが
- 740 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 10:26:37.15 ID:1W1GlA05.net]
- 匿名掲示板で誰が何を言ったのどうのとみっともないぞデフォルトの名無しさんよ
- 741 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 11:29:35.12 ID:jxDcSv/l.net]
- どう見ても>>716がイミフな言いがかりつけてるだけにしか見えんが…
> 確かにideoneでもVS2019でも両方エラーになるのですだが、 > 1番目の例はVS2010ではビルドも通って動くもーん
- 742 名前:デフォルトの名無しさん [2021/02/12(金) 13:22:44.45 ID:x9NfpsA7.net]
- 匿名でも江副とかQZとか片山やはちみつが糞なのは伝わってくるω
- 743 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 18:24:14.30 ID:45Tu3B4L.net]
- 単発IDになりやがった
どこまでも腐ってやがるな
- 744 名前:蟻人間 mailto:sage [2021/02/12(金) 19:12:56.39 ID:fTOQtm+W.net]
- どこでも動くように標準化しましょうねって話だよね。
- 745 名前:蟻人間 mailto:sage [2021/02/12(金) 19:29:19.43 ID:WC9JZZt5.net]
- G++とかclang++などの複数のコンパイラで警告最大にして自動ビルドすれば再発防止できると思われます。
- 746 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 19:37:54.63 ID:3abO7oQ0.net]
- 流れをぶった切って質問です。
あるクラスで生成、削除を一切合切プライベートにしたい(ファクトリメソッドでスマートポインタを渡す)んだけど、 ::deleteを対象クラスだけプライベート、あるいはコンパイルエラーにする ことって可能かしらん?
- 747 名前:蟻人間 mailto:sage [2021/02/12(金) 19:46:11.11 ID:WC9JZZt5.net]
- >>732
private dtor使え、だとよ。 https://stackoverflow.com/questions/631783/what-is-the-use-of-having-destructor-as-private
- 748 名前:蟻人間 mailto:sage [2021/02/12(金) 19:55:37.68 ID:fTOQtm+W.net]
- dtorはデストラクターの略ね。
死のトラクターじゃないよ。
- 749 名前:デフォルトの名無しさん [2021/02/13(土) 02:57:21.77 ID:ZCgeuP6g.net]
- 映画化決定。
- 750 名前: mailto:sage [2021/02/15(月) 00:20:32.87 ID:M7Hs01/T.net]
- >>728
私が馬鹿なのは私自身が認めていることですが、片山さんはすごいと思いますよ、何よりも片山さんは多産ですし、私は片山さんを尊敬しています‥‥
- 751 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 12:30:59.56 ID:tZ1nblID.net]
- >>733
ありがとう。参考になりました。 流石にグローバルdtorの直接呼び出しを気にしている人は居なさそうですね。 通常の使い方じゃないから気にするな、が正解かしらん。
- 752 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 18:45:49.14 ID:zTH+X1Xm.net]
- 画像
https://genkibox.com/linepic/wp-content/uploads/2017/10/line0049.jpg
- 753 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 18:59:33.07 ID:zTH+X1Xm.net]
- つかprivate dtorって何の解決にもなって
なくね? クラスFooのデストラがprivateな時点で Fooのfirendでも何でもないstd::shared_ptr<Foo>はビルドエラーになる宿命なのでは… あとp.get()->Delete()とされるのも恐ろしいすぐる………
- 754 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 19:15:28.82 ID:Pme6j5oX.net]
- >>739
そのあたりは回避策ある。 どのwebページに解説あったか覚えてないけど……
- 755 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 08:24:04.17 ID:Pn/OWNHb.net]
- operator <=>を定義しても
==と!=が使えるようにならないのは、なんで?
- 756 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 11:29:34.99 ID:u6Au0MiC.net]
- https://cpprefjp.github.io/lang/cpp20/consistent_comparison.html
のoperator==節で仕様とその理由についても説明してあります
- 757 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 12:05:07.17 ID:8kTif7Fu.net]
- relops
- 758 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 12:07:48.78 ID:ZhVk2C4b.net]
- relops
- 759 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 12:14:57.71 ID:7xS0C1vs.net]
- なるほどわからん。弱順序って何よ?
- 760 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 13:36:33.88 ID:peDNmUYI.net]
- >>745
二項関係で、反射律、推移律、比較可能性を満たすもの
- 761 名前: mailto:sage [2021/02/17(水) 21:10:31.90 ID:n4obO1jB.net]
- >>746
擬順序とか半順序と呼ぶ本もありますね、 ただ、その「比較可能性を満たす」とはなんでしょうか?私の教科書では、擬順序には反射律・推移律だけしか要請されていなかったと記憶しているのですが?
- 762 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:46:57.44 ID:ZhVk2C4b.net]
- 普通に言葉通り任意の2つの元を比較できるということなのでは…
木構造で「親は子より大きい」という順序を定義しただけ (全順序集合(例えば整数)で全ノードをラベル付けしてしまうというチート手段に訴えことなく、 文字通り「if (aはbの親) { a > b; }」という規則と(a, b)の反射律、推移律を導入しただけ では兄弟間の大小が定まらない、 みたいな
- 763 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:47:32.54 ID:ZhVk2C4b.net]
- のは半順序で、
整数みたいなやつが全順序
- 764 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:59:39.55 ID:ZhVk2C4b.net]
- なお{ 全順序集合 }⊂{ 半順序集合 }なのは確定的に明らかなので、
反射律・推移律だけしか要請されていなかったらそれは全順序集合の集合を含む半順序集合の集合の意味となりぬ つまり全順序集合の集合と半順序集合の集合が区別できん 両社を区別したい議論のときは比較可能性の有無を宣明せねばならんぬ、
- 765 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 00:34:07.44 ID:48a8FzyN.net]
- a≦b または b≦aが成り立つ時、比較可能
弱順序ってしらなかったけど、半順序とは違うようだ 「半順序?弱順序?二項関係・順序関係まとめ」って記事
- 766 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 03:35:31.61 ID:sRdwF113.net]
- 束論やってるけど弱順序とか初めて聞いた…
マ界用語?
- 767 名前:741 mailto:sage [2021/02/18(木) 06:50:20.77 ID:brZHVFLx.net]
- >>74
- 768 名前:2
まだ何とも言えないが thx! []- [ここ壊れてます]
- 769 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 10:08:01.17 ID:48a8FzyN.net]
- 弱順序は、半順序よりは制限強いが全順序より弱いもので、
ある種のソートアルゴリズムでは全順序よりは制限緩められるけど 半順序までは緩められない、ってのがあるみたいね
- 770 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 13:16:30.49 ID:9Yl3mCZH.net]
- >>752
束って何で勉強すればいいん?
- 771 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 14:43:05.98 ID:48a8FzyN.net]
- アルゴリズムとの関連はちょっとわからんけど
数学としての束論って単独の本は少なくて、代数学の本に載ってるんじゃないかな もしくは順序集合の話として集合論の本
- 772 名前: mailto:sage [2021/02/19(金) 04:42:11.06 ID:3tFNJrqv.net]
- >>748
>普通に言葉通り任意の2つの元を比較できるということなのでは… いや、それは全順序ですよ ・擬順序 ・順序 これらの演算子を≦としたとき、かならずしも任意の二元 a, b について a ≦ b の真偽が定まらなくてもいいと思います 擬順序に対して「a ≦ b かつ b ≦ a ならば a = b」という縛りが追加されるのが順序、 順序に対して、任意の二元 a, b について「a ≦ b」または「b ≦ a」のどちらかである、という縛りが要請されるのが全順序 だったかと
- 773 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 20:38:08.11 ID:mpGE+xsF.net]
- wikipediaの「推移関係」の項目より
半順序 - 反対称的な擬順序 擬順序 - 推移的であると同時に反射的 全擬順序 - 完全的な擬順序 同値関係 - 対称的な擬順序 厳密弱順序 - 強半順序関係で等価関係での比較が不可能な場合 全順序 - 推移的で反対称的な完全関係 全順序、半順序くらいしか知らんかった
- 774 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 20:51:11.65 ID:gWMDVcMR.net]
- OOPの本だとサブクラス関係は前順序って書いてるよな?擬順序ともいうのか
推移的、A→B∧B→C |- A→C 、サブクラスのサブクラスはサブクラス かつ反射的、AはAのサブクラス
- 775 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 20:55:11.79 ID:fAhRarpN.net]
- >>757
>いや、それは全順序ですよ は? その条件が共通なだけだろ
- 776 名前: mailto:sage [2021/02/19(金) 21:23:56.68 ID:3tFNJrqv.net]
- >>760
一番弱い順序、推移的かつ反射的であるのみの順序関係は、実は任意の二項間においてかならずしも順序関係の真偽が定まらなくてもいいのですよ すべての二項間で順序の真偽が定まるのは、順序の中でも一番強いものである全順序で初めて導入される、と私は解釈しています
- 777 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 21:44:53.04 ID:gWMDVcMR.net]
- ブール代数 型システムで検索しても出てこないけど>>523
可補分配束の定義見てると確かにそんな気はしてくる インスタンス関係かサブクラス関係なのか?どっちでも成り立ちそうだけど、取り敢えず静的チェックをパスすることを考える 要素が無いと言う意味でCのvoidを冪集合ブール代数の最小元、空集合とみなす void *は何でも指せるという意味で最大元 まともな型システムなら(少なくとも)上記の擬順序以上は要求る 演算は多重継承とvirtual 定義が∨/∧に対応?クラス図書いてみたら成り立ちそうに思える 型チェック通らない全ての型を考えられるし、それが¬ 型述語で定義してればそのまま!演算子になる
- 778 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 21:55:14.25 ID:gWMDVcMR.net]
- 確証が持てなくてもどかしい…数学できる人ツッコミ待ち
とりあえずダイヤモンド継承を許さない言語だと、常に∧/∨は定義されないからブール代数にはならない事には気付いた
- 779 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 21:55:34.53 ID:hHLb88jw.net]
- ググってる時点で、というかそのことを隠しもしないニワカ
- 780 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 21:56:36.22 ID:gWMDVcMR.net]
- >>764
隠して5chなんかで偉ぶってどうすんのさ
- 781 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 22:01:35.27 ID:aORwmd7L.net]
- 質問ですがムーブコンストラクタを有する基底クラスの
派生クラスでムーブコンストラクタを 派生クラスがムーブコンストラクトされる際に基底クラスにアクセスしようとする場合であっても 安全に書く方法って何かあるんでしたっけ
- 782 名前:デフォルトの名無しさん [2021/02/19(金) 22:03:03.40 ID:6z9jMlRH.net]
- 作ったクラスをmapにいれるときoperator<を書かなきゃいけないのがめんどい
- 783 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 22:08:24.37 ID:aORwmd7L.net]
- あとムーブコンストラクタを有するクラスを
詳細を隠ぺいする目的でインターフェースを設けたとき インターフェース経由でムーブコンストラクトする方法って何かあるんでしたっけ アブストラクトファクトリイーを作るしか無い?
- 784 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 22:11:39.72 ID:aORwmd7L.net]
- この場合アブストラクトファクトリイーといっても、元のクラスFooに対して
IFoo IFoo::move() { ... } が定義してあって IFoo x = (適当な生成手段) ののち、 IFoo y = x.move() でxが破壊されるやつ!
- 785 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 22:36:29.47 ID:F7SsNRLa.net]
- それインターフェースとして使えてないよ
- 786 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 00:40:16.16 ID:iK8Sr3o/.net]
- 領域が連続しているコンテナなら何でも良いんですが、たとえば array<T> a を vector< vector<T> > b に n 要素分コピーしたいときって
memcpy(b.data(), a.data(), n*sezeof(T)) で良いんですかね? UNIXコマンドと順番が違ったりして間違えそうなのですが、他に良いやり方ありますか
- 787 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 01:38:00.62 ID:YJV0xwOV.net]
- >>771
ド素人かよ
- 788 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 01:42:23.87 ID:upzAgg50.net]
- >>771
領域確保されてるならたぶんそれが最速だけど、普通はstd::copyかな
- 789 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 08:11:48.90 ID:BRyl48dG.net]
- >>761
その「一番弱い」とか言ってるのは前順序だろ。 ククク... 前順序は順序四天王の中でも最弱... ウィキペディアにも書いてあるのに間違うとは面汚しよ...
- 790 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 11:17:36.76 ID:ZF+WEG2v.net]
- 半順序とかいう訳が悪い
英語のpartial orderの方が分かりやすい
- 791 名前: mailto:sage [2021/02/20(土) 11:27:39.73 ID:mkFIMg3t.net]
- >>774
本によって用語にブレがあるのは数学では常識でしょう?だから>>761 では定義もあわせて書いておきました
- 792 名前:デフォルトの名無しさん [2021/02/20(土) 11:30:33.89 ID:ec7b4JGn.net]
- あとは裁判で争うしかないでしょうね。
我々には判決が出せませんから。
- 793 名前:はちみつ餃子 mailto:sage [2021/02/20(土) 11:52:10.16 ID:N5IkYQZo.net]
- >>771
前提条件として ・ T の型が trivially copyable である ・ vector の大きさが必要な大きさ分に出来ている ならそれでもいいよ。 でも、 C の関数を C++ でも使えるのはほとんどが互換性のためでしかなく、 作法的にはあまり使わないに越したことは無いって感じ。
- 794 名前:はちみつ餃子 mailto:sage [2021/02/20(土) 11:56:56.24 ID:N5IkYQZo.net]
- >>771
>>778 と思ったけど、 vector<T> ではなくて vector< vector<T> > なのか。 それだと領域が連続するという前提が成り立たないんじゃないんですかね。
- 795 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 12:51:28.34 ID:K0wy5MAI.net]
- >>770
どういう意味じゃ… ムーブコンストラクトする手段をインターフェースとして公開したい需要は論理的に有り得る それともIFoo::move()に実装が伴うからという意味?
- 796 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 14:23:36.69 ID:XZPJJfWU.net]
- >>779
なぜ? 行優先か列優先かは置いといて、vectorの要素は連続するのだからvectorのvectorも連続するのでは? サイズやキャパシティが変わったときに不連続になりうるということ?
- 797 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 14:39:27.43 ID:ZF+WEG2v.net]
- vectorのvectorの中身はサイズ値とバッファポインタが連続で並んでるだろうな
- 798 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 14:57:30.99 ID:upzAgg50.net]
- >>781
正しくコピーしたければ、 memcpy(b[0].data(), ...) みたいにしないと。 このとき当然b[1]のデータ領域はb[0]の後ろに連続していない
- 799 名前:はちみつ餃子 mailto:sage [2021/02/20(土) 15:27:01.55 ID:N5IkYQZo.net]
- >>781
vector 型のオブジェクトが連続して並んでいることは保証されるよ。 でも vector 型のオブジェクトのメモリレイアウトがどうなってるかは保証されない。 常識的な実装は >>782 が言う通りヒープから持ってきたメモリのポインタなどを持ってるだけ。 データそのものを内包しているわけではない。
- 800 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 16:22:37.93 ID:UDAFNKrx.net]
- ほらCと同じ基本の部分を教えずにいきなりSTLとか勧めるからこういう初心者が出てくる・・
- 801 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 17:06:29.35 ID:1TZxH4Mg.net]
- ある程度出てきても問題ないだろ。ちゃんとドキュメント読んで理解してくれる人も多いんだろうし、
「Cと同じ基本の部分」を教えたところでちゃんと理解してくれない人も居るだろうし。
- 802 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 17:09:29.42 ID:UDAFNKrx.net]
- ちょっと何言ってるかわかんない
- 803 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 17:54:39.09 ID:ZF+WEG2v.net]
- 相談室に初心者が来て何の問題があるのか
- 804 名前:はちみつ餃子 mailto:sage [2021/02/20(土) 18:06:15.32 ID:N5IkYQZo.net]
- >>788
程度による。
- 805 名前:蟻人間 mailto:sage [2021/02/20(土) 19:27:14.79 ID:VmESNyRi.net]
- >>771
> array<T> a を vector< vector<T> > b に n 要素分コピーしたいときって > memcpy(b.data(), a.data(), n*sezeof(T)) > で良いんですかね? 待てよ、b.data()って&b[0]だから型はvector<T>*だろ。書き換えたらいけないアドレスじゃん。 ダメです。
- 806 名前:蟻人間 mailto:sage [2021/02/20(土) 19:49:01.06 ID:HfYkFRCd.net]
- C++のvectorでは、演算子[ ]がオーバーロードされてるから、C言語の常識が通用しないんだよ。
memcpyは危険な関数だから簡単にメモリー破壊できるんだよね。 std::vector v; int a = 5; memcpy(&v, &a, sizeof(a)); // vのメモリー破壊。
- 807 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 20:38:26.44 ID:PUIofNKd.net]
- >>791
流石にそれは質問者のレベルにも達してないんで問題外
- 808 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 20:44:29.23 ID:Rkd/h2tQ.net]
- 別にここで何が正しいかを結論できなくてもいいのだが
>>776 そう言うなら「推移的かつ反射的であるのみの順序関係」が「弱順序」と書いてある本を 教えてくれる? 手元になかったらうろ覚えでもいいけど。〇〇の××先生がそう言ってたみたいのでもいいw 知識として一応確認しておきたいかなと。
- 809 名前: mailto:sage [2021/02/20(土) 21:19:47.30 ID:mkFIMg3t.net]
- >>793
>>761 では「推移的かつ反射的であるのみの順序関係が『弱順序』」とはいっていませんよ、よく読んでくださいね >>761 で言っているのは「一番弱い順序、推移的かつ反射的であるのみの順序関係は、実は任意の二項間においてかならずしも順序関係の真偽が定まらなくてもいい」としかいっていませんですよね‥‥ 曲解もはなはだしいと思いますね ちなみに私の教科書ではこれを「擬順序」と定義しています、大熊正氏の本ですが、私には一生かかっても私には読めないでしょうから、あとはググってください
- 810 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 21:44:52.70 ID:K0wy5MAI.net]
- std::vector v(sizeof(int));
int a = 5; memcpy(&(v[0]), &a, sizeof(a)); // おk
- 811 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 21:47:14.25 ID:K0wy5MAI.net]
- つかこうかorz
std::vector<int> v((size_t)1); const int a = 5; memcpy_s(&(v[0]), sizeof(v[0]) * v.size(), &a, sizeof(a));
- 812 名前:蟻人間 mailto:sage [2021/02/20(土) 21:58:40.54 ID:HfYkFRCd.net]
- この場合は素直にループを書くか、それとも格好良くstd::copy使うのが楽かな。
- 813 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 01:26:13.27 ID:G4m9GHw4.net]
- for文回したら死ぬ病気にでもかかってんのか?
- 814 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 01:29:00.28 ID:oO8KGr2m.net]
- 条件を満たすならmemcpyのほうが圧倒的に早いからな
- 815 名前:はちみつ餃子 mailto:sage [2021/02/21(日) 01:32:42.66 ID:jd0qgVVy.net]
- それほど速くならない・速くなくていい場合のほうが圧倒的に多いってのもあるけどな。
- 816 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 03:13:29.79 ID:ZrTKdY4P.net]
- そもそもそんなクソみたいなコードはふつう書かない
- 817 名前:770 mailto:sage [2021/02/21(日) 03:54:49.57 ID:HYHVDYIS.net]
- >>780
IFooっていう名前からしてインターフェースってJava/C#的な意味でのそれだと思ってたけど それならポインタなり参照なりじゃないと機能してないよっていうかコンパイルエラーでしょってツッコミ
- 818 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 03:58:42.63 ID:0HHdBuLy.net]
- メモリコピーを最適化する前に、他にすべきこと沢山あるだろ的な答えになるよな、確かに。
PG界の真理情報だわ。
- 819 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 05:11:43.88 ID:L28MHLBD.net]
- valarrayでxorとか
- 820 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 07:43:27.01 ID:F92hI73d.net]
- >>802
オブジェクトAがconstメンバとして保持しているブツの所有権を移してオブジェクトBを構築することは ムーブコンストラクタでないと_なのでムーブコンストラクタである必要があり この要請はオブジェクト全体が直接アクセスかポインタや参照経由の間接アクセスかとは独立愚連隊、 >>803 真に高速化を求められる内側のループでstd::vector<int> xとかしないから >>796はひとつながりの省略のないコードとして読んだら判断を誤りうる
- 821 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 07:51:19.71 ID:F92hI73d.net]
- じゃなかったorz
Foo::Foo(const Foo& src) { (srcを変更して新しいインスタンスを初期化) } はconst_cast<Foo>的な危険手段でないとやれないが Foo::Foo(Foo& src) { (srcを変更して新しいインスタンスを初期化) } とするとなんかコンパイラが警告を出すから Foo::Foo(Foo&& src) { (srcを変更して新しいインスタンスを初期化) } にせざるおえないという、
- 822 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 13:21:42.30 ID:Dqlg3tSu.net]
- 関数と関数オブジェクトってどう使い分けるの?
- 823 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 13:30:17.46 ID:YxY+Ievf.net]
- こういう馬鹿にはちゃんとベンチマークとれって言ってやるのが正しい行い。
- 824 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 14:32:16.15 ID:HYHVDYIS.net]
- >>805
そんなこと聞いてるんじゃなくて 提示されたコード片じゃどう考えても動かないから何したいか分からんのよ https://wandbox.org/permalink/ancQey3IkQKyWsu1 こっから始めてどこをどうしたいか教えてくれ
- 825 名前:デフォルトの名無しさん [2021/02/21(日) 14:47:26.80 ID:9WgNecVw.net]
- 404 Not Found
- 826 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 15:33:36.83 ID:HYHVDYIS.net]
- すまん
https://wandbox.org/permlink/ancQey3IkQKyWsu1
- 827 名前:デフォルトの名無しさん [2021/02/21(日) 16:21:41.69 ID:u2qGdVDT.net]
- 過疎ってるし、初心者どころかJavaの質問でもOKでは?
- 828 名前: mailto:sage [2021/02/21(日) 19:01:13.83 ID:3Ebck9FU.net]
- >>807
この質問に対して回答をつける用意がありますが、しばしお待ちを
- 829 名前: mailto:sage [2021/02/21(日) 19:27:36.57 ID:3Ebck9FU.net]
- >>807,813
昔のコードを今読んでみたんですが、実のところ関数オブジェクトにする必要性があったかどうか、今の価値観のもとでは首をかしげています 数値計算のプログラムって、無自覚にバンバン書いてると例えばルンゲ食ったをやっているとこと他とかが混ざり合って収拾がつかなくなる、と思って関数オブジェクトにアイソレートした記憶があって、それを思い出して読んでみたんですけれども、今読んでみても、なんだか、ねえ‥‥ https://mevius.5ch.net/test/read.cgi/tech/1434079972/72
- 830 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 20:07:12.76 ID:F92hI73d.net]
- >>809
Fooはこんなやつ、 https://ideone.com/mPPH8I 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というのがいるとして、 *q = *p で所有権を*pから*qに渡したり、 return *p で呼び出し元が所有権を有するFooを受け取れるようにしたいワケ
|

|