C++相談室 part153 at TECH
[2ch|▼Menu]
[前50を表示]
950:デフォルトの名無しさん
20/12/29 13:15:00.89 m86wB2y9.net
まあ普通は末端の型を意識しなくて済むからこそ派生の旨味がある訳で

951:デフォルトの名無しさん
20/12/29 14:33:08.60 kdP0thHS.net
>>936
その点については誰もが一度は通る勘違いだよなw
最初はわけも分からず機械的にvirtualつけて回ってたわ

952:デフォルトの名無しさん
20/12/29 20:19:15.83 EiaQ+UBu.net
うっせえ知っとったわ素でまちがえただけじゃわ!ヽ(`Д´)ノウワーン

953:の名無しさん
20/12/31 05:29:21.52 /Sdg/sCQ.net
struct A { virtual void Delete() { delete this; } };
struct B : A { void Delete() { delete this; } };
こうなってりゃ別にいらんな

954:デフォルトの名無しさん
20/12/31 11:50:06.55 zS3i4lwe.net
>>795 の同期とか奇妙な質問に思うけど、Javaからくるとそうなるんだな。

955:デフォルトの名無しさん
20/12/31 12:23:37.15 3Es5+lkr.net
javaにだって非同期でメモリ確保するコンテナなんてないでしょ

956:デフォルトの名無しさん
20/12/31 13:41:11.66 lvvsunYH.net
>>942
おとなしく virtual ~A() とするのにくらべて何のメリットも無いな。

957:デフォルトの名無しさん
20/12/31 13:43:11.73 zS3i4lwe.net
deleteのコストは、ほんと気にされないな。

958:デフォルトの名無しさん
20/12/31 15:24:44.84 eCxLbtN/.net
「a=1 かつ b=1 以外なら実行」って条件式はどう書くの?

959:デフォルトの名無しさん
20/12/31 15:31:08.20 7G3T5w7B.net
>>947
母語で曖昧さの無い表記ができますか?

960:蟻人間
20/12/31 15:40:19.22 +0BPso5e.net
>>950
> 「a=1 かつ b=1 以外なら実行」って条件式はどう書くの?
「「a=1 かつ b=1」以外なら実行」なら、
if (!(a == 1 && b == 1)) { 実行(); }
「a=1 かつ「b=1以外」なら実行」なら、
if (a == 1 && b != 1) { 実行(); }

961:デフォルトの名無しさん
20/12/31 15:47:49.87 eCxLbtN/.net
>>949
THX
「a=1 かつ b=1」以外なら実行、でした。
私が950でレスするのもお見通しですか?w

962:デフォルトの名無しさん
20/12/31 18:57:49.39 /Sdg/sCQ.net
>>945
ただの押しつけだな
うるせーバカ

963:デフォルトの名無しさん
21/01/01 05:08:27.95 FlWhKtLF.net
CSSは規格の著者がサンプル実装してるというので見に行ったら、Javascriptだった。
あからさまに動的言語向けに規格が書かれているのは、そういうことでしたか。
これは辛い。

964:
21/01/01 18:05:25.39 a5HWfmXn.net
>>792
それはちょっと古臭いお馬鹿な手法でしょう
正しいやりかたは、
・呼び出し側が呼び出され側に格納エリアを提供する‥‥@
・呼び出し側が確保するべきサイズは@の前に別途問い合わせする

965:デフォルトの名無しさん
21/01/01 18:33:17.97 1DPP279V.net
いずれにしろ面倒

966:デフォルトの名無しさん
21/01/02 00:08:04.41 f21yM1/d.net
CにはCで
#define APPBUFSZ (十分でかい整数値)
void foo() {
  char buf[APPBUFSZ];     // buf[]はスタック上にとられる配列(重要
  if (!func(buf, sizeof(buf))) {  // 第2引数は要素数の意味とするならsizeof(buf) / sizeof([0])
    バッファサイズ不足等のエラー
  }
}
という黄金パターンあるんじゃー
これは原始的な見かけほど不合理というわけではない

967:デフォルトの名無しさん
21/01/02 00:11:12.76 f21yM1/d.net
CSSはDOMの一部でありかつ意味と表記の分離の必要からCSSになった
DOMはWebページのあらゆる要素へのコントロールの実現を目的としている
という印象

968:
21/01/02 00:53:58.35 wp0Bo1A/.net
>>955
kwsk
ちょっとよくわからない‥

969:デフォルトの名無しさん
21/01/02 02:21:09.41 dR/zQLwh.net
>>955
Cってこのパターンでクソほど無駄なバッファ取るから全然効率的じゃないよな

970:デフォルトの名無しさん
21/01/02 09:15:42.80 hdbwvBU0.net
>>955
何が黄金なのかさっぱりわからんが…
どこでそれが黄金パターンとされているかの出典だけでも頼む

971:デフォルトの名無しさん
21/01/02 09:25:20.55 TBL/2gAq.net
定番は>>953だろう。
事前にサイズを求めるコストがバカにならないという場合だけ別案を検討するくらいで。

972:デフォルトの名無しさん
21/01/02 10:59:35.93 dR/zQLwh.net
大抵の場合は「事前にサイズを求める」=やり直しになりそうなんだけど

973:デフォルトの名無しさん
21/01/02 11:29:31.77 f21yM1/d.net
>>958
左様よほど意図しない事象でも起きない限りエラー処理に行かないぐらい大き目にとる
スタック上に領域をとる場合、時間コストも空間コストもゼロとみなせるからそれで構わない
再帰呼び出しのようなきわめて深い関数呼び出し階層になるときぐらいしか問題は生じない
というわけで、プログラミングしたいこと/すべきことに対するちょっとした洞察と
アーキテクチャーに関する理解さえあれば、言うほど非効率でも不合理でもないことがわかるはず…

974:デフォルトの名無しさん
21/01/02 11:39:10.82 YOqoG5bU.net
>953
確保すべきサイズを問い合わせたときと確保して呼び出した時に必要サイズが変わっていないか気になって夜しか眠れない
(リトライしてもリトライ回数が適切かどうか気になって布団以外で眠れない)

975:デフォルトの名無しさん
21/01/02 19:19:34.45 TRpAMVE2.net
std::make_sharedにインターフェースクラスを継承したクラスを渡したいんですがエラーになりました
これは生ポインタ使えと言うことでしょうか?
URLリンク(ideone.com)

976:蟻人間
21/01/02 19:28:29.87 VBbIup1J.net
>>964
URLリンク(programming-place.net)

977:デフォルトの名無しさん
21/01/02 19:32:19.38 TRpAMVE2.net
>>965
デストラクタとコンストラクタの定義書いたらコンパイルできました
どうもありがとう

978:デフォルトの名無しさん
21/01/03 08:55:49.95 tz0lNZPE.net
chromiumのソースみると全面的にstd::unique_ptrを使ってるので、少なくともC++11 以降。

979:デフォルトの名無しさん
21/01/03 09:00:31.13 tz0lNZPE.net
レンダリングコアチーム29名中3名が日本人。

980:デフォルトの名無しさん
21/01/03 14:01:40.32 A/6DePqP.net
newしたクラスをdeleteすればクラス内で保持した変数のメモリも自動的に解放されるのでしょうか? 

981:デフォルトの名無しさん
21/01/03 14:08:46.33 I3Vvl19p.net
>>969
「クラス内で保持」の仕方による。
deleteに伴って各メンバ変数のデストラクタが呼び出されるので、自動的に解放されるようにすることはできる。

982:デフォルトの名無しさん
21/01/03 14:31:09.41 A/6DePqP.net
ポインタの参照先は解放されないとかですかね?

983:デフォルトの名無しさん
21/01/03 15:46:52.70 ytOMOpf7.net
所有してるメモリなら解放されて欲しいけど借用してるメモリは解放されちゃ困るででょ

984:デフォルトの名無しさん
21/01/04 03:53:19.91 wIiDK2+4.net
借りてる金を誰かが返してくれるなら良いお話では?

985:デフォルトの名無しさん
21/01/04 06:10:53.50 FFXfDp9J.net
>>971
スマポ使ったら?

986:デフォルトの名無しさん
21/01/04 19:46:23.01 0C4iSsrn.net
めちゃくちゃ初歩的な質問で申し訳ないのですが文字で「"」を出力したい場合はどうするのですか?
cout<<"これ→"←"<<endl;
とすると出力したい文字が「これ→」までだと認識されエラーが発生しますよね…

987:デフォルトの名無しさん
21/01/04 19:50:08.29 0tciJGtx.net
えすけぇぷ

988:蟻人間
21/01/04 19:52:06.94 RRkyDjZk.net
バックスラッシュor
半角の円記号
を使う

989:
21/01/04 19:53:04.44 SE/uzuCD.net
>>975
URLリンク(ideone.com)

990:デフォルトの名無しさん
21/01/05 02:42:04.01 GBNfOfsJ.net
URLリンク(ideone.com)
バックスラッシュではうまくいったのに半角の円記号ではうまくいきません!

991:
21/01/05 02:46:08.54 SOx0PxdD.net
>>979
URLリンク(ideone.com)

992:デフォルトの名無しさん
21/01/05 07:30:58.94 rKfNNjQV.net
>>975
cout << R"(cout<<"これ→"←"<<endl;)";

993:デフォルトの名無しさん
21/01/05 08:35:13.05 JJaPBKYs.net
cout << R"fuckU(cout<<"これ→"←"<<endl;)fuckU";
ただしC++11以降な

994:デフォルトの名無しさん
21/01/05 09:02:10.14 x+1hwr2M.net
>>979
macでよくハマるw

995:デフォルトの名無しさん
21/01/06 09:32:04.26 UTmmPnLW.net
HTML5は規格通りに実装できるけど、CSSは規格通りに実装できないな。
Chromiumは、Blink以前はBison使ってたけど、Blink以降は手書きパーサになってる。
もはや、クラス名や属性名を見て処理をわけないと衝突を解決できない。

996:デフォルトの名無しさん
21/01/07 01:07:21.92 DfoUdJtt.net
次スレ下さい。

997:デフォルトの名無しさん
21/01/07 14:22:12.51 Oosx0PB6.net
c++で出力出来ない文字とかあるんですか?
>>981
この書き方ならなんでも出力出来るんですかね?
cout<<"これ→"←"endl;)と出力したい時
cout << R"(cout<<"これ→"←"<<endl;))";
でもいけるんですか?
)が気になりますが…

998:デフォルトの名無しさん
21/01/07 15:10:50.98 9QJGSme0.net
>>986
それを言ってるのが>>982だよ

999:デフォルトの名無しさん
21/01/07 19:34:55.01 5FPBrit1.net
>>987
すいません出来ました
fuckという単語なので嘘かと思ってスルーしていました
>>982
ありがとうございます

1000:デフォルトの名無しさん
21/01/08 03:01:05.78 cNGMO0JS.net
>>947
cppは論理演算子が少ないからに優しくないから先のレスのようにチマチマ等価な冗長な論理を書くしかないのが面倒だよね…
not-andなんだからnand演算子(=joint denial(↑)、論理用語)で書けりゃいいのに(もちろん裸cppで

1001:デフォルトの名無しさん
21/01/08 05:11:49.99 wkJPfkff.net
C++界隈のオッサンは普通に4文字とか猥語とかバンバン使ってちゃんとした説明するから気をつけろ

1002:デフォルトの名無しさん
21/01/08 05:14:48.68 gKD5AY0L.net
template <typename A, typename B>
inline constexpr
bool nand(A&& a, B&& b)
{
return !(A == 1 && B == 1);
}

1003:デフォルトの名無しさん
21/01/08 08:15:42.48 lmjqKHzd.net
プリプロセッサで演算子増やせないかな?
無理かな?

1004:デフォルトの名無しさん
21/01/08 08:24:11.24 gKD5AY0L.net
マクロの識別子は英数字下線だけだかんな
あ、でも英数字下線の演算子もどきならできるね
template <typename R, typename A>
R Static_cast(A&& a) { return a; }

1005:デフォルトの名無しさん
21/01/08 16:15:23.09 qfyOgjuE.net
プリプロセッサを自作すればいいんじゃないかな

1006:はちみつ餃子
21/01/08 16:18:48.68 PuoTeu6a.net
そんなに演算子を増やしたいか?
関数でそんなに不都合には感じないが。

1007:デフォルトの名無しさん
21/01/08 17:33:21.91 z+YKoOzo.net
NANDが演算子で書けたからって別に理解しやすくもないので、いらない

1008:デフォルトの名無しさん
21/01/08 17:38:26.63 3K68IyDv.net
どもるがん知らない人がいると聞いて

1009:デフォルトの名無しさん
21/01/08 17:40:30.13 /42fFLGa.net
演算子は色々と使えると便利だぞ

1010:デフォルトの名無しさん
21/01/08 17:43:20.57 VopvKl3G.net
質問良いですか?

1011:デフォルトの名無しさん
21/01/08 17:46:32.46 CQCRa+nu.net
1000

1012:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 89日 18時間 28分 12秒

1013:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

289日前に更新/258 KB
担当:undef