[過去ログ] C++相談室 part165 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
367: (ワッチョイ e91c-hIhh) 2024/07/16(火)12:22 ID:gS8T2k/f0(1) AAS
>>342
CMakeとNinjaはC++の話題なのでOKです
368
(1): (ワッチョイ 4901-V77j) 2024/07/27(土)17:57 ID:KDd62vAV0(1) AAS
C++、
型の指定が、めんどい

速いぐらいしか、利点ないよな
369: (ワッチョイ 7b95-4q6c) 2024/07/27(土)20:53 ID:eNksZtKQ0(1) AAS
顧客目線に立てない三流の感想
370
(1): (ワッチョイ 4901-7phL) 2024/07/27(土)21:03 ID:zOSUCWw50(1) AAS
>>368
auto使えば?
371: (ワッチョイ 1379-xel+) 2024/07/27(土)23:40 ID:iHlVB6Tw0(1) AAS
ランタイムに依存しない(し難い)のが最大の利点だろうに
さらに大抵のアーキテクチャには用意されてるからクロスプラットフォームの観点でもなんだかんだ最強なんだよ
むしろ最近はChatGPTが他の言語で書いたやつまで適当に書き直してくれるのもあって最強度がより高まってきてると感じるね
372: (ワッチョイ 8e95-N8l3) 2024/07/28(日)00:00 ID:ePI6t8jD0(1) AAS
全く同意できんな
むしろ環境依存上等で使うのがC/C++だろ
パッケージシステムも標準がないしビルド環境もばらばら
どこが最強やねん
標準ライブラリで完結するようなしょぼいプログラムなら他の言語使ったほうが楽
373: (ワッチョイ bdf0-+IYp) 2024/07/28(日)00:11 ID:4HqkcgMt0(1) AAS
型の指定のサンプル
GetProcAddressに変換をかけるマクロ
#define ENTRY_INTERFACE(api) api = (decltype(api)) GetProcAddress(hInst,"_INTERFACE_"#api)
ね?簡単でしょ?
374
(1): (ワッチョイ 5d01-viEi) 2024/07/28(日)12:00 ID:x9q80Pnt0(1) AAS
>>370

auto
オートね
(いいこと聞いた
375
(1): (ワッチョイ aa3e-cE1m) 2024/07/28(日)17:36 ID:9wLF96CX0(1) AAS
>>374
あとテンプレートを使ったダックタイプとかも便利。
376: (オッペケ Sr05-viEi) 2024/07/28(日)21:14 ID:roXukc4Cr(1) AAS
>>375

ふむ

実践的な(アプリを作るとか)、c++、書籍かなんか、おすすめ、ありますか?

cmake、とかの、関門もあるのだが
(githubにあがってるやつを、きっちり理解したい)
377
(1): (ワッチョイ 4132-nuT0) 2024/07/29(月)08:53 ID:cQQT2a1I0(1/3) AAS
実践に入る前に言語の入門は読んだほうが良いと思う。
基礎を積まずに実践しようとするのは無謀。
378: (ワッチョイ 9a05-pVLH) 2024/07/29(月)15:25 ID:heyNGOtI0(1) AAS
なんでも、まずは改造から入るんだぜ

こうですか、うんたぶんこう
379
(1): (ワッチョイ 4132-nuT0) 2024/07/29(月)19:25 ID:cQQT2a1I0(2/3) AAS
C++ には未規定がやたらたくさんあるんだ。
実際の挙動から仕様を想像しようとすると意味不明でグダグダやねん。
380: (ブーイモ MM9a-N8l3) 2024/07/29(月)20:07 ID:Nl7D5VelM(1) AAS
ネットでいくらでも勉強できるだろ
書籍なんかいらん
381: (ワッチョイ aa3e-cE1m) 2024/07/29(月)20:36 ID:9/o4+28+0(1) AAS
結局ライブラリが重要だから、作りたいアプリで流行っているライブラリの入門をやるのがいい。

作りたいアプリそのものじゃなくても、類似アプリを作るのはやる気に繋がる。
382
(3): (オッペケ Sr05-viEi) 2024/07/29(月)22:02 ID:8hMQwTW/r(1) AAS
>>377

github にあがってるやつを、理解しようとして、助けになる本は、結局ない希ガス

実際、実践的なものがないので、文法理解で終わってしまうという

外部リンク:github.com

これ、再利用して、アプリを作りたいのだが
383: (ワッチョイ 4132-nuT0) 2024/07/29(月)22:18 ID:cQQT2a1I0(3/3) AAS
>>382
言いたいことがわからん。
auto すら知らんかったということは文法もまだ十分に理解してないってことだろ?
文法が分かったら読めばいいだけなんだから何の本が必要なんだ?
384: (ワッチョイ 0168-qw7+) 2024/07/29(月)23:36 ID:7XbSB18u0(1/2) AAS
>>382
立直麻雀のシミュレーターなら mjx の方がいいんじゃないかな?
マイクロソフトで麻雀 AI Suphx の開発に携わってた人が作ったシミュレーターで
動作検証も天鳳の牌譜で実施したらしい

外部リンク:github.com

他のシミュレーターだと
- libriichi (Rust製 麻雀 AI Mortal に付属 天鳳ルール準拠 AGPL)
省12
385
(1): (ワッチョイ 0168-qw7+) 2024/07/29(月)23:43 ID:7XbSB18u0(2/2) AAS
>>382
書くのを忘れてた
cmajiang の元ネタ majiang-core は作者が解説本を出してる
実際買ってみたけど、やっぱりソースコードだけ読むより分かりやすい

外部リンク[html]:www.shuwasystem.co.jp

ブログでも解説されてるけど、お目当ての記事を探すのが大変だし本の方が見やすいと思った

外部リンク:blog.kobalab.net
386: (ワッチョイ bdf0-+IYp) 2024/07/30(火)12:23 ID:8UDCP+we0(1) AAS
>>379
未規定というか、C++11よりも古い規格のは、古参でないと扱いが難しいからね
そういう古い規格のものが仕事で入ってい来たりすると新人は頭悩ますかもしれんね
03~11まで結構間に空いてるしね
387: (ワッチョイ 5d01-viEi) 2024/07/30(火)23:52 ID:KT8SFJ0h0(1) AAS
>>385

はい、
すべて、既読です

make,
pybind11

とか入ってて、
デバッグビルド、わかりませんorz
388
(1): (ワッチョイ 1bef-BWtz) 2024/08/04(日)06:24 ID:WlfSsbJh0(1) AAS
ラムダ式が渡された側って、キャプチャの内容をチェックしたりできないのでしょうか。

例えば以下の例で、funcA()の中でfの中のthisをチェックして挙動を変えたりとか?
そういうことをしたいなら、ラムダの引数で渡したりすべきでしょうか?

#include <iostream>
class A {
public:
 void funcA(const std::function<void(int)>& f, int a) {
省14
389: はちみつ餃子◆8X2XSCHEME (ワッチョイ a932-NesV) 2024/08/04(日)10:12 ID:w7HjtqNP0(1) AAS
>>388
キャプチャした変数はラムダ式の中で使う以外の方法ではアクセスできない。
どのような方法で解決すべきかはそれをしようとする意図によるのでなんとも言えない。
390: (ワッチョイ a94a-ImVy) 2024/08/04(日)14:50 ID:ao1w9dwD0(1) AAS
それはラムダ式を使う理由とズレてるな
A側で判定が必要なものならラムダ式の引数もしくはfuncAの引数で渡すべき

A側は受け取るものを「intをひとつ受け取ってvoidを出力する関数」として抽象化してるんだから、それ以外のことは知れないし、知るべきではない
Aは渡された関数が何であろうとintを一つ渡すだけで、その詳細 (関数がどのような値や参照をキャプチャしてるのか、渡した引数がどのように使われるのか) には触れられない
ラムダ式を使うのはこのような抽象化が目的のはずだから、キャプチャした値を知りたいというのは用途から外れるかと思う
391
(1): (ワッチョイ 9b72-3sGu) 2024/08/04(日)18:55 ID:knGBcNlu0(1) AAS
なんか最近自分でで適切なインターフェースを定義して使うって発想がなくなってる気がする
ひたすらありものを繋ぐだけで作り切るみたいな
392
(1): (ワッチョイ c1f0-3TXu) 2024/08/04(日)19:21 ID:oxQURbTu0(1) AAS
仕組みを追求することをせずにどっかから完成した㌬をドッキングするだけの作業は情報収集力さえあれば組み込み系の作業員でもできるし己のチカラにはならんのよな
で、いろんなもの付け合わせていった結果、とんでもない容量のものが出来上がる上におまえそれメンテとかどうするんだよって方向に走ってって…あとは想像のとおりに
393: (ブーイモ MM8b-3sGu) 2024/08/04(日)19:54 ID:wSg2UiB1M(1) AAS
オブジェクト指向オワコン論からの風潮
394: (ワッチョイ 1320-cRFB) 2024/08/04(日)21:00 ID:YVKn/U480(1) AAS
なんでオワコンなの?
395
(1): (ワッチョイ c1f0-3TXu) 2024/08/06(火)01:29 ID:DDRjgUjC0(1) AAS
全然関係ないよな
取って貼っ付ける行為とオブジェクト指向は
全体の概要設計を把握してメンテ出来ていれば何の問題もない
396: 青木康善 (ワッチョイ 59d4-ANSA) 2024/08/07(水)04:36 ID:S6qXQ6lv0(1) AAS
素晴らしいなあみなさん。早すぎる!C plus plusは!
397: (ワッチョイ 5347-eg/E) 2024/08/07(水)09:54 ID:+pgWMXtY0(1) AAS
JavaはCの20倍速いを知らん人か
398: (アウアウエー Sa23-LX2u) 2024/08/07(水)17:07 ID:RPpAsXPKa(1) AAS
>>391-392
チェンジニアをチェンジ
>>395
オブジェクト指向でもクラスライブラリを造る側とただ使う側では理解度に雲泥の差がある
399: 青木康善 (ワッチョイ 0bc8-ANSA) 2024/08/08(木)00:15 ID:Qfze0mfg0(1) AAS
マジっすか?Cの20倍?しかし、専門学校の先生に、青木!バカもん!プログラミング言語Cが一冊で事足りる、と言われても、高校数学でつまづいて大鬱病になったんで、問題が解けない。。。有隣堂本店さんで、リッチーの本置いているから、いつか買います!
400: (ワッチョイ 31fe-/5UW) 2024/08/08(木)04:05 ID:G3QDAupS0(1) AAS
今のANSI対応版は易しくなってると思うけどな。
不安ならアンサーブックとセットで買えば良いベ
401: (ブーイモ MM33-DGdp) 2024/08/08(木)16:07 ID:fgfi2g+JM(1) AAS
VMのオーバーヘッドがあるのに20倍って?
あるいは20倍時間が掛かる?
402: 青木康善 (ワッチョイ 31e4-ANSA) 2024/08/09(金)13:02 ID:FZEpuz0a0(1) AAS
いや、プログミング言語は、駿台電子は、国語の倒置法なんです。夜間の一年で、javaからで、二年でCなんです。いや、アンサーブックは、池袋ジュンク堂本店さんには、置いてなかったような。。。。。ありがたいというか、ビックリ。。。。マジか。。。機械語を仕事でプログラミングしていた先生が、喫煙所で、青木、お前、一つのことを本当に深く考えたことがあるか?と質問してくれた恩師なんです。
403: (ワッチョイ 5384-eg/E) 2024/08/10(土)12:16 ID:xFKQiXk00(1) AAS
スカイネットの誕生日
404: (スフッ Sd33-QylA) 2024/08/10(土)23:52 ID:oQf4NdPPd(1) AAS
御巣鷹山ノボレ
405: (ワッチョイ 7f78-/FHh) 2024/08/24(土)08:35 ID:yYuYqoCz0(1/6) AAS
すみません。教えて下さい。
template<class T, class U>void (T& x, const U& y)
{
x=y;
...
}
double ←complex<double> の代入がコンパイルエラーとなるconceptの書き方あるんでしょうか?
省1
406: (ワッチョイ 7f78-/FHh) 2024/08/24(土)09:05 ID:yYuYqoCz0(2/6) AAS
あ、上では関数名fが抜けてましたね.concept使わずとも
template<class T> void f(complex<T>& x, const T& y)とすればいいでしょうけど、
y=xのときはどうかとか、あるいは complex<double>←float の代入はokにしたいとか、
いろいろ考えているとテンプレート関数なのに関数のオーバーロードが増えてしまって面倒だなと思ったものですから。
407: (ワッチョイ 7f78-/FHh) 2024/08/24(土)09:23 ID:yYuYqoCz0(3/6) AAS
y=xのときは忘れてください。(f(complex<T>& y, const T& x)とすればいいだけ)。どういう状況のためにconceptが必要なのか要点がまとまっていませんね。失礼しました。
408: (ワッチョイ 7ff0-aWDb) 2024/08/24(土)09:53 ID:PPcTgFGr0(1/4) AAS
conceptで無理やりくくるよりか、static_assertのほうが楽そう
template<class T, class U>void f(T& x, const U& y)
{
static_assert(std::is_same<double,T>::value&&std::is_same<complex<TU>::value,"絶対にゆるさない!絶対ニダ!!");
x=y;
...
}
409: (ワッチョイ 7f78-/FHh) 2024/08/24(土)11:11 ID:yYuYqoCz0(4/6) AAS
&& は右辺値参照ではなくてandの意味なんですね。std::is_same<double,T>はdouble型とT型が一致するかどうかを調べるヘルパー変数テンプレート、::value は trueかfalseのいずれかの値をとる定数ですか。static_assertは自分でエラーメッセージを作れるのがいいですね。完全にわかっていないですが、勉強します。ヒントありがとうございました。
410: (ワッチョイ 1f23-dwWB) 2024/08/24(土)11:44 ID:6PXbzil00(1/2) AAS
最近、初心者にいきなり右辺値参照とかテンプレート教える風潮は良くないと思うんだよなぁ・・・論理andとごっちゃになってるやんけ

ともあれis_same自体は構造体で、中にあるvalueは定数値やで
変数テンプレートはis_same_vの方。利便性(::value書くのがめんどい)のために用意されてるだけ
static_assertの第一引数(bool)に条件式を与えてるんだが、間違ってる

static_assert(!(std::is_same<double,T>::value&&std::is_same<complex<TU>::value),"絶対にゆるさない!絶対ニダ!!");
411: (ワッチョイ 7ff0-aWDb) 2024/08/24(土)12:20 ID:PPcTgFGr0(2/4) AAS
!抜けてたわ
スマソ
412
(2): (ワッチョイ 7ff0-aWDb) 2024/08/24(土)12:40 ID:PPcTgFGr0(3/4) AAS
// こういう書き方もある
if const_expr ( std::is_same<double,T>::value && std::is_same<complex<TU>::value ) {
//許されない処理
static_assert(false,"許さんぞ!!");
}else {
//正常処理
}
413: (ワッチョイ 7ff0-aWDb) 2024/08/24(土)12:43 ID:PPcTgFGr0(4/4) AAS
また間違えたw
× const_expr
● constexpr
414
(1): (ワッチョイ 7f78-/FHh) 2024/08/24(土)14:40 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;
}
省15
415: (ワッチョイ 7f78-/FHh) 2024/08/24(土)15:09 ID:yYuYqoCz0(6/6) AAS
std::is_same<T,double>::valueの代わりにstd::same_as<T,double>でも良いみたいですね.
416
(1): (ワッチョイ 9f63-rdaS) 2024/08/24(土)16:42 ID:6x2BzwZB0(1/2) AAS
#ifdef NDEBUG
  /*pass*/
#else
class dbg_complex {
  std::complex<double> m_complex;
public:
  // std::complex<double> のメソッドのうち使うやつ同じシグネチャのメソッドを書き並べ、m_complexに移譲
省7
417: (ワッチョイ 9f63-rdaS) 2024/08/24(土)16:48 ID:6x2BzwZB0(2/2) AAS
いちいち移譲せねばならないのはstd::complex<T>の継承が禁止されているためorz
実際デストラクタが十中八九virtualではないし、

>>416の最後の
#define complex dbg_complex
みたいな穴だらけの置換手段が嫌ならもうstd::complex<double> を普段からcomplexdbl という別名にすると決めてまう
すると
#ifdef NDEBUG
省6
418
(1): (ワッチョイ ff67-kHtd) 2024/08/24(土)18:35 ID:BJpt+Mj00(1) AAS
>>412
これかなり新しめのコンパイラじゃないと動かないので注意
419: (ワッチョイ 1f23-dwWB) 2024/08/24(土)19:16 ID:6PXbzil00(2/2) AAS
行うべき解放処理が無い上ポリモーフィズムも不要なら、別にデストラクタがvirtualである必要は無いぞ
このケースで継承すべきかどうかはまた別として
420: (ワッチョイ 1fbe-3Zrt) 2024/08/24(土)23:53 ID:4DIR6G6I0(1) AAS
>>412
constexpr if が使える (= C++17以上) なら std::is_same<T, U>::value よりも std::is_same_v<T, U> を使う方がシンプルだと思う
421: (ワッチョイ 02f0-HfY5) 2024/08/25(日)00:16 ID:LfSHCV3h0(1/2) AAS
ま、お好きなの使えいいんじゃないんすか~
こちとら例文示しているだけで極めているワケじゃないからぬ
422
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 4d32-7Uxd) 2024/08/25(日)01:15 ID:zZ+WMAII0(1) AAS
>>414
テンプレート型引数に require 節などで制約を付けた場合に制約に合致しなければオーバーロード解決候補から除外されるが、 static_assert や if constexpr での判定は解決が終わってテンプレートが実体化されるときに判定される。
つまり、より優先順位の低い候補に当てはめたいかもしれない場合は static_assert や if constexpr での判定をすべきではない。
状況によって使い分けがある。

それと >>418 が注意しているのは、テンプレートはテンプレート引数に依存しない部分は実体化されなくても検証されるルールだから。
(Two phase name lookup について調べてみて。)
つまり static_assert(false, ほにゃらら) と書いてあったらそのテンプレートが使われるかどうかに関係なく問答無用でエラーとして報告されていた。
省2
423: (ワッチョイ 0278-RCJX) 2024/08/25(日)01:34 ID:GxcwnqZY0(1) AAS
まあ、そんな小難しいこと言われても。C++が嫌われる理由だわ
424: (ワッチョイ 02f0-HfY5) 2024/08/25(日)02:05 ID:LfSHCV3h0(2/2) AAS
実体化ってどっちみちコンパイルするときにエラー発生するんだから結果かわらねぇだろバカがよう
425: (ワッチョイ c5a7-8JDH) 2024/08/25(日)06:41 ID:n8ainESh0(1) AAS
static_assert(false, "")は何かしらダミーの値入れて回避してたけど修正されてたんだ、知らんかった
426: (ワッチョイ 02f0-HfY5) 2024/08/26(月)00:27 ID:JWWBXqLI0(1) AAS
false効かないバカコンパイラはどうしようもないからどうにもならんか
//requires を使った方法
template<class T, class U>
requires(!(std::is_same_v<double,T>&&std::is_same_v<complex<TU>))
void f(T& x, const U& y)
{
x=y;
省2
427: (ワッチョイ 2963-G6Q9) 2024/08/27(火)07:16 ID:NdPbjHCm0(1/2) AAS
特定の引数型についてテンプレート展開を阻止したいんなら
特殊化してその中にstatic_assert(false, "*** ERR ***")書いても昔は駄目だったんか恐ろしい……
428: (ワッチョイ 2963-G6Q9) 2024/08/27(火)07:35 ID:NdPbjHCm0(2/2) AAS
しかしまあ特殊化してテンプレート引数の型Tについて
態と存在しないメソッドを呼ぶように書いたらその特殊化ケースについて展開を阻止できうる(適当
クラス内でint型定数が欲しかったら古き良き enum { ONE, TWO, THREE } で十分やし
同じことをやる手段を増やせば良いってもんじゃないぞPerlじゃあるまいし……
429: (アウアウエー Sa0a-PBPb) 2024/08/27(火)14:55 ID:oHcafaf7a(1) AAS
perlの面白仕様
430: (ワッチョイ c5f3-8JDH) 2024/08/27(火)17:14 ID:K2iTXH930(1) AAS
まぁ普通にSFINAEなり=delete指定なりコンセプトなりでオーバーロード候補から外す方が利用者視点でいえば自然だな
431
(1): (ワッチョイ 0278-RCJX) 2024/08/27(火)17:33 ID:K7dNHCWQ0(1) AAS
#include <iostream>
#include <complex>

template <class T> decltype(auto) f(T x)
{
decltype(abs(std::declval<T>())) w;
w=abs(x);
return w;
省12
432: はちみつ餃子◆8X2XSCHEME (ワッチョイ 4d32-7Uxd) 2024/08/27(火)18:27 ID:WfqXHPCU0(1) AAS
>>431
sizeof や decltype のオペランドは評価されないということになってる。
だからその文脈で関数を使う場合でもその関数が定義されている必要はない。 (宣言だけあればよい。)
評価されないけど実体化は起こるのでそのへんの理屈は複雑でよくわからん。
433: ころころ (ワッチョイ 0202-3rb6) 2024/08/30(金)02:40 ID:qLymVnYK0(1) AAS
decval使ったコード始めてみたかも
434: (ワッチョイ 0220-Fpn2) 2024/08/30(金)05:15 ID:ZIPlhev80(1) AAS
相互参照わっかんねぇ
435
(2): (ワッチョイ 5f2f-+rLF) 2024/09/02(月)12:36 ID:bqeYsc0k0(1) AAS
相互参照は必要ない
最近はウェブプログラマのほうが賢くなった
すそ野が広がると質が良くなるらしい
436
(1): (ワッチョイ bf0a-5+wm) 2024/09/02(月)13:00 ID:Rco2Fp/20(1) AAS
必要ない理由ぐらい言ったら?
437: はちみつ餃子◆8X2XSCHEME (ワッチョイ e732-CMA8) 2024/09/02(月)14:42 ID:o+5p2SR60(1) AAS
プログラムの文法要素が相互参照になっている状況という意味?
たとえば前方宣言が必要な場合とか。

それとも (実行時の) データ構造が相互参照ということ?
たとえば循環構造の後始末のやり方がわからんとか。
438: (ワッチョイ 0701-+rOo) 2024/09/02(月)19:52 ID:cn5uZ01w0(1) AAS
>>435
その「相互参照」って何?
439
(1): (アウアウエー Sa1f-XN8b) 2024/09/05(木)00:06 ID:/oUqYYg3a(1) AAS
相互参照も自己参照も一緒
自己参照なんて参照してるのは自己ではない
ホントの意味での自己参照は循環参照
440
(2): (ワッチョイ 5f00-+rLF) 2024/09/05(木)18:17 ID:xTcyjaky0(1) AAS
shared_ptrを使いたくなったら設計を見直すべき
441: (ワッチョイ 277f-jESi) 2024/09/06(金)07:27 ID:Qb4sTpDj0(1) AAS
>>440
それは無理があるんじゃないのかね。
データ共有とかインターフェイス共有とか本質的に所有者が複数存在するオブジェクトはsharedptr使うべきかと。

設計ではモジュール間の疎結合・インターフェイスの汎用化を重視すべきで、そのためにはデータの共有方法が重要になる。
442
(4): (ブーイモ MM7f-5+wm) 2024/09/06(金)11:54 ID:onD85wsiM(1) AAS
>>440
マルチスレッドセーフ考えたら使わざるを得ない場合は多々ある
言ってる意味がわからないならお前は経験不足
443: (ワッチョイ e7df-UdSI) 2024/09/06(金)22:35 ID:0hxwMUxG0(1) AAS
recurcive_mutexが欲しくなったら設計を見直したい、なら分かる気もする
444
(1): (ワッチョイ 0753-60ma) 2024/09/07(土)11:45 ID:Zy1zUumM0(1) AAS
C++11あたりから「生ポは使うな」みたいな極論で分かった気になってる思い上がった初心者が増えたからなぁ
445
(1): (ワッチョイ bfac-jESi) 2024/09/07(土)11:58 ID:UFsx2JaR0(1) AAS
>>444
生ポ使うよりかスマートポインタの参照を使った方がマシだったりするからなぁ。スマートポインタがスタックフレームにあるなら安全だし。

スタック変数専用仮引数とかあればもっと安全になるのになぁ。
仮引数の種類はもっとあっていいと思う。
446: (ワッチョイ 27ea-60ma) 2024/09/07(土)16:26 ID:lSV8lU690(1/2) AAS
>>445
考え方にもよるだろうけど、確保も解放も所有もしない関数でスマポ受け取る必要あるか?
特定の用途で管理されている特定のポインタしか許容しない、という意図ならスマポの参照でもいいだろうけど、汎用性は無いよね
生ポ受け取る場合暗黙のキャストも効かないし
447
(2): (ワッチョイ 8763-0xUn) 2024/09/07(土)20:17 ID:Ci+xhqlU0(1/2) AAS
>>442
むしろshared_ptr<T>でスレッド間共有オブジェクトを保持するのは
生ポに対するshared_ptr<T>のメリットが無い……
可能な限りスレッド間共有なんてことはやめてconstオブジェクトのコピーにするのが正義……

>>439
自己参照ではないが前方宣言が必須の例、
class TreeNode;
省8
1-
あと 555 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.021s