!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part162
https://mevius.5ch.net/test/read.cgi/tech/1667194175/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C++相談室 part163
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ bbda-Axul)
2022/12/30(金) 23:16:31.37ID:DPUEZfMS02デフォルトの名無しさん (ワッチョイ a1c2-dmhP)
2022/12/30(金) 23:48:59.52ID:4Hd9NmeQ0 ≫1 << 乙 << endl;
3デフォルトの名無しさん (ワッチョイ 9a69-Ejmh)
2022/12/31(土) 09:58:55.55ID:wqRRT9ag0 皆さまあけましておめでとうございます
今年もよろしくお願いします
今日も今日とて相談がございます
基底クラスのポインタを格納できるコンテナに押し込んだ派生クラスへのポインタから、その派生クラスのインスタンスをユニークポインタで生成し、それを規定クラスのユニークポインタに押し込んで使いたいです
std::vector<Base*> BaseCnt;
Driv1 Driv1_;
Driv2 Driv2_;
Driv3 Driv3_;
BaseCnt.push_back(&Driv1_);
BaseCnt.push_back(&Driv2_);
BaseCnt.push_back(&Driv3_);
~数々の名誉ある処理を挟んで……~
std::unique_ptr<Base> BaseUni;
BaseUni=どうにかして実体をユニポで生成する関数(BaseCnt.back());
BaseUni->Update();//ここで望んでいる挙動はDriv3のオーバーライドでございます
上記の、どうにかして実体をユニポで生成する関数、が実現できなくて困っています
template<typename T>
std::unique_ptr<Base>&& theFunc(T*t)
{
return std::make_unique<T>();
}
で行けるのかなと思いましたがいけませんでした(^^)……
そもそも基底クラスに押し込んであるため、T型で受けると基底型になってしまいます(^_^)……
どうにかして派生クラスにメモリを確保し、かつそれを規定クラスのユニークポインタに押し込めないものでしょうか?
このままでは年が越せない……
どうかおしえてください
私はc++プリミティブの混乱予約型言語でございます……
今年もよろしくお願いします
今日も今日とて相談がございます
基底クラスのポインタを格納できるコンテナに押し込んだ派生クラスへのポインタから、その派生クラスのインスタンスをユニークポインタで生成し、それを規定クラスのユニークポインタに押し込んで使いたいです
std::vector<Base*> BaseCnt;
Driv1 Driv1_;
Driv2 Driv2_;
Driv3 Driv3_;
BaseCnt.push_back(&Driv1_);
BaseCnt.push_back(&Driv2_);
BaseCnt.push_back(&Driv3_);
~数々の名誉ある処理を挟んで……~
std::unique_ptr<Base> BaseUni;
BaseUni=どうにかして実体をユニポで生成する関数(BaseCnt.back());
BaseUni->Update();//ここで望んでいる挙動はDriv3のオーバーライドでございます
上記の、どうにかして実体をユニポで生成する関数、が実現できなくて困っています
template<typename T>
std::unique_ptr<Base>&& theFunc(T*t)
{
return std::make_unique<T>();
}
で行けるのかなと思いましたがいけませんでした(^^)……
そもそも基底クラスに押し込んであるため、T型で受けると基底型になってしまいます(^_^)……
どうにかして派生クラスにメモリを確保し、かつそれを規定クラスのユニークポインタに押し込めないものでしょうか?
このままでは年が越せない……
どうかおしえてください
私はc++プリミティブの混乱予約型言語でございます……
4デフォルトの名無しさん (ワッチョイ 5a05-VGBY)
2022/12/31(土) 10:30:40.33ID:KJmYA7fT0 うだうだ長文書かんとコード全体をwandboxなりideoneなりに書いてくれや
Updateにvirtualついてないとかだったら張っ倒すぞ
Updateにvirtualついてないとかだったら張っ倒すぞ
5デフォルトの名無しさん (テテンテンテン MMb6-+uJR)
2022/12/31(土) 12:27:13.18ID:GJ3jFwbSM 確かに問題点が複数ある&想定する挙動が曖昧で分からないから、コメントのしようがない。
最小限の再現コードと期待する挙動をwandboxなりideoneなりに書いてからの話だな。
最小限の再現コードと期待する挙動をwandboxなりideoneなりに書いてからの話だな。
6デフォルトの名無しさん (ワッチョイ 8b01-4uR0)
2022/12/31(土) 12:49:15.56ID:vu28B3si0 >>3 こんなこと?
class Base;
using Base_Ptr = std::unique_ptr <Base>;
struct Base {
virtual ~Base () = default;
virtual Base_Ptr construct () const = 0;
};
struct Driv3: Base {
virtual Base_Ptr construct () const
{
return std::make_unique <Driv3> ();
}
};
int main () {
std::vector<Base*> BaseCnt;
Driv3 Driv3_;
BaseCnt.push_back(&Driv3_);
std::unique_ptr<Base> BaseUni;
BaseUni=BaseCnt.back()->construct ();
return 0;
}
class Base;
using Base_Ptr = std::unique_ptr <Base>;
struct Base {
virtual ~Base () = default;
virtual Base_Ptr construct () const = 0;
};
struct Driv3: Base {
virtual Base_Ptr construct () const
{
return std::make_unique <Driv3> ();
}
};
int main () {
std::vector<Base*> BaseCnt;
Driv3 Driv3_;
BaseCnt.push_back(&Driv3_);
std::unique_ptr<Base> BaseUni;
BaseUni=BaseCnt.back()->construct ();
return 0;
}
7デフォルトの名無しさん (ブーイモ MMe7-YJVE)
2022/12/31(土) 18:55:55.24ID:MecdUwfcM コメントは対応するコードの前後どちらに書く?
// 別行なら前だが
int i = 0;
int i = 0; // 同じ行なら後?
同じ行に書いてたものが変更で長くなって別行に移したら前後が入れ替わるの気持ち悪くない?
// 別行なら前だが
int i = 0;
int i = 0; // 同じ行なら後?
同じ行に書いてたものが変更で長くなって別行に移したら前後が入れ替わるの気持ち悪くない?
8デフォルトの名無しさん (スプッッ Sd5a-Hnty)
2022/12/31(土) 19:51:29.83ID:SJuvalLBd 基本、同じ行
無理があるときは前の行
無理があるときは前の行
9デフォルトの名無しさん (スプッッ Sd5a-Hnty)
2022/12/31(土) 19:52:40.15ID:SJuvalLBd エディタの都合に合わせてたら人間向けのメモでなくなる
10デフォルトの名無しさん (ワッチョイ 9aad-TwI4)
2022/12/31(土) 19:56:33.63ID:tNW0EEuh0 grepなどによるキーワード検索がやりやすくなるよう意識したら良い
ctagsや統合開発環境みたいな高性能な検索機能がなくても探しやすいのが理想
ctagsや統合開発環境みたいな高性能な検索機能がなくても探しやすいのが理想
11デフォルトの名無しさん (ワッチョイ 9a01-+uJR)
2022/12/31(土) 20:10:39.20ID:YncayN1e012デフォルトの名無しさん (ワッチョイ 4ecf-/EFQ)
2022/12/31(土) 20:52:41.08ID:0LppXV+K0 気持ち悪いつか、気になるものは後で見ても気になるから
そりゃ気持ちよく直すでしょ
そりゃ気持ちよく直すでしょ
13デフォルトの名無しさん (スーップ Sdba-+yQ1)
2022/12/31(土) 21:28:19.88ID:Wrtrkox0d 気持ちはわかるよ
差分ツールで見たとき差分として出ちゃうからな
差分ツールで見たとき差分として出ちゃうからな
14はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 633e-ChaJ)
2022/12/31(土) 23:41:26.87ID:Lgb5NxGE0 コメントの移動だけが (一回分のコミットとして) 差分に出るのだったらちょっと嫌な感じだけど、
周辺のコードを修正した結果として行が長くなりすぎないようにコメントの位置も変えるという話なんだから
差分ツールで見たらどうせそこらへん一帯が出るわけでしょ。
その中にコメントのちょっとした移動が含まれるかどうかなんて気にするようなもんじゃないと思うけどなぁ。
周辺のコードを修正した結果として行が長くなりすぎないようにコメントの位置も変えるという話なんだから
差分ツールで見たらどうせそこらへん一帯が出るわけでしょ。
その中にコメントのちょっとした移動が含まれるかどうかなんて気にするようなもんじゃないと思うけどなぁ。
15デフォルトの名無しさん (スプッッ Sd5a-Hnty)
2022/12/31(土) 23:56:21.90ID:thdzMSmPd 書くべきものは横着しないで書け
書かなくてよいもので油売るな
これだけのこと
書かなくてよいもので油売るな
これだけのこと
16はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 633e-ChaJ)
2023/01/01(日) 00:07:36.95ID:xRsGwj7i0 ところで私がよく使う言語に Scheme があって Scheme ではセミコロンから改行までがコメントになるんだけど、
Scheme の (というか主な LISP 系言語の) 習慣では状況によってセミコロンの数を変えるし
フォーマッタはセミコロンの数に基づいてインデントを変える。
https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html
便利な習慣だと思うんだけど他の言語ではこういうのを見ないなぁ。
Scheme の (というか主な LISP 系言語の) 習慣では状況によってセミコロンの数を変えるし
フォーマッタはセミコロンの数に基づいてインデントを変える。
https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html
便利な習慣だと思うんだけど他の言語ではこういうのを見ないなぁ。
17デフォルトの名無しさん (ワッチョイ 4ecf-/EFQ)
2023/01/01(日) 00:14:48.52ID:3UYI3pmj0 何なら、本文の途中で折り返して、行末コメントにするわ
18デフォルトの名無しさん (ワッチョイ f3c2-acQP)
2023/01/01(日) 03:55:44.18ID:zV40glZu019デフォルトの名無しさん (ブーイモ MMb6-vTgN)
2023/01/01(日) 11:42:43.03ID:83NHqx7aM コメントを同じ行に書くことはほとんどないかなあ
そもそも1行コメントで済む処理っどんなの? コメント必要なのかな?
俺は処理の塊の前に意図など含めて長文コメントを書いてる
そもそも1行コメントで済む処理っどんなの? コメント必要なのかな?
俺は処理の塊の前に意図など含めて長文コメントを書いてる
20デフォルトの名無しさん (ワッチョイ 7a28-d25T)
2023/01/01(日) 14:59:08.11ID:M9T6rHgL0 行内コメントはどこまで下げるのかと言う問題が、
foo(); // xxxとyyyを更新
assertIm(xxx) + Im(yyy) == 0); // 変換結果は共役のはず
--------->| 40 カラム?
-------------->| 56 カラム?
オートフォーマッター任せにしたいが定説が無さげ
perltidyだとなんか隣接する行コメは64カラム目か、それを超える場合は一番長いのに合わせてくれるが
コードの長さがかなり不ぞろいなとき罪悪感みある、
a(); // (aのコメント)
b(); // (bのコメント)
very_long_long_long_name_function_call_to_baz(long_long_name_param, 1234567); // (←のコメント)
foo(); // xxxとyyyを更新
assertIm(xxx) + Im(yyy) == 0); // 変換結果は共役のはず
--------->| 40 カラム?
-------------->| 56 カラム?
オートフォーマッター任せにしたいが定説が無さげ
perltidyだとなんか隣接する行コメは64カラム目か、それを超える場合は一番長いのに合わせてくれるが
コードの長さがかなり不ぞろいなとき罪悪感みある、
a(); // (aのコメント)
b(); // (bのコメント)
very_long_long_long_name_function_call_to_baz(long_long_name_param, 1234567); // (←のコメント)
21デフォルトの名無しさん (ワッチョイ 7a28-d25T)
2023/01/01(日) 15:01:54.19ID:M9T6rHgL0 あとif文の行内コメントも悩む、
if (a==b)
{
}else
if (a==b)
{
}else
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 【将棋】福間香奈 女流六冠が会見 妊娠・出産でタイトル戦の事実上不戦敗 「妊娠したら、どちらか一方を諦めないといけない状況」★2 [冬月記者★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 [Hitzeschleier★]
- ホリエモン、「持ち家=幸せという価値観は過去のもの」と断言「快適な住まいが欲しいなら、賃貸住宅を次々に替えていく」 [muffin★]
- かつや、明日からカツ丼(竹)790円→590円、ロースカツ定食830円→630円、カツカレー(竹)990円→790円 画像あり [お断り★]
- 【助けて!】Colaboの仁藤夢乃さん「暇空のせいで毎月赤字で1千万円以上寄付金が足りないの😭」 [455031798]
- 高市「中韓を挑発する発言すれば支持者のネトウヨが称賛してくれたからやめられなかったの!アタシ悪くない!」どうする? [165981677]
- 【実況】博衣こよりのえちえち声優楽プロジェクト共同研究発表会🧪
- 日銀植田発言で円安進展トヨタの株が続伸🤗ぼーくぼーく笑っちゃいます😂 [993451824]
- 高市早苗、トランプおやびんに泣きつくwwwwwwwwwwwwwwwwwwwwwwww [834922174]
- ケンモメンってなんでこんなに反日が多いの? [866936191]
