!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part164
https://mevius.5ch.net/test/read.cgi/tech/1683600652/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C++相談室 part165
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ efda-9b8G)
2023/10/31(火) 07:37:38.52ID:+ZyYyqMO0790デフォルトの名無しさん (ワッチョイ 0653-xG3a)
2025/03/23(日) 21:04:30.15ID:k0m2+uGk0 >>789
shared_ptrを使えと言ってるのでなくunique_ptrの意味が特にないと言ってる
別に使ってもいいけどお前それをわかってんの?ってこと?
ついでに言っておけばshared_ptrを使う場合ってのは参照カウントがゼロになったらシングルトンを破棄するみたいな凝った実装する場合に使う
shared_ptrを使えと言ってるのでなくunique_ptrの意味が特にないと言ってる
別に使ってもいいけどお前それをわかってんの?ってこと?
ついでに言っておけばshared_ptrを使う場合ってのは参照カウントがゼロになったらシングルトンを破棄するみたいな凝った実装する場合に使う
791デフォルトの名無しさん (ワッチョイ ed7c-etgo)
2025/03/24(月) 00:16:57.44ID:zeyD/Mo00 unique_ptrじゃなくてナマポ使えって言ってんの?どこでdeleteする気なの?
792デフォルトの名無しさん (ワッチョイ 0653-xG3a)
2025/03/24(月) 00:22:30.84ID:wvKmLjta0793デフォルトの名無しさん (ワッチョイ ed7c-etgo)
2025/03/24(月) 07:56:52.11ID:zeyD/Mo00 えぇ・・・?
794デフォルトの名無しさん (ワッチョイ 65e7-aE+1)
2025/03/24(月) 08:43:05.04ID:s0JFvm8m0795デフォルトの名無しさん (ワッチョイ 65e7-aE+1)
2025/03/24(月) 08:50:28.31ID:s0JFvm8m0796デフォルトの名無しさん (ブーイモ MM62-xG3a)
2025/03/24(月) 09:19:49.44ID:8nOZWVbeM >>795
もし解決されてないならunique_ptrでも問題出るでしょ
もし解決されてないならunique_ptrでも問題出るでしょ
797デフォルトの名無しさん (ワッチョイ 4602-BGJw)
2025/03/24(月) 23:17:27.23ID: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_sample.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) $(INCDIR)/$(INCS)
$(CC) $(CFLAGS) -o $(PROGRAM) $^
.c.o:
$(CC) $(CFLAGS) -c $(SRCDIR)/$<
ベースディレクトリに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_sample.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) $(INCDIR)/$(INCS)
$(CC) $(CFLAGS) -o $(PROGRAM) $^
.c.o:
$(CC) $(CFLAGS) -c $(SRCDIR)/$<
798797 (ワッチョイ 4602-BGJw)
2025/03/24(月) 23:24:39.28ID:C5SHS/Z30 すいません、タブが崩れました
下の方ですが、全角スペースで記載してますが
$(PROGRAM): $(OBJDIR)/$(OBJS) $(INCDIR)/$(INCS)
$(CC) $(CFLAGS) -o $(PROGRAM) $^
.c.o:
$(CC) $(CFLAGS) -c $(SRCDIR)/$<
こうです
申し訳ありませんでした
下の方ですが、全角スペースで記載してますが
$(PROGRAM): $(OBJDIR)/$(OBJS) $(INCDIR)/$(INCS)
$(CC) $(CFLAGS) -o $(PROGRAM) $^
.c.o:
$(CC) $(CFLAGS) -c $(SRCDIR)/$<
こうです
申し訳ありませんでした
799Fish (ワッチョイ 652f-MaZR)
2025/03/25(火) 02:35:59.65ID:3npSY7mr0 OpenCVについての質問です。VS2022を使用し、includeやopencv_world4100d.libの設定が終わり、検証のためにMatを宣言してimread、imshowのみを書いて検証しようとしたのですが、dllの設定がうまくいってなかったのかコンソールにdllのloadがfailedと大量に出力されます。OpenCVの入れ方を教えてほしいです…まだC++初心者で5チャンの投稿も初心者なので何か変だったらすみません…
800デフォルトの名無しさん (アウアウウー Saa5-WcQO)
2025/03/25(火) 04:37:37.58ID:ztarSHRBa801デフォルトの名無しさん (ワッチョイ 9901-Awih)
2025/03/25(火) 12:24:02.95ID:sbXkgTme0 >>799
exeと同じディレクトリにloadがfailedと言われるdll置いてみたら?
exeと同じディレクトリにloadがfailedと言われるdll置いてみたら?
802デフォルトの名無しさん (ワッチョイ 6e6c-JaxA)
2025/03/26(水) 11:17:13.88ID:ZFGsgZnF0 Makefileを作る時の$<と$?と$^の使い分けを教えて下さい
特に$<が何のためにあるのか分かりません。これだと2番目以降の材料が無視されてしまって動かない場合があるんじゃないかと心配になります。あと、makeは常に新しい材料のみコンパイルするという事は、すべてのケースで$?で良いのではと思ってしまいます。超初歩的な質問だと思いますがよろしくお願いします
特に$<が何のためにあるのか分かりません。これだと2番目以降の材料が無視されてしまって動かない場合があるんじゃないかと心配になります。あと、makeは常に新しい材料のみコンパイルするという事は、すべてのケースで$?で良いのではと思ってしまいます。超初歩的な質問だと思いますがよろしくお願いします
803デフォルトの名無しさん (ワッチョイ 6518-hacg)
2025/03/26(水) 13:48:44.59ID:GrIMF1MA0 C言語だとオブジェクトファイルの依存ファイルは,cファイルとそのcファイルが使うhファイルだけどコンパイルするのはあくまでcファイルだけ
だから依存関係の1つ目にcファイルを,2個目以降にhファイルを書いておけば$<でコンパイルできる
とかかな
だから依存関係の1つ目にcファイルを,2個目以降にhファイルを書いておけば$<でコンパイルできる
とかかな
804デフォルトの名無しさん (アウアウウー Saa5-WcQO)
2025/03/26(水) 15:00:53.93ID:NpEBbPpga805デフォルトの名無しさん (ワッチョイ 6232-bZOK)
2025/03/26(水) 15:48:44.68ID:OM1iPrvu0 >>797
基本的にサフィックスルールは何十年も前からobsolete扱いなのでやめた方が良い
基本的にサフィックスルールは何十年も前からobsolete扱いなのでやめた方が良い
806はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 09fa-p0tU)
2025/03/26(水) 20:50:04.73ID:cSMtN3B/0 ところでこの場合の makefile の話は GNU Make を前提にするということでええんか?
807797 (ワッチョイ 4602-BGJw)
2025/03/26(水) 22:53:57.57ID: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)%, $@)
結局、以下のようなものと落ち着いてます
ちなみに使ってる環境の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)%, $@)
809デフォルトの名無しさん (ワッチョイ 9901-Awih)
2025/03/27(木) 00:00:17.61ID:KC9fXGxH0 汎用するのならautotoolsを使った方が良いのでは?
810はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-p0tU)
2025/03/27(木) 01:07:35.19ID:gbE/Uiq80 拡張子に exe がついてるということはウィンドウズを想定してるんじゃないの?
cygwin とか msys2 とかだと autotools を入れるのは簡単だけどそうじゃないならめんどいかも。
cygwin とか msys2 とかだと autotools を入れるのは簡単だけどそうじゃないならめんどいかも。
811デフォルトの名無しさん (ワッチョイ 06b2-xG3a)
2025/03/27(木) 02:03:57.32ID:eJjdVc1D0 普通cmakeでしょ
好きじゃないけど
好きじゃないけど
812デフォルトの名無しさん (ワッチョイ 6262-bZOK)
2025/03/27(木) 08:24:51.71ID:8EB6UmzB0813デフォルトの名無しさん (ワッチョイ 9901-Awih)
2025/03/27(木) 09:16:55.35ID:KC9fXGxH0 makeスレなくなったね
814デフォルトの名無しさん (ワッチョイ 9901-Awih)
2025/03/27(木) 10:58:28.75ID:KC9fXGxH0 ないと思ったらUNIX板だったようだ
815デフォルトの名無しさん (ワッチョイ 4202-rYal)
2025/03/27(木) 14:55:01.12ID:OeqyroTj0816デフォルトの名無しさん (ワッチョイ 4279-Br5P)
2025/03/27(木) 18:38:06.75ID:bm95RmrL0 ノーマルスーツを着ろシャア
817デフォルトの名無しさん (アウアウウー Saa5-WcQO)
2025/03/28(金) 12:58:29.90ID:VPiwRdmLa818デフォルトの名無しさん (ワッチョイ 6ea1-pnyl)
2025/04/06(日) 00:01:49.29ID:xzDebXnC0 質問なのですが基底クラスでpublicとした仮想関数の可視性を派生クラスでprivateに狭めることができるのですが
なんでこんな仕様なの?
これは逆に言うと派生クラスでprivateとした一般メソッドに対し、
たまたま同じシグネチャの仮想関数を基底クラスで定義されたら基底クラス経由でprivateとしたメソッドを外部から呼び出せ
てしまいカプセル化の危機……!
そういう仕様になっているメリットとは一体……
なんでこんな仕様なの?
これは逆に言うと派生クラスでprivateとした一般メソッドに対し、
たまたま同じシグネチャの仮想関数を基底クラスで定義されたら基底クラス経由でprivateとしたメソッドを外部から呼び出せ
てしまいカプセル化の危機……!
そういう仕様になっているメリットとは一体……
819デフォルトの名無しさん (ワッチョイ 4587-wZYf)
2025/04/06(日) 07:42:00.02ID:xouJqKec0 前者は仮想関数を派生クラス経由で呼べないように出来る
というか派生のコンストラクタをprivateにして、friend指定したcreatorクラス経由でしか生成出来ないようにするとかそういうのに便利
あと後者は、試してないけど派生の同シグネチャの関数は基底経由で呼べないと思うよ、vtblに登録されてないから
というか派生のコンストラクタをprivateにして、friend指定したcreatorクラス経由でしか生成出来ないようにするとかそういうのに便利
あと後者は、試してないけど派生の同シグネチャの関数は基底経由で呼べないと思うよ、vtblに登録されてないから
820デフォルトの名無しさん (ワッチョイ 45f5-pnlG)
2025/04/06(日) 08:51:38.89ID:2WEREMbe0 継承に関しては早すぎる最適化の問題もあるから、そのまま使うんじゃなくてアダプタに切り離した方がいいと思う。
Boostあたりにアダプタ用のライブラリないかしらん。
Boostあたりにアダプタ用のライブラリないかしらん。
821はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-nY3F)
2025/04/06(日) 09:09:40.72ID:CSMreA7R0 >>818
コードで言えばこういう状況かな?
https://wandbox.org/permlink/gEndnLHWa7qEvNRP
基底にある仮想関数と同じシグネチャならオーバーライドするという規則は単純に言語設計の失敗。
だからこそ override 指定子が導入された。
override 指定子ではオーバーライドのつもりでオーバーライドになっていないときを検出できても
オーバーライドではないつもりでオーバーライドになってしまうことは検出できないのだが……
互換性を壊す変更を入れるわけにもいかずそのままズルズルと今まで失敗を引きずってきたという歴史的経緯。
コードで言えばこういう状況かな?
https://wandbox.org/permlink/gEndnLHWa7qEvNRP
基底にある仮想関数と同じシグネチャならオーバーライドするという規則は単純に言語設計の失敗。
だからこそ override 指定子が導入された。
override 指定子ではオーバーライドのつもりでオーバーライドになっていないときを検出できても
オーバーライドではないつもりでオーバーライドになってしまうことは検出できないのだが……
互換性を壊す変更を入れるわけにもいかずそのままズルズルと今まで失敗を引きずってきたという歴史的経緯。
822デフォルトの名無しさん (ワッチョイ 45ba-wZYf)
2025/04/06(日) 09:14:57.63ID:U2fAIE9I0 ああそっか、シグネチャ同じなら強制的にオーバーライドになるんだっけスマン
823はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-nY3F)
2025/04/06(日) 09:27:02.17ID:CSMreA7R0 意図せずオーバーライドになってしまうことがあるのは失敗だが、
意図して private でオーバーライドする分には「そういうインターフェイス」なのだからカプセル化の破綻ではないよ。
意図して private でオーバーライドする分には「そういうインターフェイス」なのだからカプセル化の破綻ではないよ。
824デフォルトの名無しさん (ワッチョイ cd7c-a/1F)
2025/04/06(日) 10:21:41.86ID:gleSakN+0 リスコフの置換原則を破るからあんまり良くはないと思うけどな
基底クラスとして振る舞わせる気がないならprivate継承すべきだ
基底クラスとして振る舞わせる気がないならprivate継承すべきだ
825デフォルトの名無しさん (ワッチョイ 6ea1-pnyl)
2025/04/06(日) 10:25:35.73ID:xzDebXnC0826デフォルトの名無しさん (ワッチョイ 6ea1-pnyl)
2025/04/06(日) 10:32:27.61ID:xzDebXnC0 んまーBaseクラスにメソッドを追加しようとする時点で変更の影響範囲を派生クラスまで広げて調査すべき
というのは正論やがコンパイラで検出可能な不都合のチェックのを人にやらせるのはイマイチ……
というのは正論やがコンパイラで検出可能な不都合のチェックのを人にやらせるのはイマイチ……
827デフォルトの名無しさん (ワッチョイ 457b-wZYf)
2025/04/06(日) 11:31:20.83ID:xouJqKec0 大抵のコンパイラで普通警告出るやろ?
828デフォルトの名無しさん (ワッチョイ bd5f-gX4K)
2025/04/06(日) 11:41:46.34ID:Qy9uUb820 純粋仮装関数でも無ければ影響無いだろ
だいいち使わない関数なら配慮する必要も無い
だいいち使わない関数なら配慮する必要も無い
829デフォルトの名無しさん (ワッチョイ bd5f-gX4K)
2025/04/06(日) 11:42:28.71ID:Qy9uUb820 全コンパイルは掛かるけどなw
830はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-nY3F)
2025/04/06(日) 11:43:04.77ID:CSMreA7R0 たとえば GCC なら -Wsuggest-override を付けておけば override 指定子なしでオーバーライドしているときを警告する。
https://wandbox.org/permlink/h6PGzqrDAAkAVeJO
だけどこのオプションは -Wall にも -Wextra にも含まれてないから個別に指定しなきゃならなくて、普段は有効になってないのが普通かも。
https://wandbox.org/permlink/h6PGzqrDAAkAVeJO
だけどこのオプションは -Wall にも -Wextra にも含まれてないから個別に指定しなきゃならなくて、普段は有効になってないのが普通かも。
831デフォルトの名無しさん (JP 0Hd1-yI6P)
2025/04/06(日) 11:54:04.73ID:4eCwmFCZH 前から思ってたけど -Wall と銘打ってるのに All じゃないとはこれいかに
832デフォルトの名無しさん (JP 0Hd1-yI6P)
2025/04/06(日) 11:54:05.20ID:4eCwmFCZH 前から思ってたけど -Wall と銘打ってるのに All じゃないとはこれいかに
833デフォルトの名無しさん (JP 0Hd1-yI6P)
2025/04/06(日) 11:54:58.77ID:4eCwmFCZH (二重投稿スマン)
834デフォルトの名無しさん (ワッチョイ 6e10-ZtHn)
2025/04/06(日) 12:20:48.70ID:JUJG8trR0 コンストラクタ呼び出しで()の時にinitializer_listを呼んでしまったときの警告と
逆に{}の時にinitializer_list以外を呼んでしまったときの警告がほしい
逆に{}の時にinitializer_list以外を呼んでしまったときの警告がほしい
835デフォルトの名無しさん (ワッチョイ f901-x8Qa)
2025/04/06(日) 12:33:44.13ID:KBEItHDk0 override指定子って初めて知ったけども-Wallで警告出るのは俺はやだな
警告が大量に出るソースばかりと思うし
警告出すほどにoverride指定子を付けるべきなのかちょっと疑問
警告が大量に出るソースばかりと思うし
警告出すほどにoverride指定子を付けるべきなのかちょっと疑問
836デフォルトの名無しさん (ワッチョイ bd5f-gX4K)
2025/04/06(日) 13:09:33.59ID:Qy9uUb820 overrideなんて飾りです
privateも飾りです
privateも飾りです
837デフォルトの名無しさん (ワッチョイ a574-CpEl)
2025/04/06(日) 15:06:13.11ID:BtyKUyO50 #define class struct
#define private public
#define protected public
すれば大体はすり抜けられる
#define private public
#define protected public
すれば大体はすり抜けられる
838はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-xzp7)
2025/04/06(日) 16:50:10.05ID:CSMreA7R0 >>837
`private` などは用途が限定的なキーワードだからそういうことも出来るけど `class` はちょっと問題があるな。
template<class T> class foo {};
みたいなのが破綻する。
`private` などは用途が限定的なキーワードだからそういうことも出来るけど `class` はちょっと問題があるな。
template<class T> class foo {};
みたいなのが破綻する。
839デフォルトの名無しさん (ササクッテロル Spd1-gX4K)
2025/04/07(月) 12:25:07.84ID:yN1PvO54p classとstructは別ものだからなぁ
840はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 696c-Uo71)
2025/04/07(月) 12:42:21.06ID:ioyUXCRU0 C++ の言語仕様的分類では構造体というものはないのだが、 C との関係の都合で微妙な形で struct キーワードは残されてしまった。
これも歴史的経緯による変なところ。
これも歴史的経緯による変なところ。
841デフォルトの名無しさん (ワッチョイ 6e10-ZtHn)
2025/04/07(月) 14:49:45.64ID:KdsoKBW+0 むしろキーワードとしてのclassがいらなかった
型は全部struct、構文の曖昧さを除くためのプレースホルダは全部typenameで良かった
型は全部struct、構文の曖昧さを除くためのプレースホルダは全部typenameで良かった
842デフォルトの名無しさん (アウアウウー Sa05-nY3F)
2025/04/07(月) 15:01:27.29ID:w0rhHNCza protectedは使った方が良いけどprivateは使いたくなるシーンがほとんど無い
843デフォルトの名無しさん (アウアウウー Sa05-nY3F)
2025/04/07(月) 15:02:24.36ID:w0rhHNCza >>841
Rust使え
Rust使え
844デフォルトの名無しさん (ワッチョイ 6e10-ZtHn)
2025/04/08(火) 02:19:24.63ID:o1kEMolW0 rustだってどうせ20年もすれば後からあーすればよかったこーすればよかった言ってるよ
845はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-Uo71)
2025/04/08(火) 07:45:44.78ID:veBTnWpR0 Rust はエディションごとに互換性が維持され、逆に言えばエディションをまたぐと互換性を損なっても良いというルール。
そして異なるエディションがひとつのプロジェクトに混在できる。
古いエディションから新しいエディションへの移行はかなり自動化されている。
最初から互換性を捨てることがありうる体制なので歴史的事情をいつまでも引きずることはない……と思うのだがこの体制でうまくいくかはやってみないとわからんね。
二十年くらいすれば結果が見えてくるだろう。
そして異なるエディションがひとつのプロジェクトに混在できる。
古いエディションから新しいエディションへの移行はかなり自動化されている。
最初から互換性を捨てることがありうる体制なので歴史的事情をいつまでも引きずることはない……と思うのだがこの体制でうまくいくかはやってみないとわからんね。
二十年くらいすれば結果が見えてくるだろう。
846デフォルトの名無しさん (ササクッテロル Spd1-gX4K)
2025/04/08(火) 09:56:44.28ID:HZL/zZFGp 開発ツールごと遺跡になって発掘される毎に解析されるんだよ
847デフォルトの名無しさん (ワッチョイ cd7c-a/1F)
2025/04/08(火) 19:53:49.89ID:S61wTbWN0 似たような仕組みは歴史上何度も再発明されて全て爆死してるし
今の所うまく行ってるように見えてるのは、まだ大して使われてない証拠でしかないっておじさんは思っちゃうよ
今の所うまく行ってるように見えてるのは、まだ大して使われてない証拠でしかないっておじさんは思っちゃうよ
848デフォルトの名無しさん (ワッチョイ bd5f-VGeA)
2025/04/10(木) 00:16:06.10ID:nvkavsn60 現在公開されている世界最速grepツールであるripgrepがRustで組んであるってのがすごい
849はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-9E30)
2025/04/10(木) 17:46:33.43ID:SlMXr4vG0 >>848
C や C++ でやってやれないことはないと思うが使えるプログラムがあるのにフルスクラッチで書きなおそうと思うことがそもそもあまり無いからね。
新しい言語が登場するという形で整理する機会が生じるのは健全な進歩だと思う。
C や C++ でやってやれないことはないと思うが使えるプログラムがあるのにフルスクラッチで書きなおそうと思うことがそもそもあまり無いからね。
新しい言語が登場するという形で整理する機会が生じるのは健全な進歩だと思う。
850デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 08:30:12.43ID:9LNHX+AUM rustで一部の高速なシステムコールが追加されたらそれを使えばC++だろうが何だろうが関係なくなる
でもどうせマルチスレッドのsimd使いなんだろうからシステム全体に過負荷になるからめんどくさい
でもどうせマルチスレッドのsimd使いなんだろうからシステム全体に過負荷になるからめんどくさい
851デフォルトの名無しさん (ワッチョイ 4694-PSZj)
2025/04/11(金) 08:37:04.65ID:5PthuDCs0 ↑何これ?w
852デフォルトの名無しさん (ワッチョイ 829f-1egp)
2025/04/11(金) 13:45:57.41ID:8HYvuWNF0 >システムコールが追加されたら
??
??
853デフォルトの名無しさん (ラクッペペ MM66-XbuE)
2025/04/11(金) 13:57:42.36ID:gEQ2gSNrM DOS「ファンクションコールと呼べ!」
854デフォルトの名無しさん (ササクッテロロ Spd1-gX4K)
2025/04/11(金) 14:31:46.86ID:2mKx2F8Up それってOS付属のランタイムをrustで書いたらって事?
855デフォルトの名無しさん (ワッチョイ 829f-1egp)
2025/04/11(金) 18:09:26.07ID:8HYvuWNF0 glibcのシステムコールラッパーみたいなものがRustにもあればってことなのかそれともsyscall命令で飛ぶカーネルのコードがRustで書かれてればってことなのか
分からんね
>>850は最近システムコールって言葉を知ったのかもしれない
分からんね
>>850は最近システムコールって言葉を知ったのかもしれない
856デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 18:48:50.71ID:qqgfnt32M なんか頭悪そうな人間がたくさん噛みついてきてるけど生産性ゼロだなとしか…
何が言いたいんだよ
お前らが単純にシステムコールを知らなかっただけだろう?
OSに対してサービスの要求するのがシステムコールだ
OSよって呼び方が違う
何が言いたいんだよ
お前らが単純にシステムコールを知らなかっただけだろう?
OSに対してサービスの要求するのがシステムコールだ
OSよって呼び方が違う
857デフォルトの名無しさん (ワッチョイ 4694-PSZj)
2025/04/11(金) 19:57:08.33ID:5PthuDCs0 ↑何を馬鹿にされてるかもわかってない
858デフォルトの名無しさん (ワッチョイ 42e6-XbuE)
2025/04/11(金) 20:02:48.75ID:S6J8cW8H0 イマドキgrepぐらいAPIで用意しとけと
859デフォルトの名無しさん (ワッチョイ cd7c-a/1F)
2025/04/11(金) 20:07:19.88ID:Yq7fRKgz0 Rustって今こんなレベル低い人間も流れ込んでるのか
そのうちJava化する運命だな
そのうちJava化する運命だな
860デフォルトの名無しさん (ワッチョイ 02ad-S7Iq)
2025/04/11(金) 20:07:35.60ID:9wDK2WuU0 >>856
そのシステムコールを提供するのはOS側であって「rustで一部の高速なシステムコールが追加されたら」ってのが意味不明だって話だぜ?
そのシステムコールを提供するのはOS側であって「rustで一部の高速なシステムコールが追加されたら」ってのが意味不明だって話だぜ?
861デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 20:08:42.81ID:qqgfnt32M >>857
理解不足なのはそっち
理解不足なのはそっち
862デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 20:09:54.47ID:qqgfnt32M863デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 20:14:09.35ID:qqgfnt32M システムコールはOSが提供するのは当たり前
それがRustの特性に合わせた高速化が行われていても使う側はなんでもよいと言う話がなんでわからないのか馬鹿なのかなと
それがRustの特性に合わせた高速化が行われていても使う側はなんでもよいと言う話がなんでわからないのか馬鹿なのかなと
864デフォルトの名無しさん (ワッチョイ 02ad-S7Iq)
2025/04/11(金) 20:15:15.52ID:9wDK2WuU0 >>862
「rustで一部の高速なシステムコールが追加されたら」について説明を
「rustで一部の高速なシステムコールが追加されたら」について説明を
865デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 20:15:47.00ID:qqgfnt32M >>864
幼稚園児なのかな?
幼稚園児なのかな?
866デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 20:18:14.21ID:qqgfnt32M お前らrust "に" 一部の高速なシステムコールが~ と書いてあると勘違いしたんだろ
馬鹿すぎる
システムコールが追加されるのはOSだろ
馬鹿馬鹿しい
馬鹿すぎる
システムコールが追加されるのはOSだろ
馬鹿馬鹿しい
867デフォルトの名無しさん (ワッチョイ 02ad-S7Iq)
2025/04/11(金) 20:19:44.78ID:9wDK2WuU0 つまり>>848で書かれているツールの高速性は「Rustの言語仕様や機能に依存した話ではなくOS提供のシステムコールによるものだ」と言いたいのか
ふぅ〜ん
ふぅ〜ん
868デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 20:20:27.06ID:qqgfnt32M >>867
幼稚園児並みの馬鹿発見
幼稚園児並みの馬鹿発見
869デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 20:23:13.43ID:qqgfnt32M 馬鹿発見
851 名前:デフォルトの名無しさん (ワッチョイ 4694-PSZj)[sage] 投稿日:2025/04/11(金) 08:37:04.65 ID:5PthuDCs0 [1/2]
↑何これ?w
851 名前:デフォルトの名無しさん (ワッチョイ 4694-PSZj)[sage] 投稿日:2025/04/11(金) 08:37:04.65 ID:5PthuDCs0 [1/2]
↑何これ?w
870デフォルトの名無しさん (ブーイモ MM22-PSZj)
2025/04/11(金) 20:28:30.50ID:G/OJx5+6M 連投おつかれ
知ったかぶりは恥ずかしいよね
知ったかぶりは恥ずかしいよね
871デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 20:29:30.23ID:qqgfnt32M サブ回線使いだすほうが恥ずかしい
872デフォルトの名無しさん (ワッチョイ cd7c-a/1F)
2025/04/11(金) 20:34:48.29ID:Yq7fRKgz0 なんだよRust界隈のお客さんじゃなくていつもの大天才様くんかよ
おもんな
おもんな
873デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 20:47:02.26ID:qqgfnt32M874デフォルトの名無しさん (ワッチョイ 45f2-1egp)
2025/04/11(金) 20:52:01.51ID:edOe0r2X0 ああ,自分の誤った主張を説明しようとするとボロが見えるから自分に反論してくる人にレッテル貼って誤魔化してるのか
875デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 20:55:02.66ID:qqgfnt32M それはどっちだよw
876デフォルトの名無しさん (ワッチョイ 4d3e-Vpyu)
2025/04/11(金) 21:01:06.49ID:yx7ZxPSb0 >>850
何を言っているのか全然わからん。
Rust開発者の主張は
「C/C++並に速くC/C++より安全」
だから、
「rustで一部の高速なシステムコールが追加されたらそれを使えばC++だろうが何だろうが関係なくなる」
というのが高速の話ならそりゃそうだろとしか。
Rustが違うと言っているのはそこじゃなくて、
「ビルド通ればダングリングポインタとかオーバーフローとか無いから安全だよ(safe rust なら)」
ということかと。
何を言っているのか全然わからん。
Rust開発者の主張は
「C/C++並に速くC/C++より安全」
だから、
「rustで一部の高速なシステムコールが追加されたらそれを使えばC++だろうが何だろうが関係なくなる」
というのが高速の話ならそりゃそうだろとしか。
Rustが違うと言っているのはそこじゃなくて、
「ビルド通ればダングリングポインタとかオーバーフローとか無いから安全だよ(safe rust なら)」
ということかと。
877デフォルトの名無しさん (ワッチョイ 02ad-S7Iq)
2025/04/11(金) 21:03:21.88ID:9wDK2WuU0 すぐさまサブ回線使いだすとか言う辺り、自分でもサブ回線使ってそうだよね
「rustで一部の高速なシステムコールが追加されたら」についての説明が出来ない時点でね
「rustで一部の高速なシステムコールが追加されたら」についての説明が出来ない時点でね
878デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 22:20:53.69ID:qqgfnt32M >>877
すぐ上のジジイは理解できてると言うのに…
すぐ上のジジイは理解できてると言うのに…
879デフォルトの名無しさん (ワッチョイ 02ad-S7Iq)
2025/04/11(金) 22:23:05.46ID:9wDK2WuU0 何を言われているのかも分かってないようだw
880デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 22:24:47.66ID:qqgfnt32M いやいやw
未だに
> 「rustで一部の高速なシステムコールが追加されたら」についての説明が出来ない時点でね
と言ってる時点で認知症だろ
未だに
> 「rustで一部の高速なシステムコールが追加されたら」についての説明が出来ない時点でね
と言ってる時点で認知症だろ
881デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 22:29:25.47ID:qqgfnt32M ChatGPTにさっきのメッセージ食わせてみた
回答
たしかに、Rustで高速なシステムコールが追加されて、それを直接叩けるようになれば、言語による違いはある程度意味を失いますよね。
C++でもRustでも、結局はそのシステムコールにアクセスできるかどうかでパフォーマンスの上限が決まる。
ただおっしゃる通り、高速化しようとしてマルチスレッド+SIMDをガチで使い始めると、リソースの使い方が雑になりがちで、
他プロセスにまで影響出たりするのが悩ましいところ。
特に、CPUキャッシュやメモリ帯域を食い尽くすと、システム全体が重くなって「なんかPC遅い…」ってなるやつですね。
回答
たしかに、Rustで高速なシステムコールが追加されて、それを直接叩けるようになれば、言語による違いはある程度意味を失いますよね。
C++でもRustでも、結局はそのシステムコールにアクセスできるかどうかでパフォーマンスの上限が決まる。
ただおっしゃる通り、高速化しようとしてマルチスレッド+SIMDをガチで使い始めると、リソースの使い方が雑になりがちで、
他プロセスにまで影響出たりするのが悩ましいところ。
特に、CPUキャッシュやメモリ帯域を食い尽くすと、システム全体が重くなって「なんかPC遅い…」ってなるやつですね。
882デフォルトの名無しさん (ワッチョイ 46ee-PSZj)
2025/04/11(金) 22:34:55.84ID:5PthuDCs0 恥の上塗りw
883デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 22:41:15.01ID:qqgfnt32M これぐらいの意味が取れないってどういうことなんだお前らは?
884デフォルトの名無しさん (ワッチョイ 4dd9-GhsC)
2025/04/11(金) 22:44:03.19ID:Lf3Jev+n0 cmakeでbuildするC++プロジェクトのバイナリを配布したいんだが
この場合生成されたbinディレクトリを抜き出せばいいんでしょうか?
こういうことは初めてでよくわかりません
この場合生成されたbinディレクトリを抜き出せばいいんでしょうか?
こういうことは初めてでよくわかりません
885デフォルトの名無しさん (ワッチョイ 46ee-PSZj)
2025/04/11(金) 22:47:45.89ID:5PthuDCs0 ChatGPTを使うにも知識と知恵がいるんだよ
バカは質問の仕方が下手
---
「Rustでシステムコールを追加する」という表現は 文脈によっては誤解を招きやすく、通常の意味では少し不適切 です
1. Rustで書かれたOSの中に、新たなシステムコールを実装する
→ 例:Rust製OS(例:Redox OSなど)にsyscallを加える。
→ この場合は正しい文脈。
2. Rustでカーネルモジュールを書いてシステムコールを追加する
→ 実現可能だがLinuxでは一般的ではなく、安全性に注意が必要。
3. RustでOSとやりとりするAPIを自作して、それを便宜的に「システムコール」と呼んだ
→ 厳密には誤用。OSレベルの syscall とは異なる。
バカは質問の仕方が下手
---
「Rustでシステムコールを追加する」という表現は 文脈によっては誤解を招きやすく、通常の意味では少し不適切 です
1. Rustで書かれたOSの中に、新たなシステムコールを実装する
→ 例:Rust製OS(例:Redox OSなど)にsyscallを加える。
→ この場合は正しい文脈。
2. Rustでカーネルモジュールを書いてシステムコールを追加する
→ 実現可能だがLinuxでは一般的ではなく、安全性に注意が必要。
3. RustでOSとやりとりするAPIを自作して、それを便宜的に「システムコール」と呼んだ
→ 厳密には誤用。OSレベルの syscall とは異なる。
886デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 22:54:08.95ID:qqgfnt32M >>885
自分では意味が取れなかったんだろ?ただの馬鹿自慢だろ?
自分では意味が取れなかったんだろ?ただの馬鹿自慢だろ?
887デフォルトの名無しさん (ワッチョイ 46ee-PSZj)
2025/04/11(金) 22:56:17.51ID:5PthuDCs0 ほんとこいつ頭悪いw
どうバカにされたかも理解できない
どうバカにされたかも理解できない
888デフォルトの名無しさん (オイコラミネオ MM95-exh5)
2025/04/11(金) 22:57:06.69ID:qqgfnt32M889デフォルトの名無しさん (JP 0H66-GhsC)
2025/04/11(金) 23:09:03.39ID:FTY9KFp+H cpack使えばいいのか
自己解決
自己解決
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市総理の周辺「小さな火種が火事になりかけている。早く鎮火しないといけない」 [Hitzeschleier★]
- 【反発強まる中】日本外務省の担当局長が17日に日本を出発し中国訪問へ… ★5 [BFU★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」 [冬月記者★]
- 中国の複数の旅行社、日本ツアーを中止 政府の訪日自粛要請受け [蚤の市★]
- 【北京中継】「日本国民はとても友好的」日本訪問予定の中国人は冷静な反応…中国側報道「高市首相は辞任すべき」 [煮卵★]
- 俳優 高岡蒼佑「エジプト出身とかナイジェリア出身とかの人が、日本の代表顔して移民の事とか話してるの見るとなんか違う気がする」 [Anonymous★]
- とらせん デバニー立石
- @@@令和七年大相撲九州場所 vol.7@@@
- 侍ジャパンシリーズ2025「日本vs韓国」その12
- @@@令和七年大相撲九州場所 vol.6@@@
- こいせん 全レス転載禁止
- はません
- 中国の複数の大手旅行会社が日本旅行の販売を停止、高市のおばちゃんの答弁が原因😲 [861717324]
- 【オワタ】中国外務省「李強首相がG20会合中に日本の指導者と会談する予定はない」と発言 [812874503]
- 俳優・高岡蒼佑(43)「エジプト出身とかの人が、日本の代表みたいな顔して移民の事とか話してるの見ると、なんか違う気がする」 [377482965]
- 鹿ウヨ「高市さんの問題発言を引き出した立憲が悪いけど高市さんが言ってることは正しいので問題ない」🤔 [931948549]
- ミヤネ屋「これ、立憲民主党さんの岡田さんが「台湾」という誘導尋問で意図的に高市早苗首相を貶めたんとちゃいまかぁ!?」 [779857986]
- 【朗報】高市早苗委員、4年前の予算委員会で「台湾有事は日本有事」発言をわざわざ質問していた… 日本の国防のため当然の質問だね [452836546]
