[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/27 11:38 / Filesize : 256 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part154



1 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 17:54:00.55 ID:0DW9z0rL.net]
※前スレ
C++相談室 part153
https://mevius.5ch.net/test/read.cgi/tech/1602339500/

テンプレここまで

692 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 14:32:04.65 ID:TFzLuCg0.net]
すみません、std::for_each を使っていて continue したくなりましたが、サポートしてないです
よね? これって:
1. for_each は continue する必要がないような処理に限ってに使うべき。
2. ループの中で大きい if ブロックを作って空の処理にすればよい。
3. その他

693 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 15:13:45.18 ID:ZYaksnCf.net]
returnすれば?
for_each(begin(foo), end(foo), []{ if(bar) return; });

694 名前:デフォルトの名無しさん [2021/02/10(水) 16:06:00.49 ID:HSfvjOUE.net]
return は continue ではなく break じゃないの?
質問者の2.大きなif分で実質何もしないでいいと思う

695 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 16:20:11.24 ID:ZYaksnCf.net]
for_eachをbreakするにはthrowかlongjmpがいるぞ

696 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 16:35:39.62 ID:S47HOUGT.net]
きったねぇジャンプだ

697 名前:デフォルトの名無しさん [2021/02/10(水) 16:51:31.94 ID:HSfvjOUE.net]
あ、ラムダ式になってたのか

698 名前:はちみつ餃子 mailto:sage [2021/02/10(水) 17:51:08.81 ID:tNqysU9n.net]
>>679
for 文で書いた方が短く書けそうだけど、
あえて for_each を使いたい理由が何かあったりするの?

699 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 18:41:41.17 ID:FGGGEnfF.net]
Perlなら問題無くできる(continue→next、だが
C++規格委員会がfor_eachのcontinueを許可しないのは最後の一線なのかもしれん…

700 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 19:51:57.06 ID:teDb7k99.net]
何の一線よ



701 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 20:18:41.39 ID:ln/pLvjf.net]
いやreturnでいいだろ…
許可しないってなんのことだよ

702 名前:デフォルトの名無しさん [2021/02/10(水) 21:21:18.68 ID:+e+FbMSY.net]
vectorで一億件ほどで、飛ばしたいのが100〜1000件程度なんだろう

703 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 21:51:25.56 ID:QYfnOwKH.net]
>>679
for_eachをrange based forに変更は出来ないの?

704 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 21:59:01.21 ID:ZYaksnCf.net]
>>690
おまえのスキルのためにか?

705 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 22:17:23.69 ID:qtVJ0qYe.net]
range based forなら普通にcontinueできるぞ

706 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 22:18:26.21 ID:ln/pLvjf.net]
>>689
飛ばす手段があったとして、飛ばすかどうかどこでどう判断するの?

707 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 04:16:42.30 ID:nrDdTgaQ.net]
early returnは正義

708 名前:デフォルトの名無しさん [2021/02/11(木) 11:22:44.35 ID:n0GRjtoR.net]
>>685
テンプレのときとか

709 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 17:53:02.68 ID:Iq2aKjep.net]
679がなぜfor_eachを使うのかを無視するのは
他人の領分を侵すお節介だ

for_eachの使い方をアドバイスできんやつは
しゃしゃり出てくるな

710 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 18:00:13.22 ID:hRfccug1.net]
よくよく話を聞いてみたらまるで異なる解決策が見つかるなんてよくあることじゃん。そんな経験ないの?
何をしたかったか確認するのは重要



711 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 18:15:41.21 ID:Iq2aKjep.net]
流れをよく読んでみろよ
for_eachをロクに使ってないやつなのモロバレだろ
質問者が尋ねていないことを答えたいから協力しろなんてぬかすのは
回答者の資格ねえんだよ

712 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 18:18:25.32 ID:Iq2aKjep.net]
自分が何か尋ねているときに
質問内容に付き合ってやれる懐のねえやつは
うぜえだけだろが

713 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 18:23:57.31 ID:Iq2aKjep.net]
質問内容において自分より下なやつに教えを請いたいかよ

714 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 18:34:11.92 ID:hRfccug1.net]
for_eachを使う場合の答えはとっくに出てるのに何言ってんの?

715 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 19:17:08.97 ID:15xoUz1R.net]
3のその他で答えただけ。

716 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 20:01:29.92 ID:veopzNW6.net]
他人の領分なんて侵してナンボ

717 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 20:03:18.37 ID:qccRsQET.net]
>>702
はあ?returnではいけない理由は?

718 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 20:19:00.69 ID:a/CQbB/Z.net]
>>679はループしたいだけだろ
std::for_eachを何が何でも使わなければならない特殊な事情があるなら仕方ないけどそんなこと言ってないし

719 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 20:23:31.36 ID:nDjPJyoP.net]
>>704
returnで良いと思うよ。

720 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 20:50:06.93 ID:Iq2aKjep.net]
>>701
680は俺だが何言ってんの?



721 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 21:58:36.08 ID:bviF/sLG.net]
Visual Studio 2010(MSVC2010)で
 template<class T>
 void foo(T x) {
  printf("%d: %d\n", targetEntity, x);
 }
という関数テンプレートが定義されているときに、
 namespace bar { const int targetEntity = 1; }
 using bar::targetEntity;
 void baz() { foo(100); }
はコンパイルが通るのに、
 namespace bar { const int targetEntity = 1; }
 void baz() {
  using bar::targetEntity;
  foo(100);
 }
だと
 error C2065: 'targetEntity': 定義されていない識別子です。
と言われるorz

722 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 22:06:56.76 ID:bviF/sLG.net]
>>688
for_eachを勘違いいてたわサーセン、
確かにfor_each<bgn, end, Function>のFunction(*it)からならreturnするで良さげ

723 名前:デフォルトの名無しさん [2021/02/11(木) 23:28:48.49 ID:Ooe4jkn9.net]
>>707
アンパンマンはキミだ。

724 名前:はちみつ餃子 mailto:sage [2021/02/12(金) 01:36:02.90 ID:2OOQ6m86.net]
>>708
宣言の有効範囲は宣言された場所からその宣言を含むブロックの終わりまでというのが原則
(クラススコープなどの例外はあるのでその他にも関連するルールはあるかもしれんけど)
なのでどちらもエラーになるのが筋だと思うし、 gcc や clang で試したらどっちもエラーだった。

逆にどういう理屈で前者が通るのかは気になる。

725 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 06:02:20.64 ID:45Tu3B4L.net]
>>708
当たり前だね
最初の例ではtargetEntryをグローバル空間に導入しているからbaz()とfoo()の両方から見える
2番目の例ではtargetEntryをbaz()のブロック内に導入しているから、そこに包含されないfoo()のブロックからは見えない

ただし、これはfoo()を関数原型と関数定義に分けて関数定義をbarよりも後方に置いた場合の話だ
原文のままでは>>711が言うとおり通るわけがない

726 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 06:03:16.30 ID:45Tu3B4L.net]
- barよりも後方
+ usingよりも後方

727 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 07:01:12.63 ID:3x5iWh5q.net]
確かにideoneでもVS2019でも両方エラーになるのですだが、
1番目の例はVS2010ではビルドも通って動くもーん

ソース:
https://ideone.com/DC8fMv

実行結果(※ VS2010限定):
1: 100
続行するには何かキーを押してください . . .

728 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 07:04:11.00 ID:3x5iWh5q.net]
ちな関数テンプレートfoo()の定義をusingよりも後方にしたら全てでビルドが通って動く
まそりゃーそうならないとおかしいが

729 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 07:12:42.48 ID:45Tu3B4L.net]
>>714
通ってねえじゃん
何が言いたいんだ?

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]
あとは裁判で争うしかないでしょうね。

我々には判決が出せませんから。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<256KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef