C++相談室 part166 (607レス)
上下前次1-新
47(1): (ワッチョイ 1202-mpUa) 05/08(木)19:02 ID:JGiTQ1yK0(2/2) AAS
>>45
そうでしたか
難しいですね…
48: はちみつ餃子◆8X2XSCHEME (ワッチョイ 6332-x8bn) 05/08(木)20:09 ID:aAWkv5hi0(3/3) AAS
>>47
難しい (分かり難い) と感じる部分を具体的に説明できる?
49(2): (ワッチョイ 1202-mpUa) 05/09(金)02:43 ID:gpRG314Y0(1/5) AAS
templeteでフォボナっちみたいのって、
実際に何に使うのかね…?
template<int n>
struct fibonacci
{
static constexpr int value = fibonacci<n-1>::value + fibonacci<n-2>::value;
};
50: (ワッチョイ af58-Enlg) 05/09(金)07:07 ID:+l+evNW70(1) AAS
もう見抜けない、最先端のAIディープフェイク動画は心臓の鼓動まで再現、判別が困難に
2025-05-08
外部リンク[html]:karapaia.com
51(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ cf30-6RYV) 05/09(金)09:22 ID:NaCqAF6G0(1) AAS
>>49
暗号関係などで用途はあると思うけど今なら関数 (costexpr) で定義したほうがいいな。
52(1): (ワッチョイ f7a6-b4kn) 05/09(金)11:24 ID:3QJ66PDO0(1) AAS
>>49
定数の計算を全部コンパイル時にやっちまおうぜというのが流行った時期があった
それでtemplateの目的外使用が過ぎたためにconstexprができた
53(1): (ワッチョイ 637c-pXdp) 05/09(金)15:56 ID:z5xnEJE80(1) AAS
ボレロさんが生きてた頃に比べるとつまんなくなったなconstexprさん
54: (ワッチョイ 1202-mpUa) 05/09(金)16:41 ID:gpRG314Y0(2/5) AAS
>>51
はちみつ餃子さんは何系のプログラマーでしょうか?
組み込み系?
55(1): (ワッチョイ 1202-mpUa) 05/09(金)16:43 ID:gpRG314Y0(3/5) AAS
>>52
ところで、
なんでコンパイラ側で、constを自動でconstexpに最適化しないんですかね…?
56: はちみつ餃子◆8X2XSCHEME (ワッチョイ 6332-6RYV) 05/09(金)16:47 ID:U8gSLCWq0(1/2) AAS
constexpr に特有のトリックは constexpr の制限故に生まれたのだから緩和されれば気合いの入った取り組みも要らんようになる。
真っ当な進歩なので文句は言えんがつまらんというのはわかる。
57(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 6332-6RYV) 05/09(金)16:53 ID:U8gSLCWq0(2/2) AAS
>>55
する。
const をつけて定義する変数の初期化子が定数式であるときその変数も定数になるというルールがある。
つまり初期化子が定数式なら const 変数と constexpr 変数は同一の効果をもつ。
58: (ワッチョイ 1202-mpUa) 05/09(金)20:05 ID:gpRG314Y0(4/5) AAS
>>57
そうでしたか
まあ、そうですよね…
59: (ワッチョイ 1202-mpUa) 05/09(金)20:07 ID:gpRG314Y0(5/5) AAS
>>53
陶芸家プログラマーか…
いろんな人がいるもんですね…
60: (ワッチョイ 928b-0urV) 05/09(金)21:48 ID:vpEUNnGu0(1) AAS
あの熱意で平均寿命まで生きていれば・・・
61: はちみつ餃子◆8X2XSCHEME (ワッチョイ 6332-6RYV) 05/10(土)12:01 ID:Mv0kFcWv0(1) AAS
定数まわりはググったり ChatGPT に質問したりしても理解しにくいんじゃないかな。
「定数」という言葉が違う意味で使われていてそれらがひとつの解説に混在したりするのが意味不明になる原因だと思う。
・なんか決め打ちの値という意味
・変更できない変数の意味
・C++ 規格用語としての定数の意味
62: (アウアウウー Sac3-7Zak) 05/10(土)12:14 ID:12iOKYOza(1) AAS
constant number
fixed number
magic number
63(1): デルフォトの名無し (ワッチョイ f34b-k+y7) [mage] 05/11(日)19:59 ID:8gkdAC4l0(1/5) AAS
RustのCargo的なツールってC++にありますか...?
ビルド、依存関係管理等が全部できるオールインワンなやつです。
64(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ f332-ZIVz) 05/11(日)20:12 ID:krziBUoq0(1/2) AAS
>>63
しいていえば Conan が近いと思うがビルド自体は指定したビルドツールに下請けさせる構造になってる。
プロジェクトのビルドをする仕組みが多用なので既存のプロジェクトを Conan の管理化に入れるといった状況を考えると C++ 的にはこうなるのは仕方がない……。
C/C++ では OS (ディストリビューション) のパッケージマネージャでライブラリを管理するのが普通だったので言語の側で統括的に扱うツールという文化が欠けてる。
65: デルフォトの名無し (ワッチョイ f34b-k+y7) [mage] 05/11(日)20:18 ID:8gkdAC4l0(2/5) AAS
>>64
そうなんですね...
今RustやってるんですけどC++も触ってみたいなと思って良さげなのないかなと探してるところなんです...
おすすめのビルドツールは何がありますか?
66(1): (ワッチョイ 03a6-XCeo) 05/11(日)20:21 ID:WWvVAeL50(1/4) AAS
OS提供のヘッダーファイルと連携しないといけないからね
rustだってOSのAPIとして使われるようになったら今の形のままでは済まされないはず
67(1): (ワッチョイ f34b-k+y7) 05/11(日)20:25 ID:8gkdAC4l0(3/5) AAS
>>66
OS提供のヘッダーファイル?
どんなのがあるんですかね...
68(1): (ワッチョイ 03a6-XCeo) 05/11(日)20:34 ID:WWvVAeL50(2/4) AAS
>>67
Windows SDKとかUNIX系なら/usr/includeにあるやつとかMacだと/Library/Developerとか
ひとつの環境に複数バージョン同時に入ってたりパスの規則もベンダーごとにばらばらだったり独自の拡張構文が使われてたりで処理系側のツールで吸収しきれるものではなく
自然>>64も言ってるOS側の管理に委ねるという方向に
69: (ワッチョイ f34b-k+y7) 05/11(日)20:42 ID:8gkdAC4l0(4/5) AAS
>>68
えぇ...そうなんですか...
C++にはcargoみたいな便利ツールはない...
OS管理...(´・ω・)
70(1): (ワッチョイ 03a6-XCeo) 05/11(日)20:58 ID:WWvVAeL50(3/4) AAS
別に便利ツール自体がないわけではなく、ライブラリはOS側のパッケージマネージャやcanonやバージョン管理ツールの機能等で揃えて
ビルドはcmakeというメタビルドツールで各OSの持つビルドツール向けの入力ファイルを生成したりということはする
統一感には欠けるしばらばらのものを組み合わせてるから躓く可能性もずっと高いけども
71: (ワッチョイ f34b-k+y7) 05/11(日)21:11 ID:8gkdAC4l0(5/5) AAS
>>70
バラバラなのはちょっとまずいですね...
なんか良さげなのないもんですかね...
72: (ワッチョイ f3d0-stkm) 05/11(日)21:16 ID:/xxB2yrb0(1/2) AAS
あくまで個人の意見だけど、パッケージマネージャーは conan より vcpkg の方が好き
conan はそれ自体が Python のパッケージなので、「リポジトリのルートに Python の仮想環境 (venv) を作る → 仮想環境にConan をインストールする → C++ のライブラリを管理する」の流れになるのがね…って気持ちになるかも
どちらにせよ conan や vcpkg は外部ライブラリの管理だけに使うもので、ビルドは cmake を使う
C++だとライブラリ間に依存関係があるものは少ないから、 Git のサブモジュールを使うとか、 clone したソースファイルをそのままプロジェクトに入れるとかする方法もある (綺麗ではないけど)
PythonのpipやRustのCargoがやってるような、バージョンを考慮した依存の解決はしなくて済むことが多い
73: はちみつ餃子◆8X2XSCHEME (ワッチョイ f332-G5I0) 05/11(日)21:17 ID:krziBUoq0(2/2) AAS
色々と事情はあるけどファイル数個で収まる程度 (初心者が書く程度) のプログラムならビルドツールがどうこう考える必要もないよ。コンパイラドライバを呼び出せばそれで終わり。
ファイルが増えたりサポートする実行環境が増えて手に負えなくなったときに続きを考えたら良い。
74(1): (ワッチョイ f3d0-stkm) 05/11(日)21:17 ID:/xxB2yrb0(2/2) AAS
リンク先の画像見てのようなミームがあるけど、残念ながらC++は割と本当にこの通りなんだよね…
Rustがめっちゃ楽なのはよく分かる
外部リンク:www.reddit.com
75(1): (ワッチョイ 03a6-XCeo) 05/11(日)22:02 ID:WWvVAeL50(4/4) AAS
自分の手元でさえビルドできればそれでいいなら統合開発環境に任せてしまう手も。何も考えなくても1クリックで最適にビルドしてくれるよ
76: (ワッチョイ 6f51-c72B) 05/11(日)22:18 ID:jee+W1o20(1) AAS
c++やるなら苦労経験した方がええやろ
上下前次1-新書関写板覧索設栞歴
あと 531 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s