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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
61: デフォルトの名無しさん (ワッチョイ 7901-4XBo) [sage] 2023/11/18(土) 20:47:45.62 ID:GRi2RJZB0(1) AAS
>>60
60(1): デフォルトの名無しさん (ワッチョイ 6ecf-ekUX) [sage] 2023/11/18(土) 16:16:09.27 ID:5MckQHFy0(1) AAS
ラムダの参照キャプチャってconst参照に指定できないんだっけ?微妙に不便だな。
これじゃだめ?
#include <iostream>
using namespace std;
int main () {
const int a {0};
int b {0};
[&a, &b = const_cast <const int &> (b)] () {
++ a; // X
++ b; // X
} ();
return 0;
}
156: デフォルトの名無しさん (ワッチョイ df63-+bVA) [sage] 2024/01/13(土) 13:54:58.62 ID:rNqWj2dY0(1/3) AAS
やっぱC++の例外は悪……
構造化例外ならwindbgでコアダンプを開いて!analyze -vで発生源を調べられる(仕組みは知らん
がC++の例外は例外オブジェクトが持ち出した情報が全て……
という印象……
240: はちみつ餃子◆8X2XSCHEME (ワッチョイ f740-Kvqi) [sage] 2024/02/11(日) 07:55:26.62 ID:nHqSm2on0(1) AAS
>>237
237(2): デフォルトの名無しさん (ワッチョイ ef63-uLm/) [sage] 2024/02/11(日) 03:16:41.24 ID:4PD3HqyC0(2/5) AAS
質問なのですが
Q1. std::ldexp(0.0, 0.0) が0.0なのですがこれは 0^0 = 0という大胆な主張なのですが何で決まっているの?
STLがIEEE735に従っているだけ?

Q2. 最小の(絶対値が最小の正の)非正規化数は
const auto min_expn = std::numeric_limits<double>::min_exponent;
const auto digits = std::numeric_limits<double>::digits;
として、std::ldexp(0.5, min_expn - digits + 1) で正しい?
(実際 std::ldexp(0.5, min_expn - digits + 1) > 0.0 やが std::ldexp(0.5, min_expn - digits + 1) / 2.0 == 0.0 であっる

Q3.にもかかわらず、
std::ldexp(0.5, min_expn - digits) > 0.0 になるのはなんで……orz
決まっていない。言語仕様としては未規定。
std::numeric_limits::is_iec559 が真であるならその挙動をあてにしていいがそうでないときは各環境の事情による。
327: はちみつ餃子◆8X2XSCHEME (ワッチョイ 8732-nVjz) [sage] 2024/05/01(水) 22:29:05.62 ID:IV4TsWNk0(1) AAS
>>326
326(1): デフォルトの名無しさん (ワッチョイ 67b1-Jq5A) [] 2024/05/01(水) 21:36:46.68 ID:/DCu7vsT0(1) AAS
python みたいに何でも格納できる辞書型ってC++には無いよね?
要素を std::any にすればだいたいどんな型の値でも入れられる。
いろんな型を入れたところで使うときには元の型として取り出さないといけないから
処理は煩雑になってあまり良いことはないけど。
492
(1): デフォルトの名無しさん (ワッチョイ e39c-jZWQ) [sage] 2024/09/27(金) 19:07:06.62 ID:n6BA5joS0(3/3) AAS
>>489
489(1): デフォルトの名無しさん (ワッチョイ 728c-rNKn) [sage] 2024/09/27(金) 18:24:18.27 ID:dg7IL8lg0(1) AAS
極限のパフォーマンスは別に要らないから安全にしたいという要件なら GC が既に解決しているし
今更生ポインタを禁止したところで C# や Java と同じ方向性のナニカにしかならんじゃろ
ライブラリとかフレームワークを使う側のコーダーと作る側のライブラリアンは性能要件が全然別。

コーダーに対してライブラリアンが「コーダーのコードに極限のパフォーマンスは別に要らないから安全に「させたい」」というのはあるだろ。
614: はちみつ餃子◆8X2XSCHEME (ワッチョイ bd32-mEgI) [sage] 2024/12/01(日) 19:20:01.62 ID:rI1+OlKH0(1/2) AAS
>>610
610(1): デフォルトの名無しさん (JP 0Hf2-Dj8N) [] 2024/12/01(日) 18:28:00.78 ID:IuCKzQHfH(1/6) AAS
xxx.h で namespace A { size_t intval, count, itr; } を宣言。もちろん、インクルードガードしてる。

ところが、作ったライブラリをテンプレート対応に修正したら、「intval, count, itr」が2重定義されてます。」
という旨のLINK1169のエラー(Visual Stuio 2022)が突然出てきた。前のライブラリではこんなエラー出てなかった
のに...ナンデダロー、ナンデダロー♪と悩んでいたが、

namespace A { extern size_t intval, count, itr; }

を宣言したら解決した。extern_や外部リンケージのことがが良くわからない。調べたら通りいっぺんのことは
わかるけど。LINK1169のエラーが出たら、extern宣言してみてLINK1169を殺す、という対症療法だけ学習しました。
定義はプログラム全体でひとつとする原則 (one definition rule) は診断不要な場合がある仕様になっていて処理系が問題を検出できなくてもかまわないことを意味する。
つまりエラーが出てなくても間違っている (未定義の挙動) かもしれないので理解せずにエラーメッセージに頼るのは悪い姿勢。
638
(1): デフォルトの名無しさん (ワッチョイ 9a79-yyCf) [sage] 2024/12/31(火) 23:26:05.62 ID:xpoxeW+N0(1) AAS
>配列リテラル
そもそもこの言葉がおかしい
配列リテラルなんてものは存在しない
リテラルは数値や文字、文字列の変更不可な定数を指す用語で、配列等の変数とは間逆の存在
配列は文字列リテラルとかで初期化はできるがリテラルには分類されない
主にjavascript界隈で平気で配列リテラルなんて説明してるサイトがあるが全部間違い
947
(1): デフォルトの名無しさん (ワッチョイ ff3d-/z+w) [] 2025/04/17(木) 00:57:26.62 ID:TtQSF/vr0(1) AAS
>>923
923(1): デフォルトの名無しさん (ワッチョイ 7fa1-0ra6) [sage] 2025/04/13(日) 10:48:07.97 ID:MoeuBZp20(2/4) AAS
>>921
ヒエッツ……、、、例外とスタックの関係について誤解が見受けられる……
例外発生時はスタックをアンワインドしてくれられるので(構築済みの)自動オブジェクトは解放される
もっとも救われるのはそれだけなので無神経なコーディングをしているとリソースリークがほとんど避けられないが
ヒープ領域はどうなんの?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.045s