[過去ログ]
C++相談室 part165 (1002レス)
C++相談室 part165 http://mevius.5ch.net/test/read.cgi/tech/1698705458/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
781: デフォルトの名無しさん (ワッチョイ 9901-Awih) [sage] 2025/03/23(日) 00:21:43.38 ID:/EbbY7QB0 >>777 エラーメッセージは読まんといかんよ 分からんときは今ならLLMに読ませると良い http://mevius.5ch.net/test/read.cgi/tech/1698705458/781
782: デフォルトの名無しさん (ワッチョイ e563-0why) [sage] 2025/03/23(日) 01:58:28.60 ID:IgihfQRv0 >>778>>779 お騒がせしましたサーセン;;;orz ビルドが通らないというのは私めの勘違いだった模様。 コードはそれで良いです。 そのコード(最小サンプル)、および最小サンプルにする前のコード×VS2015でもfriend宣言部分をコメントアウトしてビルドが通った 。n_ フレンド宣言friend std::unique_ptr<Foo>; を付けるに至った履歴が無いので推測ですだが デストラクタがprivateのままだったタイミングがあったのかも…… (m_pObj
が生ポインタのタイプのSingletonはデストラクタがprivateでもビルドが通る(デストラクタを呼ぶ人が居ないため) →この状態でm_pObjをstd::unique_ptr<Foo>に変更してビルドエラー、アクセス許可が無いとコンパイラに言われて慌ててfriend追加、だった可能性、 http://mevius.5ch.net/test/read.cgi/tech/1698705458/782
783: デフォルトの名無しさん (ワッチョイ 622d-hk3H) [sage] 2025/03/23(日) 09:31:51.75 ID:CXYOr+7B0 繰り返しになるが熟読した方がいいぞ 無視していいメッセージかそうでないかも区別できるようになるから http://mevius.5ch.net/test/read.cgi/tech/1698705458/783
784: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-PAPZ) [sage] 2025/03/23(日) 09:32:31.18 ID:Ft35v0Bz0 元の話題からはずれる余談だけれど、静的記憶域期間を持つブロックスコープの変数は最初に通過したときに初期化されるルールがある。 (条件によるので常にではない。) https://timsong-cpp.github.io/cppwp/n3337/stmt.dcl#4 なのでシングルトンパターンはこう単純化して書くことも出来る。 #include <memory> class Foo { Foo() = default; public: static Foo* createInstance() { static std::unique_ptr<Foo> m_pObj = std::un
ique_ptr<Foo>(new Foo); return m_pObj.get(); } }; int main(void) { auto bar = Foo::createInstance(); } http://mevius.5ch.net/test/read.cgi/tech/1698705458/784
785: デフォルトの名無しさん (ブーイモ MM19-xG3a) [sage] 2025/03/23(日) 10:12:01.75 ID:i5B9IukZM それunique_ptrにする意味ある? shared_ptrなら意味わかるけど http://mevius.5ch.net/test/read.cgi/tech/1698705458/785
786: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-PAPZ) [sage] 2025/03/23(日) 10:45:14.55 ID:Ft35v0Bz0 >>785 意味ないな。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/786
787: デフォルトの名無しさん (ワッチョイ e563-0why) [sage] 2025/03/23(日) 10:56:08.84 ID:IgihfQRv0 >>784 サンプルコードでは省略したけんども、Double-checked lockingの実験をしたかったノデス! ■ Double-Checked Locking is Fixed In C++11 https://preshing.com/20130930/double-checked-locking-is-fixed-in-cpp11/ つなみに関数内staticオブジェクト初期化(初回実行時)のスレッド安全性がどうーなっているのかは よく知りま栓(よって採用には消極的 >>785 Singletonなので誰からもshareされないし…… この場合むしろshared_p
trの方が牛刀な可能性もあるし…… なぜなら、std::shared_ptrの参照カウンタはその利用特性上 異なるスレッドから非同期にインクリメント/デクリメントされることを想定せざるおえず、 スレッド安全性担保がそこそこ重い同期オブジェクトで一方unique_ptrの所有権移動は非同期に行われることはなさげ http://mevius.5ch.net/test/read.cgi/tech/1698705458/787
788: デフォルトの名無しさん (ワッチョイ e563-0why) [sage] 2025/03/23(日) 10:57:59.97 ID:IgihfQRv0 すまんこTeamsのノリで途中送信すたorz 誤: スレッド安全性担保がそこそこ重い同期オブジェクトで一方unique_ptrの所有権移動は非同期に行われることはなさげ 正: スレッド安全性担保がそこそこ重い同期オブジェクトで行われている危険性がある。一方unique_ptrの所有権移動は非同期に行われることはなさげなので多分軽量 http://mevius.5ch.net/test/read.cgi/tech/1698705458/788
789: デフォルトの名無しさん (ワッチョイ e563-0why) [sage] 2025/03/23(日) 11:03:44.18 ID:IgihfQRv0 だいたいstd::unique_ptrとstd::shard_ptrでは前者が1個のポインタと同じサイズなのに後者は2個分ある(ヒープにとられた参照カウンタへのポインタを持つため sizeof(shared_ptr)=16 sizeof(unique_ptr)=8 というのもあり、std::unique_ptr<T>で済むところをstd::shared_ptr<T>推しするのはいかがなものか…… http://mevius.5ch.net/test/read.cgi/tech/1698705458/789
790: デフォルトの名無しさん (ワッチョイ 0653-xG3a) [sage] 2025/03/23(日) 21:04:30.15 ID:k0m2+uGk0 >>789 shared_ptrを使えと言ってるのでなくunique_ptrの意味が特にないと言ってる 別に使ってもいいけどお前それをわかってんの?ってこと? ついでに言っておけばshared_ptrを使う場合ってのは参照カウントがゼロになったらシングルトンを破棄するみたいな凝った実装する場合に使う http://mevius.5ch.net/test/read.cgi/tech/1698705458/790
791: デフォルトの名無しさん (ワッチョイ ed7c-etgo) [sage] 2025/03/24(月) 00:16:57.44 ID:zeyD/Mo00 unique_ptrじゃなくてナマポ使えって言ってんの?どこでdeleteする気なの? http://mevius.5ch.net/test/read.cgi/tech/1698705458/791
792: デフォルトの名無しさん (ワッチョイ 0653-xG3a) [sage] 2025/03/24(月) 00:22:30.84 ID:wvKmLjta0 >>791 static Fooでいいだろってことだよ 自分で気づけなかったな http://mevius.5ch.net/test/read.cgi/tech/1698705458/792
793: デフォルトの名無しさん (ワッチョイ ed7c-etgo) [sage] 2025/03/24(月) 07:56:52.11 ID:zeyD/Mo00 えぇ・・・? http://mevius.5ch.net/test/read.cgi/tech/1698705458/793
794: デフォルトの名無しさん (ワッチョイ 65e7-aE+1) [sage] 2025/03/24(月) 08:43:05.04 ID:s0JFvm8m0 >>792 マルチスレッドで問題あるんじゃなかったっけ? 資料どこにあるか忘れたけど。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/794
795: デフォルトの名無しさん (ワッチョイ 65e7-aE+1) [sage] 2025/03/24(月) 08:50:28.31 ID:s0JFvm8m0 >>794 ずいぶん前に問題無くなっているのね。 https://cpprefjp.github.io/lang/cpp11/static_initialization_thread_safely.html http://mevius.5ch.net/test/read.cgi/tech/1698705458/795
796: デフォルトの名無しさん (ブーイモ MM62-xG3a) [sage] 2025/03/24(月) 09:19:49.44 ID:8nOZWVbeM >>795 もし解決されてないならunique_ptrでも問題出るでしょ http://mevius.5ch.net/test/read.cgi/tech/1698705458/796
797: デフォルトの名無しさん (ワッチョイ 4602-BGJw) [sage] 2025/03/24(月) 23:17:27.23 ID:C5SHS/Z30 Makefileについて教えてください。 ベースディレクトリにMakefileがあり、サブディレクトリは以下の構造としたいです ・src\内にhello.c func1.c func2.cが、include\内にfuncs.hがある ・*.oはobj\内に作る ・最終成果物は.\sample.exeとして作る ソースファイル、ヘッダファイルの増減時にSRCS、INCSを修正すれば済むようにと、 以下のようなMakefileを作っているのですが、makeすると *** No rule to make target 'obj/hello.o', needed by 'c_s
ample.exe'. Stop. となってしまいます ソースはsrc、オブジェクトはobjディレクトリとしている場合のサフィックスルールが正しくないので src/hello.cからobj/hello.oを作るルールを表現できていない、と個人的に思っているのですが、 どのようにすれば動作するか教えてください SRCDIR = ./src OBJDIR = ./obj INCDIR = ./include SRCS = hello.c funcs1.c funcs2.c OBJS = $(SRCS:%.c=%.o) INCS = funcs.h PROGRAM = c_sample.exe CC = gcc CFLAGS+= -g -Wall -I$(INCDIR) .SUFFIXES: .c .o all: $(PROGRAM) $(PROGRAM): $(OBJDIR)/$(OBJS) $(IN
CDIR)/$(INCS) $(CC) $(CFLAGS) -o $(PROGRAM) $^ .c.o: $(CC) $(CFLAGS) -c $(SRCDIR)/$< http://mevius.5ch.net/test/read.cgi/tech/1698705458/797
798: 797 (ワッチョイ 4602-BGJw) [sage] 2025/03/24(月) 23:24:39.28 ID:C5SHS/Z30 すいません、タブが崩れました 下の方ですが、全角スペースで記載してますが $(PROGRAM): $(OBJDIR)/$(OBJS) $(INCDIR)/$(INCS) $(CC) $(CFLAGS) -o $(PROGRAM) $^ .c.o: $(CC) $(CFLAGS) -c $(SRCDIR)/$< こうです 申し訳ありませんでした http://mevius.5ch.net/test/read.cgi/tech/1698705458/798
799: Fish (ワッチョイ 652f-MaZR) [] 2025/03/25(火) 02:35:59.65 ID:3npSY7mr0 OpenCVについての質問です。VS2022を使用し、includeやopencv_world4100d.libの設定が終わり、検証のためにMatを宣言してimread、imshowのみを書いて検証しようとしたのですが、dllの設定がうまくいってなかったのかコンソールにdllのloadがfailedと大量に出力されます。OpenCVの入れ方を教えてほしいです…まだC++初心者で5チャンの投稿も初心者なので何か変だったらすみません… http://mevius.5ch.net/test/read.cgi/tech/1698705458/799
800: デフォルトの名無しさん (アウアウウー Saa5-WcQO) [] 2025/03/25(火) 04:37:37.58 ID:ztarSHRBa >>798 .o: $(CC) $(CFLAGS) -c $(SRCDIR)/$< >>799 環境変数 http://mevius.5ch.net/test/read.cgi/tech/1698705458/800
801: デフォルトの名無しさん (ワッチョイ 9901-Awih) [sage] 2025/03/25(火) 12:24:02.95 ID:sbXkgTme0 >>799 exeと同じディレクトリにloadがfailedと言われるdll置いてみたら? http://mevius.5ch.net/test/read.cgi/tech/1698705458/801
802: デフォルトの名無しさん (ワッチョイ 6e6c-JaxA) [] 2025/03/26(水) 11:17:13.88 ID:ZFGsgZnF0 Makefileを作る時の$<と$?と$^の使い分けを教えて下さい 特に$<が何のためにあるのか分かりません。これだと2番目以降の材料が無視されてしまって動かない場合があるんじゃないかと心配になります。あと、makeは常に新しい材料のみコンパイルするという事は、すべてのケースで$?で良いのではと思ってしまいます。超初歩的な質問だと思いますがよろしくお願いします http://mevius.5ch.net/test/read.cgi/tech/1698705458/802
803: デフォルトの名無しさん (ワッチョイ 6518-hacg) [sage] 2025/03/26(水) 13:48:44.59 ID:GrIMF1MA0 C言語だとオブジェクトファイルの依存ファイルは,cファイルとそのcファイルが使うhファイルだけどコンパイルするのはあくまでcファイルだけ だから依存関係の1つ目にcファイルを,2個目以降にhファイルを書いておけば$<でコンパイルできる とかかな http://mevius.5ch.net/test/read.cgi/tech/1698705458/803
804: デフォルトの名無しさん (アウアウウー Saa5-WcQO) [sage] 2025/03/26(水) 15:00:53.93 ID:NpEBbPpga >>802 っ https://tex2e.github.io/blog/makefile/automatic-variables http://mevius.5ch.net/test/read.cgi/tech/1698705458/804
805: デフォルトの名無しさん (ワッチョイ 6232-bZOK) [] 2025/03/26(水) 15:48:44.68 ID:OM1iPrvu0 >>797 基本的にサフィックスルールは何十年も前からobsolete扱いなのでやめた方が良い http://mevius.5ch.net/test/read.cgi/tech/1698705458/805
806: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 09fa-p0tU) [sage] 2025/03/26(水) 20:50:04.73 ID:cSMtN3B/0 ところでこの場合の makefile の話は GNU Make を前提にするということでええんか? http://mevius.5ch.net/test/read.cgi/tech/1698705458/806
807: 797 (ワッチョイ 4602-BGJw) [sage] 2025/03/26(水) 22:53:57.57 ID:dm/+cX2j0 皆さんいろいろと情報をどうもです 結局、以下のようなものと落ち着いてます ちなみに使ってる環境のmakeはGNU Make 4.4で、GNU Makeの機能を多用してます 「$(OBJDIR)%.o: $(SRCDIR)%.c」と書ける理由は、pattern rulesという機能なのですかね ここをforeachとかで書こうとしてましたが、これでいけると聞き、書いてみたら動いたのでもうそのままです 以外に汎用性が出そうだと感じてますが、改良点があればまたご意見ほしいです PROGRAM = c_sample.exe SRCDIR = .
/src/ OBJDIR = ./obj/ INCDIR = ./include/ SRCS = $(wildcard ${SRCDIR}*.c) OBJS = $(addprefix $(OBJDIR), $(notdir $(patsubst %.c, %.o, ${SRCS}))) INCS = $(wildcard ${INCDIR}*.h) CC = gcc CFLAGS += -g -Wall -I$(INCDIR) all: $(PROGRAM) $(PROGRAM): $(OBJS) $(CC) $(CFLAGS) -o $(PROGRAM) $^ $(OBJDIR)%.o: $(SRCDIR)%.c $(INCS) Makefile $(CC) $(CFLAGS) -c $< -o $(patsubst $(SRCDIR)%, $(OBJDIR)%, $@) http://mevius.5ch.net/test/read.cgi/tech/1698705458/807
808: デフォルトの名無しさん (MX 0H1d-JaxA) [] 2025/03/26(水) 23:25:47.70 ID:Z/+2BBNHH >>803 >>804 ありがとうございます 助かりました http://mevius.5ch.net/test/read.cgi/tech/1698705458/808
809: デフォルトの名無しさん (ワッチョイ 9901-Awih) [sage] 2025/03/27(木) 00:00:17.61 ID:KC9fXGxH0 汎用するのならautotoolsを使った方が良いのでは? http://mevius.5ch.net/test/read.cgi/tech/1698705458/809
810: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-p0tU) [sage] 2025/03/27(木) 01:07:35.19 ID:gbE/Uiq80 拡張子に exe がついてるということはウィンドウズを想定してるんじゃないの? cygwin とか msys2 とかだと autotools を入れるのは簡単だけどそうじゃないならめんどいかも。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/810
811: デフォルトの名無しさん (ワッチョイ 06b2-xG3a) [sage] 2025/03/27(木) 02:03:57.32 ID:eJjdVc1D0 普通cmakeでしょ 好きじゃないけど http://mevius.5ch.net/test/read.cgi/tech/1698705458/811
812: デフォルトの名無しさん (ワッチョイ 6262-bZOK) [] 2025/03/27(木) 08:24:51.71 ID:8EB6UmzB0 >>807 分かったからもう消えろ ここはCのスレではないしmakeのスレでもない http://mevius.5ch.net/test/read.cgi/tech/1698705458/812
813: デフォルトの名無しさん (ワッチョイ 9901-Awih) [sage] 2025/03/27(木) 09:16:55.35 ID:KC9fXGxH0 makeスレなくなったね http://mevius.5ch.net/test/read.cgi/tech/1698705458/813
814: デフォルトの名無しさん (ワッチョイ 9901-Awih) [sage] 2025/03/27(木) 10:58:28.75 ID:KC9fXGxH0 ないと思ったらUNIX板だったようだ http://mevius.5ch.net/test/read.cgi/tech/1698705458/814
815: デフォルトの名無しさん (ワッチョイ 4202-rYal) [!donguri] 2025/03/27(木) 14:55:01.12 ID:OeqyroTj0 >>812 過疎ってきてるし C++とmakeは連動すること多いから 話題はあってもいいんじゃねーかと 書き込んでみるテスト http://mevius.5ch.net/test/read.cgi/tech/1698705458/815
816: デフォルトの名無しさん (ワッチョイ 4279-Br5P) [sage] 2025/03/27(木) 18:38:06.75 ID:bm95RmrL0 ノーマルスーツを着ろシャア http://mevius.5ch.net/test/read.cgi/tech/1698705458/816
817: デフォルトの名無しさん (アウアウウー Saa5-WcQO) [sage] 2025/03/28(金) 12:58:29.90 ID:VPiwRdmLa >>815 あってもいいけどコンパイラの使い方までかな makeは誘導した方が良いと思う http://mevius.5ch.net/test/read.cgi/tech/1698705458/817
818: デフォルトの名無しさん (ワッチョイ 6ea1-pnyl) [sage] 2025/04/06(日) 00:01:49.29 ID:xzDebXnC0 質問なのですが基底クラスでpublicとした仮想関数の可視性を派生クラスでprivateに狭めることができるのですが なんでこんな仕様なの? これは逆に言うと派生クラスでprivateとした一般メソッドに対し、 たまたま同じシグネチャの仮想関数を基底クラスで定義されたら基底クラス経由でprivateとしたメソッドを外部から呼び出せ てしまいカプセル化の危機……! そういう仕様になっているメリットとは一体…… http://mevius.5ch.net/test/read.cgi/te
ch/1698705458/818
819: デフォルトの名無しさん (ワッチョイ 4587-wZYf) [sage] 2025/04/06(日) 07:42:00.02 ID:xouJqKec0 前者は仮想関数を派生クラス経由で呼べないように出来る というか派生のコンストラクタをprivateにして、friend指定したcreatorクラス経由でしか生成出来ないようにするとかそういうのに便利 あと後者は、試してないけど派生の同シグネチャの関数は基底経由で呼べないと思うよ、vtblに登録されてないから http://mevius.5ch.net/test/read.cgi/tech/1698705458/819
820: デフォルトの名無しさん (ワッチョイ 45f5-pnlG) [sage] 2025/04/06(日) 08:51:38.89 ID:2WEREMbe0 継承に関しては早すぎる最適化の問題もあるから、そのまま使うんじゃなくてアダプタに切り離した方がいいと思う。 Boostあたりにアダプタ用のライブラリないかしらん。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/820
821: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-nY3F) [sage] 2025/04/06(日) 09:09:40.72 ID:CSMreA7R0 >>818 コードで言えばこういう状況かな? https://wandbox.org/permlink/gEndnLHWa7qEvNRP 基底にある仮想関数と同じシグネチャならオーバーライドするという規則は単純に言語設計の失敗。 だからこそ override 指定子が導入された。 override 指定子ではオーバーライドのつもりでオーバーライドになっていないときを検出できても オーバーライドではないつもりでオーバーライドになってしまうことは検出できないのだが…… 互換性を壊す
変更を入れるわけにもいかずそのままズルズルと今まで失敗を引きずってきたという歴史的経緯。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/821
822: デフォルトの名無しさん (ワッチョイ 45ba-wZYf) [sage] 2025/04/06(日) 09:14:57.63 ID:U2fAIE9I0 ああそっか、シグネチャ同じなら強制的にオーバーライドになるんだっけスマン http://mevius.5ch.net/test/read.cgi/tech/1698705458/822
823: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-nY3F) [sage] 2025/04/06(日) 09:27:02.17 ID:CSMreA7R0 意図せずオーバーライドになってしまうことがあるのは失敗だが、 意図して private でオーバーライドする分には「そういうインターフェイス」なのだからカプセル化の破綻ではないよ。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/823
824: デフォルトの名無しさん (ワッチョイ cd7c-a/1F) [sage] 2025/04/06(日) 10:21:41.86 ID:gleSakN+0 リスコフの置換原則を破るからあんまり良くはないと思うけどな 基底クラスとして振る舞わせる気がないならprivate継承すべきだ http://mevius.5ch.net/test/read.cgi/tech/1698705458/824
825: デフォルトの名無しさん (ワッチョイ 6ea1-pnyl) [sa] 2025/04/06(日) 10:25:35.73 ID:xzDebXnC0 >>821 なるほど…… virtualが省略可能なのが諸悪の根源かとオモタがそっちか…… >>823 通常はBaseクラス→派生クラス、の順で設計するから「そういうインターフェイス」と考えてだいたい良いのかもしれませんけども 派生クラスまで設計した後にBaseクラスにメソッドを追加して、それがたまたま派生クラス独自に定義したprivateメソッドと 同じシグネチャになってしまった場合、Baseクラス経由で派生クラスのprivateメソッドを意図せず呼べ
てしまうという 現象が再燃する…… http://mevius.5ch.net/test/read.cgi/tech/1698705458/825
826: デフォルトの名無しさん (ワッチョイ 6ea1-pnyl) [sage] 2025/04/06(日) 10:32:27.61 ID:xzDebXnC0 んまーBaseクラスにメソッドを追加しようとする時点で変更の影響範囲を派生クラスまで広げて調査すべき というのは正論やがコンパイラで検出可能な不都合のチェックのを人にやらせるのはイマイチ…… http://mevius.5ch.net/test/read.cgi/tech/1698705458/826
827: デフォルトの名無しさん (ワッチョイ 457b-wZYf) [sage] 2025/04/06(日) 11:31:20.83 ID:xouJqKec0 大抵のコンパイラで普通警告出るやろ? http://mevius.5ch.net/test/read.cgi/tech/1698705458/827
828: デフォルトの名無しさん (ワッチョイ bd5f-gX4K) [sage] 2025/04/06(日) 11:41:46.34 ID:Qy9uUb820 純粋仮装関数でも無ければ影響無いだろ だいいち使わない関数なら配慮する必要も無い http://mevius.5ch.net/test/read.cgi/tech/1698705458/828
829: デフォルトの名無しさん (ワッチョイ bd5f-gX4K) [sage] 2025/04/06(日) 11:42:28.71 ID:Qy9uUb820 全コンパイルは掛かるけどなw http://mevius.5ch.net/test/read.cgi/tech/1698705458/829
830: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-nY3F) [sage] 2025/04/06(日) 11:43:04.77 ID:CSMreA7R0 たとえば GCC なら -Wsuggest-override を付けておけば override 指定子なしでオーバーライドしているときを警告する。 https://wandbox.org/permlink/h6PGzqrDAAkAVeJO だけどこのオプションは -Wall にも -Wextra にも含まれてないから個別に指定しなきゃならなくて、普段は有効になってないのが普通かも。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/830
831: デフォルトの名無しさん (JP 0Hd1-yI6P) [] 2025/04/06(日) 11:54:04.73 ID:4eCwmFCZH 前から思ってたけど -Wall と銘打ってるのに All じゃないとはこれいかに http://mevius.5ch.net/test/read.cgi/tech/1698705458/831
832: デフォルトの名無しさん (JP 0Hd1-yI6P) [] 2025/04/06(日) 11:54:05.20 ID:4eCwmFCZH 前から思ってたけど -Wall と銘打ってるのに All じゃないとはこれいかに http://mevius.5ch.net/test/read.cgi/tech/1698705458/832
833: デフォルトの名無しさん (JP 0Hd1-yI6P) [] 2025/04/06(日) 11:54:58.77 ID:4eCwmFCZH (二重投稿スマン) http://mevius.5ch.net/test/read.cgi/tech/1698705458/833
834: デフォルトの名無しさん (ワッチョイ 6e10-ZtHn) [sage] 2025/04/06(日) 12:20:48.70 ID:JUJG8trR0 コンストラクタ呼び出しで()の時にinitializer_listを呼んでしまったときの警告と 逆に{}の時にinitializer_list以外を呼んでしまったときの警告がほしい http://mevius.5ch.net/test/read.cgi/tech/1698705458/834
835: デフォルトの名無しさん (ワッチョイ f901-x8Qa) [sage] 2025/04/06(日) 12:33:44.13 ID:KBEItHDk0 override指定子って初めて知ったけども-Wallで警告出るのは俺はやだな 警告が大量に出るソースばかりと思うし 警告出すほどにoverride指定子を付けるべきなのかちょっと疑問 http://mevius.5ch.net/test/read.cgi/tech/1698705458/835
836: デフォルトの名無しさん (ワッチョイ bd5f-gX4K) [sage] 2025/04/06(日) 13:09:33.59 ID:Qy9uUb820 overrideなんて飾りです privateも飾りです http://mevius.5ch.net/test/read.cgi/tech/1698705458/836
837: デフォルトの名無しさん (ワッチョイ a574-CpEl) [] 2025/04/06(日) 15:06:13.11 ID:BtyKUyO50 #define class struct #define private public #define protected public すれば大体はすり抜けられる http://mevius.5ch.net/test/read.cgi/tech/1698705458/837
838: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-xzp7) [sage] 2025/04/06(日) 16:50:10.05 ID:CSMreA7R0 >>837 `private` などは用途が限定的なキーワードだからそういうことも出来るけど `class` はちょっと問題があるな。 template<class T> class foo {}; みたいなのが破綻する。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/838
839: デフォルトの名無しさん (ササクッテロル Spd1-gX4K) [sage] 2025/04/07(月) 12:25:07.84 ID:yN1PvO54p classとstructは別ものだからなぁ http://mevius.5ch.net/test/read.cgi/tech/1698705458/839
840: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 696c-Uo71) [sage] 2025/04/07(月) 12:42:21.06 ID:ioyUXCRU0 C++ の言語仕様的分類では構造体というものはないのだが、 C との関係の都合で微妙な形で struct キーワードは残されてしまった。 これも歴史的経緯による変なところ。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/840
841: デフォルトの名無しさん (ワッチョイ 6e10-ZtHn) [sage] 2025/04/07(月) 14:49:45.64 ID:KdsoKBW+0 むしろキーワードとしてのclassがいらなかった 型は全部struct、構文の曖昧さを除くためのプレースホルダは全部typenameで良かった http://mevius.5ch.net/test/read.cgi/tech/1698705458/841
842: デフォルトの名無しさん (アウアウウー Sa05-nY3F) [sage] 2025/04/07(月) 15:01:27.29 ID:w0rhHNCza protectedは使った方が良いけどprivateは使いたくなるシーンがほとんど無い http://mevius.5ch.net/test/read.cgi/tech/1698705458/842
843: デフォルトの名無しさん (アウアウウー Sa05-nY3F) [sage] 2025/04/07(月) 15:02:24.36 ID:w0rhHNCza >>841 Rust使え http://mevius.5ch.net/test/read.cgi/tech/1698705458/843
844: デフォルトの名無しさん (ワッチョイ 6e10-ZtHn) [sage] 2025/04/08(火) 02:19:24.63 ID:o1kEMolW0 rustだってどうせ20年もすれば後からあーすればよかったこーすればよかった言ってるよ http://mevius.5ch.net/test/read.cgi/tech/1698705458/844
845: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-Uo71) [sage] 2025/04/08(火) 07:45:44.78 ID:veBTnWpR0 Rust はエディションごとに互換性が維持され、逆に言えばエディションをまたぐと互換性を損なっても良いというルール。 そして異なるエディションがひとつのプロジェクトに混在できる。 古いエディションから新しいエディションへの移行はかなり自動化されている。 最初から互換性を捨てることがありうる体制なので歴史的事情をいつまでも引きずることはない……と思うのだがこの体制でうまくいくかはやってみないとわからんね。 二十年くらいす
れば結果が見えてくるだろう。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/845
846: デフォルトの名無しさん (ササクッテロル Spd1-gX4K) [sage] 2025/04/08(火) 09:56:44.28 ID:HZL/zZFGp 開発ツールごと遺跡になって発掘される毎に解析されるんだよ http://mevius.5ch.net/test/read.cgi/tech/1698705458/846
847: デフォルトの名無しさん (ワッチョイ cd7c-a/1F) [sage] 2025/04/08(火) 19:53:49.89 ID:S61wTbWN0 似たような仕組みは歴史上何度も再発明されて全て爆死してるし 今の所うまく行ってるように見えてるのは、まだ大して使われてない証拠でしかないっておじさんは思っちゃうよ http://mevius.5ch.net/test/read.cgi/tech/1698705458/847
848: デフォルトの名無しさん (ワッチョイ bd5f-VGeA) [sage] 2025/04/10(木) 00:16:06.10 ID:nvkavsn60 現在公開されている世界最速grepツールであるripgrepがRustで組んであるってのがすごい http://mevius.5ch.net/test/read.cgi/tech/1698705458/848
849: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-9E30) [sage] 2025/04/10(木) 17:46:33.43 ID:SlMXr4vG0 >>848 C や C++ でやってやれないことはないと思うが使えるプログラムがあるのにフルスクラッチで書きなおそうと思うことがそもそもあまり無いからね。 新しい言語が登場するという形で整理する機会が生じるのは健全な進歩だと思う。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/849
850: デフォルトの名無しさん (オイコラミネオ MM95-exh5) [sage] 2025/04/11(金) 08:30:12.43 ID:9LNHX+AUM rustで一部の高速なシステムコールが追加されたらそれを使えばC++だろうが何だろうが関係なくなる でもどうせマルチスレッドのsimd使いなんだろうからシステム全体に過負荷になるからめんどくさい http://mevius.5ch.net/test/read.cgi/tech/1698705458/850
851: デフォルトの名無しさん (ワッチョイ 4694-PSZj) [sage] 2025/04/11(金) 08:37:04.65 ID:5PthuDCs0 ↑何これ?w http://mevius.5ch.net/test/read.cgi/tech/1698705458/851
852: デフォルトの名無しさん (ワッチョイ 829f-1egp) [sage] 2025/04/11(金) 13:45:57.41 ID:8HYvuWNF0 >システムコールが追加されたら ?? http://mevius.5ch.net/test/read.cgi/tech/1698705458/852
853: デフォルトの名無しさん (ラクッペペ MM66-XbuE) [sage] 2025/04/11(金) 13:57:42.36 ID:gEQ2gSNrM DOS「ファンクションコールと呼べ!」 http://mevius.5ch.net/test/read.cgi/tech/1698705458/853
854: デフォルトの名無しさん (ササクッテロロ Spd1-gX4K) [sage] 2025/04/11(金) 14:31:46.86 ID:2mKx2F8Up それってOS付属のランタイムをrustで書いたらって事? http://mevius.5ch.net/test/read.cgi/tech/1698705458/854
855: デフォルトの名無しさん (ワッチョイ 829f-1egp) [sage] 2025/04/11(金) 18:09:26.07 ID:8HYvuWNF0 glibcのシステムコールラッパーみたいなものがRustにもあればってことなのかそれともsyscall命令で飛ぶカーネルのコードがRustで書かれてればってことなのか 分からんね >>850は最近システムコールって言葉を知ったのかもしれない http://mevius.5ch.net/test/read.cgi/tech/1698705458/855
856: デフォルトの名無しさん (オイコラミネオ MM95-exh5) [sage] 2025/04/11(金) 18:48:50.71 ID:qqgfnt32M なんか頭悪そうな人間がたくさん噛みついてきてるけど生産性ゼロだなとしか… 何が言いたいんだよ お前らが単純にシステムコールを知らなかっただけだろう? OSに対してサービスの要求するのがシステムコールだ OSよって呼び方が違う http://mevius.5ch.net/test/read.cgi/tech/1698705458/856
857: デフォルトの名無しさん (ワッチョイ 4694-PSZj) [sage] 2025/04/11(金) 19:57:08.33 ID:5PthuDCs0 ↑何を馬鹿にされてるかもわかってない http://mevius.5ch.net/test/read.cgi/tech/1698705458/857
858: デフォルトの名無しさん (ワッチョイ 42e6-XbuE) [sage] 2025/04/11(金) 20:02:48.75 ID:S6J8cW8H0 イマドキgrepぐらいAPIで用意しとけと http://mevius.5ch.net/test/read.cgi/tech/1698705458/858
859: デフォルトの名無しさん (ワッチョイ cd7c-a/1F) [sage] 2025/04/11(金) 20:07:19.88 ID:Yq7fRKgz0 Rustって今こんなレベル低い人間も流れ込んでるのか そのうちJava化する運命だな http://mevius.5ch.net/test/read.cgi/tech/1698705458/859
860: デフォルトの名無しさん (ワッチョイ 02ad-S7Iq) [sage] 2025/04/11(金) 20:07:35.60 ID:9wDK2WuU0 >>856 そのシステムコールを提供するのはOS側であって「rustで一部の高速なシステムコールが追加されたら」ってのが意味不明だって話だぜ? http://mevius.5ch.net/test/read.cgi/tech/1698705458/860
861: デフォルトの名無しさん (オイコラミネオ MM95-exh5) [sage] 2025/04/11(金) 20:08:42.81 ID:qqgfnt32M >>857 理解不足なのはそっち http://mevius.5ch.net/test/read.cgi/tech/1698705458/861
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 141 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.028s