[過去ログ] C++相談室 part165 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
75(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ 9f3e-pD6R) [sage] 2023/12/11(月) 15:45:20.57 ID:wAhsIAfi0(1/2) AAS
>>7272(2): デフォルトの名無しさん (ワッチョイ 9f1f-oseA) [sage] 2023/12/11(月) 15:17:51.77 ID:7vxydTfj0(1/2) AAS
ある構造体Aがあります
Aの比較関数が複数ありますcompA0,compA1,compA2,...
比較関数の関数ポインタがありますcompA
compA = &compA2;
別の構造体Bがあります
BはAを内包しています
struct B{ A a; ... };
この構造体Bを、Aの比較関数ポインタcompAで比較してソートするにはどう記述すればよいですか?
std::vector<B> bs;
bs.push_back(...);...
std::sort(bs.begin(),bs.end(),?);
できればラムダ式を使わずにできるとありがたいです
もし C++20 を使えるなら (std::sort と違って) std::ranges::sort では比較関数とは別に
比較すべき要素を取り出す操作をプロジェクションとして与えることが出来るから
これ一発でいけてだいぶん楽できる。
std::ranges::sort(bs, compA, &B::a);
206: デフォルトの名無しさん (ワッチョイ 5702-VoFb) [] 2024/02/05(月) 20:47:16.57 ID:dvRwXcQL0(1) AAS
ある構造体(集成体)Aについてconstexprでa1, a2, a3・・・といくつか作りました
別のクラスBのメンバ変数にconst A* m_ptrAがあってconstexprで作ったインスタンスのどれかを指すことにします
この時Bのメンバ関数などで、
if(m_ptrA== &a1) という比較・条件分岐を行うのは意味のある比較になっているのでしょうか?
214: デフォルトの名無しさん (ワッチョイ 377c-Hbjn) [sage] 2024/02/06(火) 22:29:48.57 ID:SZ6XHr3I0(1) AAS
C++の配列添字はstd::ptrdiff_t(符号付き)です
310: デフォルトの名無しさん (ワッチョイ abe4-XE6S) [] 2024/03/04(月) 10:20:12.57 ID:QvxlWFfk0(1/2) AAS
例外安全には基本保証・強い保証・no-fail保証がある
例外がスローされない関数を作ればno-fail保証がある
基本保証や強い保証は例外発生後も不整合が発生しないもの
たとえば例外が発生した関数をもう一度呼び出すと「すでに実行中です」とエラーを返すようなものは例外安全ではない(おそらく実行中フラグ変数が立ったままになっている)
332: デフォルトの名無しさん (ワッチョイ bed6-w0ma) [sage] 2024/05/11(土) 11:19:25.57 ID:PrWZroBw0(1) AAS
規格が読めないならC++やめろ
367: デフォルトの名無しさん (ワッチョイ e91c-hIhh) [] 2024/07/16(火) 12:22:56.57 ID:gS8T2k/f0(1) AAS
>>342CMakeとNinjaはC++の話題なのでOKです
428: デフォルトの名無しさん (ワッチョイ 2963-G6Q9) [sage] 2024/08/27(火) 07:35:09.57 ID:NdPbjHCm0(2/2) AAS
しかしまあ特殊化してテンプレート引数の型Tについて
態と存在しないメソッドを呼ぶように書いたらその特殊化ケースについて展開を阻止できうる(適当
クラス内でint型定数が欲しかったら古き良き enum { ONE, TWO, THREE } で十分やし
同じことをやる手段を増やせば良いってもんじゃないぞPerlじゃあるまいし……
446: デフォルトの名無しさん (ワッチョイ 27ea-60ma) [sage] 2024/09/07(土) 16:26:14.57 ID:lSV8lU690(1/2) AAS
>>445考え方にもよるだろうけど、確保も解放も所有もしない関数でスマポ受け取る必要あるか?
特定の用途で管理されている特定のポインタしか許容しない、という意図ならスマポの参照でもいいだろうけど、汎用性は無いよね
生ポ受け取る場合暗黙のキャストも効かないし
485: デフォルトの名無しさん (アウアウエー Saaa-rNKn) [] 2024/09/27(金) 16:54:13.57 ID:pgg/4VuRa(2/4) AAS
>>482結局Cが正解なんよ
C++のスレで言うのもなんだけど
633: デフォルトの名無しさん (ワッチョイ a7ad-7Ydj) [sage] 2024/12/08(日) 19:55:22.57 ID:R/m6cDay0(1) AAS
mdspan でいいんじゃないかと
807(1): 797 (ワッチョイ 4602-BGJw) [sage] 2025/03/26(水) 22:53:57.57 ID:dm/+cX2j0(1) AAS
皆さんいろいろと情報をどうもです
結局、以下のようなものと落ち着いてます
ちなみに使ってる環境の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)%, $@)
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.040s