次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137
https://mevius.5ch.net/test/read.cgi/tech/1531558382/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
C++相談室 part137
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 12c3-4saf)
2018/08/27(月) 16:02:00.94ID:vY3QDx2y0697はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 066f-coYL)
2018/09/24(月) 16:14:35.10ID:tUW1+gfS0 >>691
ポリシークラスは注入 (?) すべきポリシーをパラメタ化してるだけで、
何をパラメタにするかというデザインがきちんとしてれば有用だし、
いらん継承だとは思わないよ。
でも、現実には後になってそれがわかることもあるよねっていう話。
ポリシークラスは注入 (?) すべきポリシーをパラメタ化してるだけで、
何をパラメタにするかというデザインがきちんとしてれば有用だし、
いらん継承だとは思わないよ。
でも、現実には後になってそれがわかることもあるよねっていう話。
698デフォルトの名無しさん (ワッチョイ 5dc3-teld)
2018/09/24(月) 16:24:48.03ID:cpSL59m30 >>696
テンプレート使ってんじゃねえよ雑魚
テンプレート使ってんじゃねえよ雑魚
699デフォルトの名無しさん (ワッチョイ 2d48-coYL)
2018/09/24(月) 16:34:08.72ID:GIs1tf8Y0700デフォルトの名無しさん (ワッチョイ 5dc3-teld)
2018/09/24(月) 16:37:21.35ID:cpSL59m30 お前の主張通り継承で全部やれよ
そういう所が雑魚なんだよw
そういう所が雑魚なんだよw
701デフォルトの名無しさん (ワッチョイ 2d48-coYL)
2018/09/24(月) 16:38:54.75ID:GIs1tf8Y0 捨て台詞吐いて逃亡かw
追わねえよくっだらねえ
追わねえよくっだらねえ
702デフォルトの名無しさん (ワッチョイ 5dc3-teld)
2018/09/24(月) 16:41:06.83ID:cpSL59m30 そっくりそのままお返ししますわw
テンプレートと継承の出来ることと出来ないことの区別がつくまで二度と下らない妄言吐くなよ
テンプレートと継承の出来ることと出来ないことの区別がつくまで二度と下らない妄言吐くなよ
703デフォルトの名無しさん (ワッチョイ 01b3-coYL)
2018/09/24(月) 17:18:02.91ID:XuY/8j5Q0 >>697
>現実には後になってそれがわかることも
それは
>何をパラメタにするかというデザインがきちんとしてれば
が後で変更になることもある、ってことだろうけど
そこまでの変更があったら、結局元の定義に手を出さなきゃいけないのは
どんな設計でも同じことだと思うけどなぁ
>性質を追加するのに元のクラス定義を弄らなくて済む
と言ってたが、それは結局関数とかでクラスの要件を必要以上に大きくしないように
例えばallocator_traitsみたいに、色々手間をかけて、利用するクラスへの依存を減らすのと同じじゃね?
俺にはそういうイメージしか沸かないんだが
コンセプトマップってそういうことだろ
結局テンプレートであれこれ書くことになるか、コンセプトマップであれこれ書くことになるか、ってだけ
(=開発コストは高い)
std::vectorだって、例えばアロケータは初期化時に渡さないといけないし
コピーとかしたときにアロケータはコピーしてくれなかったと思うが
それが不便だという声もある(ここでたまに取り上げられるEASTLの開発動機で触れられてる
あと、アロケータは型に依存するけど、メモリ確保なんてのはそもそも型は関係ないので
アロケータのあの設計は失敗かもね、というのもある(同じくEASTLでも触れられてる
それに対する代替案として、上で挙げたstd::pmr::memory_resourceが出てきたわけだけど、
今更STLの基本設計は変えられないのでpolymorphic_allocatorでラップするということになった
もしvectorがポリシークラスを受け取って、アロケータやメモリ管理についてもっと汎用化してたら
こういう問題は起きなかった(クッソ複雑になってるだろうけど)
これコンセプトでどうにかなるか?後になってわかってもどうにもならんよ
>現実には後になってそれがわかることも
それは
>何をパラメタにするかというデザインがきちんとしてれば
が後で変更になることもある、ってことだろうけど
そこまでの変更があったら、結局元の定義に手を出さなきゃいけないのは
どんな設計でも同じことだと思うけどなぁ
>性質を追加するのに元のクラス定義を弄らなくて済む
と言ってたが、それは結局関数とかでクラスの要件を必要以上に大きくしないように
例えばallocator_traitsみたいに、色々手間をかけて、利用するクラスへの依存を減らすのと同じじゃね?
俺にはそういうイメージしか沸かないんだが
コンセプトマップってそういうことだろ
結局テンプレートであれこれ書くことになるか、コンセプトマップであれこれ書くことになるか、ってだけ
(=開発コストは高い)
std::vectorだって、例えばアロケータは初期化時に渡さないといけないし
コピーとかしたときにアロケータはコピーしてくれなかったと思うが
それが不便だという声もある(ここでたまに取り上げられるEASTLの開発動機で触れられてる
あと、アロケータは型に依存するけど、メモリ確保なんてのはそもそも型は関係ないので
アロケータのあの設計は失敗かもね、というのもある(同じくEASTLでも触れられてる
それに対する代替案として、上で挙げたstd::pmr::memory_resourceが出てきたわけだけど、
今更STLの基本設計は変えられないのでpolymorphic_allocatorでラップするということになった
もしvectorがポリシークラスを受け取って、アロケータやメモリ管理についてもっと汎用化してたら
こういう問題は起きなかった(クッソ複雑になってるだろうけど)
これコンセプトでどうにかなるか?後になってわかってもどうにもならんよ
704デフォルトの名無しさん (オッペケ Sr71-i7GN)
2018/09/24(月) 17:46:45.01ID:yIbiTIWcr ヒープ領域にインスタンスを作りたいときってどうしてもポインタを意識しないとダメなの?
MyClass abc;
みたいに宣言したいんだが。
MyClass* abc;
abc = new MyClass;
みたいにするしか方法ないの?
ヒープに作りたい理由は、巨大なオブジェクトだから。
ちなみにスマートポインタは使えない (icpc 12.0.4)。
MyClass abc;
みたいに宣言したいんだが。
MyClass* abc;
abc = new MyClass;
みたいにするしか方法ないの?
ヒープに作りたい理由は、巨大なオブジェクトだから。
ちなみにスマートポインタは使えない (icpc 12.0.4)。
705デフォルトの名無しさん (ワッチョイ 82b3-coYL)
2018/09/24(月) 17:53:54.47ID:CvpxIDb80 コンパイラに指示できるか、という意味ではないよ
そんなのあったも紛らわしいだけだと思うけど
そんなのあったも紛らわしいだけだと思うけど
706デフォルトの名無しさん (ドコグロ MM0a-GHk6)
2018/09/24(月) 18:26:32.41ID:sIOpRstjM707デフォルトの名無しさん (ワッチョイ 5dc3-teld)
2018/09/24(月) 18:31:59.03ID:cpSL59m30 struct MyClassHolder
{
MyClass* p;
MyClassHolder(): p(new MyClass()){}
~ MyClassHolder(){delete p;}
};
とか作っとけばいいんじゃない
自分でスマポ書いてるのと同じだけど
{
MyClass* p;
MyClassHolder(): p(new MyClass()){}
~ MyClassHolder(){delete p;}
};
とか作っとけばいいんじゃない
自分でスマポ書いてるのと同じだけど
708デフォルトの名無しさん (オッペケ Sr71-i7GN)
2018/09/24(月) 18:47:38.62ID:yIbiTIWcr >>707
ありがとうございます。
参考にします。
ちなみにポインタをどうこうしたくない理由は、これまで MyClass のインスタンスを参照渡しするように作っていた関数を、できるだけ変更したくないからです。
参照渡しをポインタ渡しに変えて、関数内に適宜アスタリスクを挿入するだけですか? 考えるのもしんどいです。
ありがとうございます。
参考にします。
ちなみにポインタをどうこうしたくない理由は、これまで MyClass のインスタンスを参照渡しするように作っていた関数を、できるだけ変更したくないからです。
参照渡しをポインタ渡しに変えて、関数内に適宜アスタリスクを挿入するだけですか? 考えるのもしんどいです。
709はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 066f-coYL)
2018/09/24(月) 18:55:55.79ID:tUW1+gfS0 >>703
> 色々手間をかけて、利用するクラスへの依存を減らすのと同じじゃね?
その通りだよ。
プロトコル指向でいうプロトコルは C++ で言うならまさにトレイツに相当すると思う。
(C++ では実装を直接的に強制する方法ではないけど。)
継承構造ではなく性質でジェネリック関数を使うってだけ。
継承で表すよりも性質で表現する方がたぶん記述は細分化されることになるので、
それが手間かもしれないし、
関連するものがとっちらかる感じはあると思う。
だけど「こういう型」というよりは「こういう性質」という方がプログラムが分かりやすくない?
既に述べたように拡張が楽というのもある。
ただ、プロトコル指向的デザインでは機能を追加することは出来ても
既に問題が生じているものをスパッと綺麗に解決できるわけではないので、
いつでも元の定義を弄らずに済むほど万能とはさすがに言わないよ。
vector なんてそれこそ達人たちが検証してるだろうから、
私が思いつくようなことが入り込む余地は無いだろうし。
そこらへんは程度問題なので、積極的に (あるいは消極的に)
(テンプレートを用いた) プロトコル指向的デザインを
使うのが割に合わないという場面もそれなりに多くあると思う。
繰返すけど、そこまで万能と思ってるわけじゃない。
> 色々手間をかけて、利用するクラスへの依存を減らすのと同じじゃね?
その通りだよ。
プロトコル指向でいうプロトコルは C++ で言うならまさにトレイツに相当すると思う。
(C++ では実装を直接的に強制する方法ではないけど。)
継承構造ではなく性質でジェネリック関数を使うってだけ。
継承で表すよりも性質で表現する方がたぶん記述は細分化されることになるので、
それが手間かもしれないし、
関連するものがとっちらかる感じはあると思う。
だけど「こういう型」というよりは「こういう性質」という方がプログラムが分かりやすくない?
既に述べたように拡張が楽というのもある。
ただ、プロトコル指向的デザインでは機能を追加することは出来ても
既に問題が生じているものをスパッと綺麗に解決できるわけではないので、
いつでも元の定義を弄らずに済むほど万能とはさすがに言わないよ。
vector なんてそれこそ達人たちが検証してるだろうから、
私が思いつくようなことが入り込む余地は無いだろうし。
そこらへんは程度問題なので、積極的に (あるいは消極的に)
(テンプレートを用いた) プロトコル指向的デザインを
使うのが割に合わないという場面もそれなりに多くあると思う。
繰返すけど、そこまで万能と思ってるわけじゃない。
711デフォルトの名無しさん (ワッチョイ 01b3-coYL)
2018/09/24(月) 19:02:38.38ID:XuY/8j5Q0 こいつ金慶珠みたいなやっちゃな・・・・マジめんどくさい
712デフォルトの名無しさん (ワッチョイ 01b3-coYL)
2018/09/24(月) 19:04:43.22ID:XuY/8j5Q0713デフォルトの名無しさん (オッペケ Sr71-i7GN)
2018/09/24(月) 19:14:36.90ID:yIbiTIWcr >>710
オブジェクトのサイズが動的に変わるので、難しいです(合ってるかな?)
>>712
> 関数の方を変えなくても、渡すとこで
> auto a = hoge(*pMyClass);
> でいんじゃね?
> それも大変なら>>707みたいにラップするしかないけど
void hoge(MyClass abc);
なる関数 hoge() に、
MyClass* pabc;
pabc = new MyClass;
hoge(*pabc);
とする、ということですよね?
この方法では、関数呼び出し時にコピーコンストラクタが呼ばれますか?
それとも参照渡しのように、実体(?)が渡されるのでしょうか。
オブジェクトのサイズが動的に変わるので、難しいです(合ってるかな?)
>>712
> 関数の方を変えなくても、渡すとこで
> auto a = hoge(*pMyClass);
> でいんじゃね?
> それも大変なら>>707みたいにラップするしかないけど
void hoge(MyClass abc);
なる関数 hoge() に、
MyClass* pabc;
pabc = new MyClass;
hoge(*pabc);
とする、ということですよね?
この方法では、関数呼び出し時にコピーコンストラクタが呼ばれますか?
それとも参照渡しのように、実体(?)が渡されるのでしょうか。
714デフォルトの名無しさん (ワッチョイ 01b3-coYL)
2018/09/24(月) 19:30:44.68ID:XuY/8j5Q0715デフォルトの名無しさん (ワッチョイ 01b3-coYL)
2018/09/24(月) 19:31:36.39ID:XuY/8j5Q0 あ、もちろん関数側の受け取りを参照のままにしてれば、だけどね
716デフォルトの名無しさん (ワッチョイ 42b3-GHk6)
2018/09/24(月) 19:42:51.66ID:E4VB1fuR0717デフォルトの名無しさん (ワッチョイ 42b3-GHk6)
2018/09/24(月) 19:44:00.35ID:E4VB1fuR0 あっ、既に出てたわ
718デフォルトの名無しさん (オッペケ Sr71-i7GN)
2018/09/24(月) 19:51:26.90ID:yIbiTIWcr719デフォルトの名無しさん (ワッチョイ c104-Om/S)
2018/09/24(月) 20:06:20.22ID:I/nCcJf20 https://ideone.com/l7t0qz
上から取れないマウントを取りに行くスタイル。
上から取れないマウントを取りに行くスタイル。
720デフォルトの名無しさん (ワッチョイ 694e-BR5k)
2018/09/24(月) 20:23:29.03ID:SA5x5JnZ0 ボレロ村上さんや江添さんみたいなプログラマーになりたいんですが、彼等はどうやってC++についてあんなに詳しいのでしょうか?
721デフォルトの名無しさん (ワッチョイ c104-Om/S)
2018/09/24(月) 20:29:49.13ID:I/nCcJf20 どっちも早いころからパソコンを触っており、
早期にはこんなに言語がなく血反吐吐いて低級言語を覚える必要が少しあり、今はその応用で食ってける。
C/C++も今ほどライブラリがなく、自作するか引っ張ってくるしかなかったうえにそもそもコード系のシャルネットワークがなかった。
早期にはこんなに言語がなく血反吐吐いて低級言語を覚える必要が少しあり、今はその応用で食ってける。
C/C++も今ほどライブラリがなく、自作するか引っ張ってくるしかなかったうえにそもそもコード系のシャルネットワークがなかった。
722デフォルトの名無しさん (ワッチョイ 469f-onpN)
2018/09/24(月) 20:40:24.56ID:dKKNaNpJ0 前提として奴らは別にプログラマーとして有名なわけではない。
コードを書く能力と有名なことが反比例しているわけだがそれでもいいなら
彼らの真似事してれば同じようになれるんじゃね?
コードを書く能力と有名なことが反比例しているわけだがそれでもいいなら
彼らの真似事してれば同じようになれるんじゃね?
723デフォルトの名無しさん (ワッチョイ c104-Om/S)
2018/09/24(月) 20:50:32.86ID:I/nCcJf20 まぁ、名前を聞くようになったのはツイッターあたりからやね。
江添氏はコードのお作法がおかしいと食いついたりしてたし、委員会に近いところにいたのでそういう情報を発していた。
けど、個人ではあまりコードは書いてないみたいだな。
ボレロ氏は高専言いっててそこらへんで色々学んでconstexprライブラリで名前を売ったってところはある。
その後縮小して最近コードを書いているという話は聞いてないような。
どっちも有名になったのはこの世の不満とオタクの人権みたいなのを発していたら有名になったってところはある。と思ってる。
江添氏はコードのお作法がおかしいと食いついたりしてたし、委員会に近いところにいたのでそういう情報を発していた。
けど、個人ではあまりコードは書いてないみたいだな。
ボレロ氏は高専言いっててそこらへんで色々学んでconstexprライブラリで名前を売ったってところはある。
その後縮小して最近コードを書いているという話は聞いてないような。
どっちも有名になったのはこの世の不満とオタクの人権みたいなのを発していたら有名になったってところはある。と思ってる。
724デフォルトの名無しさん (ワッチョイ 2d48-coYL)
2018/09/24(月) 21:16:51.40ID:GIs1tf8Y0 誰にでもウイークポイントはある
そこを苛める遊びに固執する阿呆は誰からも何も学べないまま
自らがウイークポイントのみからなるコンパクト星として成長するのみ
世の中の誰からも軽蔑しか受けない天涯孤独な存在だ
そこを苛める遊びに固執する阿呆は誰からも何も学べないまま
自らがウイークポイントのみからなるコンパクト星として成長するのみ
世の中の誰からも軽蔑しか受けない天涯孤独な存在だ
725デフォルトの名無しさん (ワッチョイ 01b3-coYL)
2018/09/24(月) 21:32:17.37ID:XuY/8j5Q0 まぁ江添氏は委員会の人間だしコードあんま書いてなくても日本のC++ユーザーのために
仕様の解説してくれてるしね
ボレロ氏は・・・まぁその・・・・・生産性あるんだか無いんだかよくわからんライブラリ作ってるというか
あれはあれで勉強になるけど・・・・w
ただ初心者が「ああなりたい」ってよく言ってるのは理解に苦しむな
中途半端な知識でドヤ顔するのでなく、真摯に解説するサイトでも作ってくれりゃ価値があるけど
個人的には彼らを崇拝する人を見るたびに、もやもやした気分になる
言語は道具なんだから使ってなんぼやろ・・・
仕様の解説してくれてるしね
ボレロ氏は・・・まぁその・・・・・生産性あるんだか無いんだかよくわからんライブラリ作ってるというか
あれはあれで勉強になるけど・・・・w
ただ初心者が「ああなりたい」ってよく言ってるのは理解に苦しむな
中途半端な知識でドヤ顔するのでなく、真摯に解説するサイトでも作ってくれりゃ価値があるけど
個人的には彼らを崇拝する人を見るたびに、もやもやした気分になる
言語は道具なんだから使ってなんぼやろ・・・
726デフォルトの名無しさん (ワッチョイ 694e-BR5k)
2018/09/24(月) 21:37:21.19ID:SA5x5JnZ0 >>725
まあ結局言語は道具といっても、作ったものが革新性があったり、真似できないようなら人気を集めるような気がするんだよね
東方のZUNとか別にそこまで凄いゲームでもないけど、プログラマーとしてそこそこ尊敬されてる
まあ結局言語は道具といっても、作ったものが革新性があったり、真似できないようなら人気を集めるような気がするんだよね
東方のZUNとか別にそこまで凄いゲームでもないけど、プログラマーとしてそこそこ尊敬されてる
727デフォルトの名無しさん (ワッチョイ 469f-onpN)
2018/09/24(月) 21:59:39.82ID:dKKNaNpJ0 仕事でコード書いてたらc++の最新の仕様を追えないからやらない
とか本気で言ってしまう奴は根本が腐ってると思うよ。
言ってて矛盾を感じないのかと。
とか本気で言ってしまう奴は根本が腐ってると思うよ。
言ってて矛盾を感じないのかと。
728デフォルトの名無しさん (ワッチョイ c1eb-tHrl)
2018/09/24(月) 22:02:16.29ID:orHhPIQU0 目標が名声なのか、C++理解度なのか・・・
粛々とコード書き続けるのが一番
粛々とコード書き続けるのが一番
729デフォルトの名無しさん (ワッチョイ 694e-BR5k)
2018/09/24(月) 22:40:40.71ID:SA5x5JnZ0 >>728
もちろん理解度なんだけど、何となく日本以外だと彼らしか目標とする人物が見つからなくて
もちろん理解度なんだけど、何となく日本以外だと彼らしか目標とする人物が見つからなくて
730デフォルトの名無しさん (ワッチョイ 82b3-coYL)
2018/09/24(月) 22:55:21.63ID:CvpxIDb80 ISO/IEC読んでworking draft読んでおまけにg++/clangの実装で読んで
それでみんが知らなそうな重箱をつつくような仕様拾ってきてブログのネタに
すればいいんでないの?知らんけど
それでみんが知らなそうな重箱をつつくような仕様拾ってきてブログのネタに
すればいいんでないの?知らんけど
731デフォルトの名無しさん (ワッチョイ 01b3-coYL)
2018/09/24(月) 22:59:57.25ID:XuY/8j5Q0 まぁ日本だと、解説サイトで目につく人ってそんなもんか
ZUN氏挙げるのははちょっと不思議だけど・・・
以前東方に使われてる技術の解説がどこかにあったけど、
タスクシステムみたいな古くからある2Dシューティングの常套手段とかしか記憶にない
(なんか驚くようなのもあったかもしれんけど
仕事で書いてると驚くようなコードとか設計をあちこちで見かけるけど、
そういうの書くのはやっぱ誰も知らない無名の職業プログラマだったりするよ
ZUN氏挙げるのははちょっと不思議だけど・・・
以前東方に使われてる技術の解説がどこかにあったけど、
タスクシステムみたいな古くからある2Dシューティングの常套手段とかしか記憶にない
(なんか驚くようなのもあったかもしれんけど
仕事で書いてると驚くようなコードとか設計をあちこちで見かけるけど、
そういうの書くのはやっぱ誰も知らない無名の職業プログラマだったりするよ
732デフォルトの名無しさん (JP 0Hc9-i7GN)
2018/09/24(月) 23:31:07.79ID:nTOSaHPIH >>731
今もそういう夢いっぱいな話あるの?
昔のファミコンソフトがスーパーテクニックの塊だった、みたいな
最近はリソースが潤沢にあって、手抜きのとりあえず動くプログラムが蔓延しているのだと思ってた
今もそういう夢いっぱいな話あるの?
昔のファミコンソフトがスーパーテクニックの塊だった、みたいな
最近はリソースが潤沢にあって、手抜きのとりあえず動くプログラムが蔓延しているのだと思ってた
733デフォルトの名無しさん (ワッチョイ 82b3-coYL)
2018/09/24(月) 23:43:30.13ID:CvpxIDb80 今でもゲーム系はスーパーテクニック満載でしょ
マルチコアCPUを90%以上使い倒す世界だからな、すげーわ
マルチコアCPUを90%以上使い倒す世界だからな、すげーわ
734デフォルトの名無しさん (ワッチョイ 01b3-coYL)
2018/09/24(月) 23:47:03.19ID:XuY/8j5Q0 >>732
自分は半端者なんで知識はアレだけど、GTAシリーズとかEAのゲームとか
ああいうのは今でもリソース必死に使い切ってるみたいよ
(Game Programming Gemsとか読んでみたらその片鱗が見える)
スーファミ時代のような変態的なのとは方向性が違ってきてるけど
大規模な開発の上でいかにパフォーマンス損なわずに開発効率を上げるかが重視されてる
もちろん2Dのスマホゲーだったら全然使い切る必要ないだろうけど、そっち方面は詳しくない
(多分言語もC#かSwiftが主流?移植性考えたらC#だろうな
自分は半端者なんで知識はアレだけど、GTAシリーズとかEAのゲームとか
ああいうのは今でもリソース必死に使い切ってるみたいよ
(Game Programming Gemsとか読んでみたらその片鱗が見える)
スーファミ時代のような変態的なのとは方向性が違ってきてるけど
大規模な開発の上でいかにパフォーマンス損なわずに開発効率を上げるかが重視されてる
もちろん2Dのスマホゲーだったら全然使い切る必要ないだろうけど、そっち方面は詳しくない
(多分言語もC#かSwiftが主流?移植性考えたらC#だろうな
735デフォルトの名無しさん (JP 0Hc9-i7GN)
2018/09/25(火) 00:00:26.48ID:C9Mx85q+H へぇ〜〜〜面白い
「どの業界は超人多い」みたいのあるんだろうか
「どの業界は超人多い」みたいのあるんだろうか
736デフォルトの名無しさん (ワッチョイ 01b3-coYL)
2018/09/25(火) 00:05:28.27ID:bpDEi/Vx0 個人的にはF-35のソースが読んでみたいw
737デフォルトの名無しさん (ワッチョイ 19b3-vwf2)
2018/09/25(火) 06:17:40.32ID:NMIb1H0N0 >>736
さすがにF35のソースは見たことないけど、軍事関係や命に関わるコードはむしろ枯れた技術以外使わないんじゃないかな?
ECUとかはとんでもなく古い考え方(ほぼ全ての変数がグローバル)で作られてるし。
まぁECUの場合それはそれでちゃんと理由があるんだけどね。
さすがにF35のソースは見たことないけど、軍事関係や命に関わるコードはむしろ枯れた技術以外使わないんじゃないかな?
ECUとかはとんでもなく古い考え方(ほぼ全ての変数がグローバル)で作られてるし。
まぁECUの場合それはそれでちゃんと理由があるんだけどね。
738デフォルトの名無しさん (オッペケ Sr71-i7GN)
2018/09/25(火) 06:26:38.28ID:cr5GGQ8dr 多次元配列クラス Tensor があるとして、そのインスタンス a は a[2][5][3] のように要素アクセスできるとします。
unique_ptr<Tensor> pa(new Tensor);
のように Tensor のスマートポインタを作った場合、pa の指してる Tensor への要素アクセスってどうやるのでしょうか。
「Tensor」の設計の詳細が必要であれば、boost の multi_array と同じとしていただいて問題ありません。
unique_ptr<Tensor> pa(new Tensor);
のように Tensor のスマートポインタを作った場合、pa の指してる Tensor への要素アクセスってどうやるのでしょうか。
「Tensor」の設計の詳細が必要であれば、boost の multi_array と同じとしていただいて問題ありません。
739デフォルトの名無しさん (ワッチョイ 2d48-coYL)
2018/09/25(火) 07:37:41.21ID:ovBx3cXW0 (*pa)[2][5][3]
740デフォルトの名無しさん (ラクッペ MMe1-BR5k)
2018/09/25(火) 08:18:12.28ID:fJAN4SxzM >>731
自分は業務でC++使ってないのでそういう経験ができないのです‥
だからこそネットで活動してる人しか分からなくて‥
C++は全て独学するしかなくて、いい方法が無いかずっと考えてるのですが、結局ネットや本を見るしかなかったです
自分は業務でC++使ってないのでそういう経験ができないのです‥
だからこそネットで活動してる人しか分からなくて‥
C++は全て独学するしかなくて、いい方法が無いかずっと考えてるのですが、結局ネットや本を見るしかなかったです
741デフォルトの名無しさん (オッペケ Sr71-i7GN)
2018/09/25(火) 12:20:54.85ID:h/rPVSH9r742デフォルトの名無しさん (ワッチョイ c212-yqSl)
2018/09/25(火) 12:31:36.38ID:HAbRzuEs0 >>741
見落とすというか……
予め正解を知っておかないと思い付くのは難しいかもしれない
そしてC++ではなくC言語的な原始的なポインタの話になるので、C++の教科書にそこまで詳しく載ってるかと言うと……
ttp://d.hatena.ne.jp/licheng/20130829/p2
ttp://www.nurs.or.jp/~sug/soft/tora/tora10.htm
ttp://tecmemo.wpblog.jp/2016/09/10/cpp-multidimensional_array/
ttp://www7b.biglobe.ne.jp/~robe/cpphtml/html03/cpp03010.html
見落とすというか……
予め正解を知っておかないと思い付くのは難しいかもしれない
そしてC++ではなくC言語的な原始的なポインタの話になるので、C++の教科書にそこまで詳しく載ってるかと言うと……
ttp://d.hatena.ne.jp/licheng/20130829/p2
ttp://www.nurs.or.jp/~sug/soft/tora/tora10.htm
ttp://tecmemo.wpblog.jp/2016/09/10/cpp-multidimensional_array/
ttp://www7b.biglobe.ne.jp/~robe/cpphtml/html03/cpp03010.html
743デフォルトの名無しさん (ワッチョイ 01b3-FIjQ)
2018/09/25(火) 13:46:02.72ID:rTSM83rL0744デフォルトの名無しさん (ワッチョイ 01b3-FIjQ)
2018/09/25(火) 13:48:52.76ID:rTSM83rL0 そういえば以前ここで似たようなこと言ったら
「愚者は経験に学び、賢者は歴史に学ぶ」とか言われたなw
ああいうアホになるんだよ、言語の知識だけに閉じこもって何も開発せずにいると
「愚者は経験に学び、賢者は歴史に学ぶ」とか言われたなw
ああいうアホになるんだよ、言語の知識だけに閉じこもって何も開発せずにいると
745デフォルトの名無しさん (ワッチョイ 2d48-coYL)
2018/09/25(火) 20:49:31.31ID:ovBx3cXW0 人は繰り返し、神は再帰する
746デフォルトの名無しさん (ワッチョイ 2260-9U/T)
2018/09/25(火) 21:21:29.13ID:CZcrESgD0747デフォルトの名無しさん (ワッチョイ 2d8a-9DVt)
2018/09/25(火) 21:28:11.49ID:LXnmrKE+0 >>746
ggrks
ggrks
748デフォルトの名無しさん (ワッチョイ 42bd-LgAV)
2018/09/25(火) 22:53:16.70ID:uqsQEMjV0 >>689
>(Java でいうところの) インターフェイスは型の性質を事前に網羅しなきゃ
>全体のデザインが定まらない。
無いメソッドを呼べる言語は存在しないからこれは仕方が無い(ジャバに限らん
ジャバに限らずインターフェースには利用者が絶対呼ぶメソッドだけではなく、
呼ぶかもしれないメソッドも全部packing listに入れねばならない点が無駄が大きい
その代わり、インターフェースのメソッドはビルド単位内で一意な名前(インターフェース名)で
(直接的あるいは間接的に)修飾されるから、同じメソッド名で違う機能のやつがあっても
衝突せず、安全性が保たれる
テンプレートはこの点だけがちょっと劣る
これ以外にテンプレートに欠点など無i
>(Java でいうところの) インターフェイスは型の性質を事前に網羅しなきゃ
>全体のデザインが定まらない。
無いメソッドを呼べる言語は存在しないからこれは仕方が無い(ジャバに限らん
ジャバに限らずインターフェースには利用者が絶対呼ぶメソッドだけではなく、
呼ぶかもしれないメソッドも全部packing listに入れねばならない点が無駄が大きい
その代わり、インターフェースのメソッドはビルド単位内で一意な名前(インターフェース名)で
(直接的あるいは間接的に)修飾されるから、同じメソッド名で違う機能のやつがあっても
衝突せず、安全性が保たれる
テンプレートはこの点だけがちょっと劣る
これ以外にテンプレートに欠点など無i
749デフォルトの名無しさん (ワッチョイ 82b3-coYL)
2018/09/26(水) 00:16:16.58ID:XAX5fYE80 バイナリインターフェースが重要なシステムもあるわけで
750デフォルトの名無しさん (ラクッペ MMe1-BR5k)
2018/09/26(水) 13:25:47.21ID:3bFkpdGnM C++とシェルスクリプトの違いって何ですか?
シェルスクリプトで出来ることでC++ができないこと
C++が出来てシェルスクリプトで出来ないこととかそういう具体例を教えてほしいです。
シェルスクリプトで出来ることでC++ができないこと
C++が出来てシェルスクリプトで出来ないこととかそういう具体例を教えてほしいです。
751デフォルトの名無しさん (ラクッペ MMe1-BR5k)
2018/09/26(水) 13:28:14.24ID:3bFkpdGnM >>750
個人的に上げるとしたら、webのフロントエンド分野はインタプリタに勝てないと思います
個人的に上げるとしたら、webのフロントエンド分野はインタプリタに勝てないと思います
752デフォルトの名無しさん (ワッチョイ 4234-CvAF)
2018/09/26(水) 13:35:28.26ID:8zK/b6uE0 比較の対象が違い杉
753さまよえる蟻人間 ◆T6xkBnTXz7B0 (スププ Sd62-gRel)
2018/09/26(水) 13:35:54.34ID:NuaJwewid >>750
C++はコンパイルしないと動かない。シェルスクリプトはファイルの操作やバッチ処理が得意。
C++はコンパイルしないと動かない。シェルスクリプトはファイルの操作やバッチ処理が得意。
754デフォルトの名無しさん (ワッチョイ 2d8a-9DVt)
2018/09/26(水) 14:01:36.87ID:3yW6iUgn0 >>750
デバドラをスクリプトで書いてみてくれ
デバドラをスクリプトで書いてみてくれ
755デフォルトの名無しさん (アークセー Sx71-vwf2)
2018/09/26(水) 14:29:30.26ID:lYIfIhjTx >>750
桃白白とラウチェン、マジンガーZとテコンVぐらい違う。
桃白白とラウチェン、マジンガーZとテコンVぐらい違う。
756デフォルトの名無しさん (ワッチョイ 4223-tHrl)
2018/09/26(水) 14:43:50.80ID:zEt8XtGI0 >>750
GUI使ったアプリはシェルスクリプトでは無理
GUI使ったアプリはシェルスクリプトでは無理
757デフォルトの名無しさん (ラクッペ MMe1-BR5k)
2018/09/26(水) 14:51:55.15ID:3bFkpdGnM758デフォルトの名無しさん (JP 0Hd6-Y82R)
2018/09/26(水) 15:12:38.31ID:nKPhFdqbH C++というかオブジェクト指向の質問かもしれないんですけど
エクセルにデータを書き出すためのクラスがありましてメソッドがざっとこんな感じ
・データをファイルから読み込む
・シート作成(ここで以下のメソッドを呼び出す)
・シートAに書き出す
・シートBに書き出す
︙
・シートEに書き出す
全体で1000行ほどなんですけど、例えばシートに書き出す共通部を親クラスにして、
それを継承した各シート毎に書き出すクラスを作るみたいなこと考えてます。
ただ正直あまり意味が無いような気もするんですよ。クラスと言うには小さすぎるものになりそうですし。
何行超えたらでかいだろとか何行なんてクラスとしては小さすぎるだろみたいなラインってありますかね
エクセルにデータを書き出すためのクラスがありましてメソッドがざっとこんな感じ
・データをファイルから読み込む
・シート作成(ここで以下のメソッドを呼び出す)
・シートAに書き出す
・シートBに書き出す
︙
・シートEに書き出す
全体で1000行ほどなんですけど、例えばシートに書き出す共通部を親クラスにして、
それを継承した各シート毎に書き出すクラスを作るみたいなこと考えてます。
ただ正直あまり意味が無いような気もするんですよ。クラスと言うには小さすぎるものになりそうですし。
何行超えたらでかいだろとか何行なんてクラスとしては小さすぎるだろみたいなラインってありますかね
759デフォルトの名無しさん (ワッチョイ 4223-y24S)
2018/09/26(水) 15:23:36.10ID:dRFURWqC0 それは単に
メソッド シート作成(){
シートAに書き出す
シートBに書き出す
︙
シートEに書き出す
}
ということ?それとも
class A {
メソッド シート作成(){
シートAに書き出す
}
class B {
メソッド シート作成(){
シートBに書き出す
}
ということ?
前者ならクラス分ける意味がないと思うが。
メソッド シート作成(){
シートAに書き出す
シートBに書き出す
︙
シートEに書き出す
}
ということ?それとも
class A {
メソッド シート作成(){
シートAに書き出す
}
class B {
メソッド シート作成(){
シートBに書き出す
}
ということ?
前者ならクラス分ける意味がないと思うが。
760デフォルトの名無しさん (ワッチョイ 2d8a-9DVt)
2018/09/26(水) 15:33:15.98ID:3yW6iUgn0 >>756
Tcl/Tk の立場は?
Tcl/Tk の立場は?
761デフォルトの名無しさん (ワッチョイ 5dc3-teld)
2018/09/26(水) 19:56:11.35ID:oECBSnBC0 クラスは行数じゃなくて意味的にまとまってるかどうかだからな
意味のあるメンバがまとまってれば1万行の単一クラスがあってもいいし
デタラメに寄り集められた50行の粗大ゴミクラスもある
そういうもの
意味のあるメンバがまとまってれば1万行の単一クラスがあってもいいし
デタラメに寄り集められた50行の粗大ゴミクラスもある
そういうもの
762デフォルトの名無しさん (アウアウウー Sa25-xOzC)
2018/09/26(水) 20:09:57.19ID:LRnZd7JJa >>761
数字が逆じゃないか?
数字が逆じゃないか?
763デフォルトの名無しさん (ワッチョイ cde3-tHrl)
2018/09/26(水) 20:16:07.55ID:ME0063O80 >>758
>何行超えたらでかいだろとか何行なんてクラスとしては小さすぎるだろみたいなラインってありますかね
ないよ
機能で分けれ
>例えばシートに書き出す共通部を親クラスにして、
>それを継承した各シート毎に書き出すクラスを作るみたいなこと考えてます。
「書く内容を決める」機能が「シートに書く」機能を継承するなんてナンセンス
どのシートに書くかなんて「シートに書く」機能に引数で渡せばいいだけ
>何行超えたらでかいだろとか何行なんてクラスとしては小さすぎるだろみたいなラインってありますかね
ないよ
機能で分けれ
>例えばシートに書き出す共通部を親クラスにして、
>それを継承した各シート毎に書き出すクラスを作るみたいなこと考えてます。
「書く内容を決める」機能が「シートに書く」機能を継承するなんてナンセンス
どのシートに書くかなんて「シートに書く」機能に引数で渡せばいいだけ
764デフォルトの名無しさん (ワッチョイ 5dc3-teld)
2018/09/26(水) 20:55:21.65ID:oECBSnBC0765デフォルトの名無しさん (ワッチョイ bf9f-e6iu)
2018/09/27(木) 00:26:48.70ID:zZL/tnLy0 さすがに一万行でまとまってるクラスってのはないわ。。
766デフォルトの名無しさん (ワッチョイ 5780-q1nr)
2018/09/27(木) 00:28:50.85ID:pq96CSzd0 もしかして知恵遅れは
なんか書くために毎度毎度ofstreamを継承すんの
もしかして知恵遅れは
なんか読むために毎度毎度ifstreamを継承すんの
さすが
なんか書くために毎度毎度ofstreamを継承すんの
もしかして知恵遅れは
なんか読むために毎度毎度ifstreamを継承すんの
さすが
767デフォルトの名無しさん (ワッチョイ ff80-LozN)
2018/09/27(木) 00:36:33.47ID:3iNJ0doV0 例えば、基本クラスに出力クラスを作って、
派生クラスに、プリンター・PDF など、機能が異なるならオブジェクト指向だけど、
機能が同じなら、派生クラスではない。
単に、属性・メンバ変数が変わるだけ
派生クラスに、プリンター・PDF など、機能が異なるならオブジェクト指向だけど、
機能が同じなら、派生クラスではない。
単に、属性・メンバ変数が変わるだけ
768デフォルトの名無しさん (ワッチョイ 5780-q1nr)
2018/09/27(木) 00:50:27.91ID:pq96CSzd0 void aho::write(ostream& aho) const {
aho << "aho" << endl;
aho << "baka" << endl;
aho << "manuke" << endl;
}
こんな感じで作っとけば
いろんなもんに書ける可能性がある
抽象化をうまく利用するというのは
こういうことだからな
aho << "aho" << endl;
aho << "baka" << endl;
aho << "manuke" << endl;
}
こんな感じで作っとけば
いろんなもんに書ける可能性がある
抽象化をうまく利用するというのは
こういうことだからな
769デフォルトの名無しさん (JP 0H2b-tojA)
2018/09/27(木) 05:39:28.23ID:DR3ASZ+QH 江添亮に匿名で質問ができて、高確率で答えが帰ってくる空間ってもうないのでしょうか
770デフォルトの名無しさん (ワッチョイ bf9f-e6iu)
2018/09/27(木) 07:33:12.06ID:zZL/tnLy0 本人のtwitterにでも投げれば?
高確率で「質問ではない」が帰ってくるが。
高確率で「質問ではない」が帰ってくるが。
771デフォルトの名無しさん (ワッチョイ 9fbd-G9Ql)
2018/09/27(木) 07:58:37.31ID:GSDkLsyd0 >>750
シェルスクリプトだけではシェルスクリプトを解釈実行することはできない
C++からならできる
つまりシェルスクリプトだけでは金輪際できない仕事というのは少なくとも1つある
もっともこの宇宙自体がシェルスクリプト上で走っているシミュレーションなら話は別やが…
シェルスクリプトだけではシェルスクリプトを解釈実行することはできない
C++からならできる
つまりシェルスクリプトだけでは金輪際できない仕事というのは少なくとも1つある
もっともこの宇宙自体がシェルスクリプト上で走っているシミュレーションなら話は別やが…
772デフォルトの名無しさん (ワッチョイ 9fb3-aemA)
2018/09/27(木) 08:51:58.83ID:Ct84HJ0d0 c++はコンパイラいるやろが
773デフォルトの名無しさん (ブーイモ MM5b-d72i)
2018/09/27(木) 09:07:42.86ID:eHS6051wM そんな規約あったっけ?
Cling とか CINT はパチモノ?
Cling とか CINT はパチモノ?
774デフォルトの名無しさん (ワッチョイ 37d2-aemA)
2018/09/27(木) 13:29:28.75ID:lX4OM9LG0 >>768
そういうのは、templateのほうがいい。ostreamに依存せずにすむ。
そういうのは、templateのほうがいい。ostreamに依存せずにすむ。
775デフォルトの名無しさん (ワッチョイ 7748-aemA)
2018/09/27(木) 16:27:38.79ID:Zeo03I1R0 766からの流れでそうなっただけだろ
776デフォルトの名無しさん (ワッチョイ 37e0-OlFv)
2018/09/27(木) 16:47:26.94ID:Oj9x/TA+0 俺には誰一人として標準のstreamクラスを継承する話はしてなかったように思えてならないんだが
(最初の>>758も書き出す処理を継承で共通部分と個別部分に分ける案を問うているだけ)
なんでそういう話になってるんだっけ
(最初の>>758も書き出す処理を継承で共通部分と個別部分に分ける案を問うているだけ)
なんでそういう話になってるんだっけ
777デフォルトの名無しさん (ワッチョイ 9f23-brPT)
2018/09/27(木) 20:48:20.83ID:vb6QqVUs0778デフォルトの名無しさん (ワッチョイ 1704-ClIk)
2018/09/27(木) 20:54:25.22ID:/ZxE29S10 関数にすると不味いことある?
779デフォルトの名無しさん (ワッチョイ 37e0-OlFv)
2018/09/27(木) 21:00:15.42ID:Oj9x/TA+0780デフォルトの名無しさん (ワッチョイ 1704-ClIk)
2018/09/27(木) 21:09:44.86ID:/ZxE29S10 最初にクラスを設計し始めるのは筋が悪いと思ってる。そんな3流プログラマ。
781デフォルトの名無しさん (ワッチョイ 9fbd-G9Ql)
2018/09/27(木) 23:22:58.17ID:GSDkLsyd0 訂正;
△:シェルスクリプトだけではシェルスクリプトを解釈実行することはできない
○:シェルスクリプトがあるだけではシェルスクリプトの解釈実行を開始することはできない
シェルスクリプトはもちろんシェルスクリプトから呼ばれるシステムコールその他の
一切合財をシェルスクリプト上だけでシミュレートする能力がある(と思う)が
全ての始まりを起こすのにC/C++で書かれたOSを要する
>>780
つまりクラスの設計はおくらすのが正しい
△:シェルスクリプトだけではシェルスクリプトを解釈実行することはできない
○:シェルスクリプトがあるだけではシェルスクリプトの解釈実行を開始することはできない
シェルスクリプトはもちろんシェルスクリプトから呼ばれるシステムコールその他の
一切合財をシェルスクリプト上だけでシミュレートする能力がある(と思う)が
全ての始まりを起こすのにC/C++で書かれたOSを要する
>>780
つまりクラスの設計はおくらすのが正しい
782デフォルトの名無しさん (ワッチョイ 9f1b-0IEC)
2018/09/27(木) 23:59:38.23ID:RQl7S0Gm0 来たよ、暇なので
783デフォルトの名無しさん (ワッチョイ 77e3-c2ki)
2018/09/28(金) 09:32:22.81ID:hWUH9Sli0 最新のC++コンパイラが使えないので質問。
右辺値参照が仮引数になっている以下のような関数があった場合、
aaa(左辺値の変数);
とすると、ちゃんと、aaa() は呼び出される?
それともエラーになる?
void aaa(T&& a)
{
・・・
}
右辺値参照が仮引数になっている以下のような関数があった場合、
aaa(左辺値の変数);
とすると、ちゃんと、aaa() は呼び出される?
それともエラーになる?
void aaa(T&& a)
{
・・・
}
784デフォルトの名無しさん (アウアウカー Saab-NM1n)
2018/09/28(金) 09:39:47.21ID:UtPWkOJga >>1のオンラインコンパイラを使おう
785はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-aemA)
2018/09/28(金) 09:40:07.87ID:7KXXqv1B0786デフォルトの名無しさん (ワッチョイ 77e3-c2ki)
2018/09/28(金) 09:48:18.84ID:hWUH9Sli0 >>784
どこにあるの?
どこにあるの?
787デフォルトの名無しさん (ワッチョイ 77e3-c2ki)
2018/09/28(金) 09:53:42.38ID:hWUH9Sli0 では、aaa()に次のようなoverloadがある場合は、「2」の方が呼び出されて、
#if の部分を 0 にすると、「1」が呼び出される?
だとすると、昔のC++では無かったような overloadの仕様かも?
T b;
aaa(b); // bは左辺値のつもり
void aaa(T&& a)
{
puts("1, 右辺値参照、T&& に来たよ。");
}
#if 1
void aaa(T& a)
{
puts("2, 左辺値参照、T& に来たよ。");
}
#endif
#if の部分を 0 にすると、「1」が呼び出される?
だとすると、昔のC++では無かったような overloadの仕様かも?
T b;
aaa(b); // bは左辺値のつもり
void aaa(T&& a)
{
puts("1, 右辺値参照、T&& に来たよ。");
}
#if 1
void aaa(T& a)
{
puts("2, 左辺値参照、T& に来たよ。");
}
#endif
788デフォルトの名無しさん (ワッチョイ 9f23-brPT)
2018/09/28(金) 10:13:48.61ID:WRA8TBfa0789デフォルトの名無しさん (ワッチョイ 7748-aemA)
2018/09/28(金) 10:23:34.25ID:RVKB6eOl0 >>783
呼び出されない
右辺値参照は左辺値を受け取らない(原則)
ただしTがテンプレート仮引数の場合と、auto&&の場合は、
右辺値参照で左辺値を受け取れる(特例)
型を推定させた場合に限り、右辺値参照は、
左辺値参照への左辺値参照に変形できる
呼び出されない
右辺値参照は左辺値を受け取らない(原則)
ただしTがテンプレート仮引数の場合と、auto&&の場合は、
右辺値参照で左辺値を受け取れる(特例)
型を推定させた場合に限り、右辺値参照は、
左辺値参照への左辺値参照に変形できる
790デフォルトの名無しさん (ワッチョイ 77e3-c2ki)
2018/09/28(金) 10:32:29.28ID:hWUH9Sli0 [Compile and Execute C++11 Online (GNU GCC v7.1.1)]
https://www.tutorialspoint.com/compile_cpp11_online.php
で下の方のコードを試したら、
$g++ -std=c++11 -o main *.cpp
main.cpp: In function ‘int main()’:
main.cpp:18:10: error: cannot bind rvalue reference of type ‘TPerson&&’ to lvalue of type ‘TPerson’
aaa(b); // bは左辺値のつもり
^
main.cpp:8:6: note: initializing argument 1 of ‘void aaa(TPerson&&)’
void aaa(TPerson && a)
^~~
というエラーになった。gcc 7.1.1 では、>>785 の言ってくれたことと合ってない???
https://www.tutorialspoint.com/compile_cpp11_online.php
で下の方のコードを試したら、
$g++ -std=c++11 -o main *.cpp
main.cpp: In function ‘int main()’:
main.cpp:18:10: error: cannot bind rvalue reference of type ‘TPerson&&’ to lvalue of type ‘TPerson’
aaa(b); // bは左辺値のつもり
^
main.cpp:8:6: note: initializing argument 1 of ‘void aaa(TPerson&&)’
void aaa(TPerson && a)
^~~
というエラーになった。gcc 7.1.1 では、>>785 の言ってくれたことと合ってない???
791デフォルトの名無しさん (ワッチョイ 77e3-c2ki)
2018/09/28(金) 10:33:03.33ID:hWUH9Sli0 >>790
[続き]
#include <stdio.h>
struct TPerson {
int m_age;
};
void aaa(TPerson && a)
{
puts("1, 右辺値参照、T&& に来たよ。");
}
int main()
{
printf("Hello, World!\n");
TPerson b;
aaa(b); // bは左辺値のつもり
return 0;
}
[続き]
#include <stdio.h>
struct TPerson {
int m_age;
};
void aaa(TPerson && a)
{
puts("1, 右辺値参照、T&& に来たよ。");
}
int main()
{
printf("Hello, World!\n");
TPerson b;
aaa(b); // bは左辺値のつもり
return 0;
}
792はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-aemA)
2018/09/28(金) 10:35:31.98ID:7KXXqv1B0 あれ? ごめん。
確かめたら呼び出されなかった。
勘違いしてたかも
確かめたら呼び出されなかった。
勘違いしてたかも
793はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-aemA)
2018/09/28(金) 10:39:58.90ID:7KXXqv1B0 あ、逆の場合と混同してた。
const T& に rvalue がマッチするんだった。
このあたりのルール、なんか一貫性がない感じがする。
const T& に rvalue がマッチするんだった。
このあたりのルール、なんか一貫性がない感じがする。
794デフォルトの名無しさん (ワッチョイ 77e3-c2ki)
2018/09/28(金) 10:40:42.82ID:hWUH9Sli0 >>792
でも、以下の std::move() の実装の説明だとあなたの言ってる方が正しい気がする。
https://stackoverflow.com/questions/36206764/understanding-the-code-for-stdmove
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2027.html#Move_Semantics
The move function really does very little work. All move does is accept
either an lvalue or rvalue argument, and return it as an rvalue
without triggering a copy construction:
template <class T>
typename remove_reference<T>::type &&move(T &&a)
{
return a;
}
It is now up to client code to overload key functions on whether
their argument is an lvalue or rvalue (e.g. copy constructor and
assignment operator). When the argument is an lvalue,
the argument must be copied from.
When it is an rvalue, it can safely be moved from.
でも、以下の std::move() の実装の説明だとあなたの言ってる方が正しい気がする。
https://stackoverflow.com/questions/36206764/understanding-the-code-for-stdmove
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2027.html#Move_Semantics
The move function really does very little work. All move does is accept
either an lvalue or rvalue argument, and return it as an rvalue
without triggering a copy construction:
template <class T>
typename remove_reference<T>::type &&move(T &&a)
{
return a;
}
It is now up to client code to overload key functions on whether
their argument is an lvalue or rvalue (e.g. copy constructor and
assignment operator). When the argument is an lvalue,
the argument must be copied from.
When it is an rvalue, it can safely be moved from.
795デフォルトの名無しさん (ワッチョイ 77e3-c2ki)
2018/09/28(金) 10:44:16.75ID:hWUH9Sli0796デフォルトの名無しさん (ワッチョイ 77e3-c2ki)
2018/09/28(金) 10:49:49.55ID:hWUH9Sli0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
