throw std::logic_error(what_arg); 、 what_arg に渡した string はいつ解放されるの?になって気になって眠れなくなってしまった
throw std::logic_error(what_arg); 、 what_arg に渡した string はいつ解放されるの?になって気になって眠れなくなってしまった
そもそもこの引数 const string& なので、動的に作った string を渡してはいけない? じゃあ vector.at の例外はどうやって作ってるんだ?
これを見る限り catch したら use after free じゃないですか? https://github.com/microsoft/STL/blob/303df3dae6f5ed9fe4f1c35257f663af8355584a/stl/inc/stdexcept#L25
rvalue な string を渡すの、みんなやっとるな。これ合法? それとも運よく動いてるだけなのか? https://stackoverflow.com/questions/12261915/how-to-throw-stdexceptions-with-variable-messages
あ! GCC だとこれ _M_str はコピーコンストラクタだ! これでコピーされてる! https://github.com/gcc-mirror/gcc/blob/16e2427f50c208dfe07d07f18009969502c25dc8/libstdc%2B%2B-v3/src/c%2B%2B11/cow-stdexcept.cc#L160
em::before{
contents: “デカ”
}
strong::before{
contents: “クソデカ”
}
font {
font-size: initial;
}
font[size="+1"]::before {
content: 'デカ';
}
font[size="+2"]::before {
content: 'クソデカ';
}
[[nodiscard]] に対応する、この戻り値使わねんだよを表す構文ないの? pragma warning しないとダメ?