[過去ログ] C++相談室 part165 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
200
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 7932-MxBP) [sage] 2024/02/03(土) 09:26:19.03 ID:Sz70frqK0(1/2) AAS
>>199
199(1): デフォルトの名無しさん (JP 0Hbd-IHfd) [] 2024/02/03(土) 04:38:02.47 ID:bq1KvR69H(1/2) AAS
外部リンク:wandbox.org

なんか「子クラスのコンストラクタに親クラスのオブジェクトを渡して子クラスのメンバを初期化する」(?)みたいなことができちゃってるんだけど、これってどういう仕様でこうなってんの?
Wandbox上だとC++2aではコンパイルできてC++17ではコンパイルできなかったからcpprefjpのC++20の機能の一覧も見てみたけどそれらしいものはなかったし
designated initializer も C++20 からの機能なんだけど……それは脇に置く。

この場合は集成体初期化に該当する。
C++17 から基底の初期化も集成体初期化で扱えるので
child c{p};
というように初期化出来ていた。

更に C++20 では集成体初期化を丸括弧で書いても良いことになったので
child c(p);
とすることが許されるようになった。
274: デフォルトの名無しさん (ワッチョイ 12ad-hHXc) [sage] 2024/02/17(土) 12:35:51.03 ID:mUyTgSzm0(1/4) AAS
テストって想定した動作環境、データ入力に対して想定した動作をするか確認をするわけで
想定しえないエラーや割り込みに対してはテストのしようがないんだけどな
そのための例外処理だろ
311: デフォルトの名無しさん (ワッチョイ abe4-XE6S) [] 2024/03/04(月) 10:23:14.03 ID:QvxlWFfk0(2/2) AAS
10行のデータをファイルに出力するとき、例外が発生して5行だけデータが出力されてしまうのは強い保証があるとはいえない
例外が発生した際にデータを書き込む前のファイル状態に戻れば強い保証がある(例外安全である)といえる
400: デフォルトの名無しさん (ワッチョイ 31fe-/5UW) [sage] 2024/08/08(木) 04:05:43.03 ID:G3QDAupS0(1) AAS
今のANSI対応版は易しくなってると思うけどな。
不安ならアンサーブックとセットで買えば良いベ
414
(1): デフォルトの名無しさん (ワッチョイ 7f78-/FHh) [] 2024/08/24(土) 14:40:14.03 ID:yYuYqoCz0(5/6) AAS
いろいろとありがとうございます。参考になりました。
template<class T, class U> void f(T& x, U& y)
{
if constexpr ( !(std::is_same<T,double>::value &&
std::is_same<U, std::complex<T>>::value) ) static_assert(false,"ワシャ許さんぞ!!");
y=x;
}
template <class T, class U> void g(T& x, U& y)
{
static_assert( (std::is_same<T,double>::value && std::is_same<U, std::complex<T>>::v
alue),"ワシャ許さんぞ!!" );
y=x;
}
int main()
{
using namespace std;
double x=3.14159265358979;
complex<double> z;
f(x,z);
g(z,x); // 順番変えたり、xをfloatにするとエラー
cout<<z<<endl;
しかし、コンパイル時にifがつかえるんですねえ。凄いな、constexpr
442
(4): デフォルトの名無しさん (ブーイモ MM7f-5+wm) [sage] 2024/09/06(金) 11:54:45.03 ID:onD85wsiM(1) AAS
>>440
440(2): デフォルトの名無しさん (ワッチョイ 5f00-+rLF) [] 2024/09/05(木) 18:17:57.29 ID:xTcyjaky0(1) AAS
shared_ptrを使いたくなったら設計を見直すべき
マルチスレッドセーフ考えたら使わざるを得ない場合は多々ある
言ってる意味がわからないならお前は経験不足
537: デフォルトの名無しさん (ワッチョイ 7e9a-NsVU) [sage] 2024/11/08(金) 17:52:36.03 ID:k0cYSKPq0(3/5) AAS
>>536
536(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ f532-JeGG) [sage] 2024/11/08(金) 17:41:34.61 ID:Me1tPYCI0(1) AAS
名前だけ合わせても具体的な実装方法が違えばどうせクラッシュするから意図的にマングルルールを違えている。
外部リンク[html]:gcc.gnu.org
なるほど、要は「C++コンパイラ、混ぜるな危険」ということでしょうか?
635: デフォルトの名無しさん (ワッチョイ b6e7-F611) [sage] 2024/12/30(月) 02:23:21.03 ID:OlG90g3v0(1) AAS
その話はもうええわ
902: デフォルトの名無しさん (ラクッペペ MM66-XbuE) [sage] 2025/04/12(土) 16:44:12.03 ID:VGLNjbvdM(2/2) AAS
パワステの無いハンドル握ったこと無いんだろうなぁ
918: デフォルトの名無しさん (ワッチョイ bf02-ngEE) [sage] 2025/04/13(日) 01:36:41.03 ID:wr7CGYg/0(1) AAS
>>916
916(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ 2732-u90l) [sage] 2025/04/13(日) 01:02:02.66 ID:PZbFvNAM0(2/3) AAS
一度しか呼ばれないような関数は書かない (関数としてくくり出さない) とかいう方針の有名なプロジェクトがあったような気がするんだが、なんだったかわかる人はいる?
細部の処理の追いやすさとしてはそのほうが見通しがよいという論で、なるほどそういう考え方もあるんだなーと面白く思った記憶がある。
有名なというと、デビット・カトラーのNTカーネル開発ではなかったか

逆に、「関数は30行以内」だったかなルールが採用されており、
普通に描いたら40行とか行ってしまう関数を、25行ずつの呼び出し元関数と呼び出し先関数に
書き換えられることが頻繁にあった、というので有名だったのはFileMakerだったかな
975: デフォルトの名無しさん (ワッチョイ 797c-ixHo) [sage] 2025/04/24(木) 20:50:08.03 ID:4KP0cuFt0(1) AAS
vectorは境界チェックするから遅くてゴミでCの配列には必要ないから最強だって暴れてた超天才Cグラマ様おったなあ
980
(2): デフォルトの名無しさん (ワッチョイ 0a07-nw4i) [sage] 2025/04/25(金) 18:10:11.03 ID:nRYa5Nu+0(1) AAS
C++に触れるものは、遅かれ早かれ、duck test ってものを解する

バカのように振舞うな
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.048s