C++相談室 part165

■ このスレッドは過去ログ倉庫に格納されています
2023/10/31(火) 07:37:38.52ID:+ZyYyqMO0
!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
2025/01/10(金) 19:32:01.54ID:2xRvglud0
名前が広く知られる必要も意味もない。
話を追いやすくするのが主目的であって「私」というキャラクタを主張したいわけではないので、むしろ意図的に 5ch 上でだけはちみつ餃子と名乗ってる。
(元々はSCHEME餃子と名乗っていたが Scheme スレ以外にも書き込むので変えた。)
Twitter (X) のアカウントも持ってはいるけど。
2025/01/10(金) 19:36:59.79ID:2xRvglud0
議論してても別の主張と混同されたり自演認定してくるやつがいたりして本筋からズレまくって面倒くせぇことが結構あるんだよ。
コテハンはコテハンでなんだかんだ言うやつがいるからどっちもどっちで面倒くせぇけどな。
2025/01/11(土) 12:15:30.40ID:RVo7o+pP0
酉だけで十分では
2025/01/11(土) 20:48:36.46ID:bI8uLgjvr
「一応署名」するんなら、CNはあったらいいぞ
2025/01/18(土) 07:24:59.91ID:Kzk7GzSP0
動作から見るポインタと配列の違い……
char arr[] = "abc";
char* p = &(arr[0]);
assert(&p != &(arr[0]));
assert((void*)arr == (void*)&(arr[0]));
いや知らんけど多分……

メモリ割り付けまで見たらもっとはっきり違いがわかるパースン
2025/01/18(土) 07:27:41.04ID:Kzk7GzSP0
訂正orz……
誤: assert((void*)arr == (void*)&(arr[0]));
正: assert((void*)&arr == (void*)&(arr[0]));
2025/01/24(金) 23:21:44.53ID:U5y9xmGO0
コンパイル時にsoファイルをリンクする時って参照されるsoファイルを参照している側よりも後ろに書くみたいなルールあると思うんだけど、
このルールに従わずsoファイルを前に書いた時にコンパイル成功する環境と失敗する環境がある

失敗するときのエラーはundefined reference errorでso側を参照しているところでエラーになってる

gccのバージョンは一応同じで、OSはwslのUbuntuとRedHat
Redhat側で成功している
コンパイルするときのコマンドは同じもの

原因ってどのへんにあるのかわかります? あるいは何らかの設定で回避できるとか

似た事象でこの辺が引っかかったけど答えはなかった
ttps://forums.debian.net/viewtopic.php?t=152808
2025/01/25(土) 00:01:43.45ID:xAYAQReB0
環境変数の違いじゃないのLD_PRELOADとか
2025/01/25(土) 15:04:34.61ID:Q3LYFAxD0
LD_PRELOADが影響与えるのは実行時なのでは?
2025/01/25(土) 15:11:01.85ID:LC7IJQQw0
せやな

書ける範囲で具体的なオプションを書いてくれると助かる
もしかしてディストリでsoの置き場所が違うのにそれに対応してないとか?
2025/01/25(土) 17:20:55.15ID:W3I6NstP0
使ったことないけどマニュアル見る限り-tでリンクするファイル表示できるっぽいな
2025/01/25(土) 18:16:04.92ID:s6qQIUHWa
今日から、reasonというDTMソフトの、rack extentionを作るために学ぶことに決めました。
2025/01/26(日) 10:12:34.34ID:bIavjdz2a
core javaみたいな、書籍がC++にも無いかなあ。
2025/01/26(日) 16:16:40.95ID:ZRokd9b50
>>668
遅くなってすまぬ
だいたいこんな感じ

失敗するコマンド
g++ -L$LibPath -lTestLib -o Test main.cpp

成功するコマンド
g++ -L$LibPath -o Test main.cpp -lTestLib

TestLibのファイル名はlibTestLib.so

このあたりを読むに(ttps://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html)
リンク時のライブラリ指定の順番的は後者が正しいと思うんだけど、なぜかRedHatの方だとエラーが出ない

RedHatの動的ライブラリ周りの記述を見ると"gcc ... -Llibrary_path -lfoo ..."みたいな書き方しかしていない
https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/9/html/developing_c_and_cpp_applications_in_rhel_9/using-libraries-with-gcc_assembly_creating-c-or-cpp-applications#using-a-dynamic-library-with-gcc_using-libraries-with-gcc
2025/01/26(日) 21:28:32.98ID:h08Ozzg50
Redhatで俺様パッチでも当たってるんかな?
2025/01/27(月) 10:03:20.61ID:CEXr069M0
GNU Linker では順番通りに一度しか探査しない仕様なので指定の順番に意味がある。
どういう順番でも通るなら GNU Linker 以外が設定されてるんじゃないのかな。
g++ はフロントエンドに過ぎないし、呼び出すリンカを変えるように設定は出来る(されてるかもしれない)よ。
2025/01/31(金) 00:55:21.04ID:07X4f1Va0
そういえばリンカーが何かって確認してなかった
後で確認してみる。ありがとう
2025/02/10(月) 11:15:20.00ID:cWC6BpGk0
主要なリンカとしては gold, lld, mold などがある。
これらに比べると GNU Linker は単純に遅い。
ただ、オブジェクトファイルの構造には文書化されていない場当たり的に決められた不明瞭な部分も多くてよくわからんところは「GNU Linker の挙動が仕様」みたいな扱いなので確実に「正しい動作」を期待する保守的なディストリビューションは GNU Linker を採用することも結構ある。
2025/02/10(月) 17:33:04.35ID:fQxZ+XGm0
グローバルな変数を使う時って、
namespace hoge{ constexpr int hoge; };

class hoge{ static int hoge; };
のどっちを使うべきですか?
2025/02/10(月) 18:47:33.05ID:6W8L/x5D0
どうでもいい
好きにやれ
2025/02/10(月) 19:05:23.46ID:FgXBIPm00
上のconstexprはいらない
何のためにつけたか不明だが
2025/02/10(月) 19:22:59.53ID:LsLUwoXt0
昔はグローバル変数の代わりに関数のstatic local 変数を使ってたけど、最近はどうなのかしらん?
2025/02/10(月) 19:32:01.21ID:cWC6BpGk0
>>677
どちらの変数もグローバル名前空間スコープで宣言されていない。
2025/02/16(日) 10:13:30.97ID:AY7cmtZI0
namespace foo { int hoge; } だとusing foo::hoge; ができるが
class Foo { public: static int hoge; } だと using Foo::hoge; できない
という印象、
2025/02/16(日) 10:17:01.36ID:AY7cmtZI0
オブジェクトの寿命がプログラムの開始から終わりまでずっとあるがグローバル名前空間スコープで宣言されていないがために
グローバル変数と言ってはいけないならが
オブジェクトの寿命がプログラムの開始から終わりまでずっとあるがグローバル名前空間スコープで宣言されていないオブジェクトは
何て言えば良いんじゃ……
2025/02/16(日) 10:19:16.22ID:3LJfyOAU0
>>683
静的記憶域期間の変数
2025/02/16(日) 10:21:00.02ID:AY7cmtZI0
今やDouble-Checked Locking is Fixed In C++11されたのだから
static local 変数を使う意味は無くなた
※ 個人の感想です
2025/02/16(日) 10:23:32.78ID:AY7cmtZI0
>>684
なるほど……
これからはレビューでグローバル変数と口走る香具師が居たらすかさず訂正を要求するわ㌧クス、
2025/02/17(月) 10:05:32.77ID:tIRsmIw80
言語仕様 (C++23) 内でグローバル変数 (global variable) という語を使っている箇所を検索してみたら二箇所みつけた。
https://timsong-cpp.github.io/cppwp/n4950/diagnostics.general#2
https://timsong-cpp.github.io/cppwp/n4950/fs.op.current.path#5

前者は意味がわからん……英語と C++ に詳しい人は解説してくれんか。
後者はどこで変更されるかわからんものというニュアンスで、文法上の分類としての意味はなさそう。
2025/02/17(月) 10:30:13.63ID:afCQWVrm0
errnoのことでしょ、昔は本当にグローバル変数だったらしいし、そのせいか今も「errnoはグローバル変数です」って説明がそこら中に転がってる
そこセクション概要だし、後者と同じで別に言語仕様上の意味はないと思う

お客様の中にC/C++/UNIX/POSIXそれぞれにおけるerrnoの仕様/記述の歴史家はおられませんか
2025/02/18(火) 00:30:31.98ID:lk7OswCX0
>グローバル変数とは、複数の関数から使用できる変数のことを言います。
>グローバル変数は、関数外で宣言された変数です。
>一方、関数の外側でも変数を宣言できます。 これを グローバル変数 と言います。
ぢつは自動変数以外はTLSもファイルスコープのやつも静的記憶期間の変数も全
部グローバル変数だったりして……
2025/02/18(火) 00:33:19.53ID:lk7OswCX0
当然オブジェクトのメンバ変数も関数の外でクラスが定義されている限り、
自動オブジェクトであってもメンバ変数は例外なくグローバル変数である
という定義にしたら単純で誤解の余地も無い
2025/02/18(火) 00:44:49.13ID:lk7OswCX0
しかしよく考えたら
>グローバル変数とは、複数の関数から使用できる変数のことを言います。
には他の関数に参照渡しされた自動変数も含まれるから、アドレスが関数外に流出して
メモリエリアシングの可能性がある変数はみなグローバル変数ということなのかも……
692デフォルトの名無しさん (ワッチョイ 6eda-u+d+)
垢版 |
2025/02/24(月) 18:03:30.63ID:0Dav+b+p0
現在C++を勉強しています
規格書を読んで分からないところはChatGPTに質問すれば
大体解決してしまうのですが、こんな楽な勉強方法でいいんでしょうか?
昔、入門書読んでは挫折を繰り返してたのがバカバカしくなりました
2025/02/24(月) 18:13:54.21ID:0Bg+pEV3M
>>692
それ何の心配?
そもそもプログラミングをAIにやらせること考えたら?
2025/02/24(月) 21:25:46.59ID:JORyVgSx0
良い時代になったね
2025/02/25(火) 16:07:34.32ID:6jOr+W/20
初心者は何が分からないのか分からない。
つまり的確な質問は出来ない。
要領を得ない質問から上手く察して回答するのは難しいよ。
(人間の指導者でも。)

学習の最序盤では入門書を読んで一方的に知識を詰め込む段階は要ると思う。
(それによって最低限に意味が伝わる質問が出来るようになる程度には。)
基礎を詰め込んだ後なら詳細を規格から探し回るよりは AI のサポートがあると便利ではあるかもね。
2025/02/26(水) 09:46:27.50ID:nAW17uc20
超賢い検索サイトだと思って付き合ったらいい
いきなり答え出ちゃったり、違うそうじゃないっていうのが出たり
楽しめるようなら楽しめる
2025/02/26(水) 20:06:27.25ID:lLwolgid0
初心者用のC++スレってここでいいですか?
2025/02/26(水) 22:17:10.74ID:6jOr+W/20
>>697
特に初心者向けというわけではありませんが、初心者が駄目なわけでもありません。
C++ 関連の雑多な話題のスレという感じですね。
2025/02/27(木) 11:05:40.67ID:+3VmvrWI0
>>698
ありがとうございます
最近勉強を始めましたので分からないことがありましたらご教示いただければと思います
700青木康善 (ワッチョイ 09f9-8/4C)
垢版 |
2025/02/28(金) 21:57:23.23ID:p5+awhy00
DTMソフトのReasonのRack Extensionを作るのに、C++を覚えなきゃいけなくなりました。

独習C++とchat GPT頼りになんとか作りたいです。

環境変数の段階で躓いてます。
2025/02/28(金) 23:50:16.76ID:s8Qhss0ud
環境変数の話はC++の話ってより、Unix系の環境でのUIの話になるんだよね。
シェルスクリプトが中心にいるような世界だと、ああいうやりかたで設定するのが便利だったっていう。

正直、とりあえず無視して進んでもいい話だと思うよ。
優先度低いから、必要になってから学び直す感じで。
2025/03/01(土) 00:04:13.00ID:2btke4iS0
>>700
プラグイン的なものを作る場合はベースになるソフトの仕様に従わなければならない。
設計思想を理解するのは自分で一から設計する場合とは違った難しさがある。
入門書を読んだ程度で取り組むには ChatGPT の助けを借りても難しすぎるように私には思えるが……。

>>701
開発環境構築にあたって設定しなければならない (処理系や開発環境が参照する) 環境変数がよくわからんとかいう意味だと私は理解してた。
もしそういう意味なら必要になってからというんじゃなくて今必要なんだろ。
Java の経験はあるようなので環境変数の概念がわからんとかではないと思う。
2025/03/01(土) 01:37:40.11ID:YfcGT65Md
ああ…その発想はなかった。
そういう意味なら全くの見当外れなレスだったから、忘れて。
704デフォルトの名無しさん (アウアウウー Sa39-c/TO)
垢版 |
2025/03/01(土) 11:39:29.07ID:dZ2eBKvGa
VSTの話かと思ったz
2025/03/01(土) 20:32:44.09ID:j9/xcCww0
まだ、chatGPTに「こういうプラグイン作って」で済む時代ではないのか
2025/03/02(日) 16:59:51.21ID:13MOl4uH0
グルーコードは頼んだら書いてくれそう
そういうのこそ、webから情報収集してもらって、AIに組んでもらいたい
2025/03/02(日) 20:49:33.30ID:SR9sVVs70
「とりあえずHello World出すプラグイン書いて」とか「この情報どうやって取得すんの?」とかは今のAIでもやってくれるから
その手のコード書き捨てるのは格段に楽になった
2025/03/03(月) 01:18:59.95ID:KmDT379s0
マイナーなライブラリの使い方きいたらデタラメばっかだよ
2025/03/03(月) 01:53:36.51ID:t7PhNKj40
https://i.imgur.com/WuNDS00.png
まぁな
710デフォルトの名無しさん (ワッチョイ 2ba2-KWHx)
垢版 |
2025/03/03(月) 09:52:35.09ID:ZrscZeKh0
>>708
結局ところ学習ソースはネットだからネットで情報の少ない分野がいい加減になるのはしゃーない
2025/03/03(月) 10:09:12.99ID:11DxD7kOM
>>710
しゃなくはない
単なる現段階の技術的制約にすぎない
わからんものはわからんと言うべき
簡単に受け入れるな
2025/03/03(月) 10:23:10.28ID:Hx0aO5p40
自動小説製造機になに期待してんだか
2025/03/05(水) 18:11:47.24ID:+YosNdhq0
AI が人間の知能を模倣しようとする試みである以上は人間に似た限界もある。
何もかもの専門家であることは出来ない。
無料で使える ChatGPT はその性質上、汎用 AI として調整されてるし使えるリソースは少なめなのでこれで AI を判断しないほうがいいよ。
プログラミング専用に訓練した AI は本当に賢い。
714デフォルトの名無しさん (ワッチョイ 7956-s+rv)
垢版 |
2025/03/05(水) 18:48:09.02ID:LRhSWm980
プログラミング専用ってどゆこと?
2025/03/05(水) 19:22:05.63ID:P80r5h460
Clineとかじゃね?しらんけど
716デフォルトの名無しさん (ワッチョイ 7956-s+rv)
垢版 |
2025/03/05(水) 19:41:16.61ID:LRhSWm980
プログラミングの専門家ってなに?という疑問
言語仕様や構文、標準ライブラリに詳しい人またはAIのことかな?

でもそれって特定ビジネスドメインの専門家ではないよね?
たとえば高度な会計処理のプログラミングをAIにしてもらうことって可能なのかな?

アプリケーションを完成させるにはプログラミングだけでなくビジネスドメインの知識も必要になると思うけど
717デフォルトの名無しさん (ワッチョイ 7956-s+rv)
垢版 |
2025/03/05(水) 19:44:29.61ID:LRhSWm980
たとえば高位の税理士や会計士がプログラミング専門に訓練したAIに指示を出すことで会計ソフトを作ることはできるのだろうか?
2025/03/05(水) 19:45:37.93ID:7KFkamxVd
AIについて語りたいならスレ違い。
2025/03/05(水) 19:51:32.43ID:+YosNdhq0
具体的な話はしないよ。
ChatGPT を試した程度で AI を評価すべきじゃないという主旨。
720デフォルトの名無しさん (ワッチョイ 7956-s+rv)
垢版 |
2025/03/05(水) 19:51:57.29ID:LRhSWm980
たとえば、はちみつ餃子さんはC++のこと詳しいけどどんなアプリでも作れるってわけじゃないよね?
医学とか専門性の高いものはその分野の知識も当然必要になってくると思うし

そうするとプログラミングの専門家AIってなんだ?
ほんとにプログラム作れるのか?という疑問が湧いてくる
721デフォルトの名無しさん (ワッチョイ fbef-qwdi)
垢版 |
2025/03/05(水) 23:39:44.64ID:+5QIrElo0
ハチミツさんはどんなプログラムでも作れるよ
時間さえあれば
2025/03/06(木) 00:09:24.53ID:r/i65GRXM
ところで、「結局C++とRustってどっちが良いの?」でも質問したんだけど、
X(旧 twitter)で、C++ というキーワードが検索できないんだけど、
俺の環境だけなのか、一般的に他の人の環境でもそうなって
いるのかどっち?
723デフォルトの名無しさん (ワッチョイ 0916-VeWP)
垢版 |
2025/03/06(木) 07:44:57.51ID:87cY651N0
unsigned intをkeyとするstd::mapである値以上ある値以下のkeyの要素を全て削除したいんだけどどうしたらいいかな?
2025/03/06(木) 09:03:07.49ID:jh2IMGBN0
>>723
std::erase_if
2025/03/06(木) 18:24:33.81ID:lbAGNheW0
>>722
記号を含むワードは検索できない。
投稿する側が配慮して #cpp や #cplusplus といったタグをつける習慣はあるけどそれほど浸透してないので網羅的に探す方法はないと思う。
普通のワードでも検索はなんかおかしいし。
おすすめが賢いようなのでフォローやお気に入りを積極的にしていくと快適に情報を集められるかもしれない。
昔はおすすめ機能に「いらんことするな」という意見が多かったけど思ったより良くできてるね。
2025/03/06(木) 19:34:30.93ID:e0LjRkKt0
最近Rustに押されてるのは検索性の悪さと無関係じゃないと思う
2025/03/06(木) 19:58:40.82ID:jh2IMGBN0
Go とか BASIC とか Scheme なんかも日常的な語彙すぎて検索性は悪いが、検索自体が出来ないってことはないから組み合わせるワード次第でなんとかなるもんな。
日本語の文章という制約を入れればそれなりに絞れるし。
728青木康善 (ワッチョイ 694e-rQ/Z)
垢版 |
2025/03/07(金) 14:22:29.06ID:ANm5ssXN0
皆さん、アドバイス大感謝します。しかし、Javaはある程度分かるんですが、C++はなかなか手古摺ります。
729デフォルトの名無しさん (アウアウウー Sa1d-8P30)
垢版 |
2025/03/07(金) 14:57:48.23ID:xU3go4h6a
そもそもtwitterを検索に使おうって言う発想が貧困アタオカ
2025/03/07(金) 19:27:12.87ID:AEV18jyF0
通常のwebより、SNSのほうが新鮮でおいしいって若者は思ったりするらしいんだが

それなら5chもいいぞ、名無しでいけるだけあって、愚問こいちゃっても後腐れは少ない
2025/03/07(金) 20:36:20.40ID:49H/kgbx0
>>729
そうやって解決策を示さずに初心者を排除していると老害と言われるよ。
2025/03/08(土) 14:23:59.19ID:UEd3TNkS0
自分が初心者だった頃を思い出せば
新参者に優しくなれるだろ?
2025/03/09(日) 20:55:57.38ID:kn1fZdL+0
初心者だった頃は、好き放題にぶっ叩かれてたな

同じようにするまいとは思うものの、他人を制止するのは(ry
2025/03/09(日) 21:48:59.36ID:ce6tc1GUa
初心者だったころはそもそもSNSもインターネッツもなくパソコン通信の黎明期で
周囲には俺以外C言語でプログラムしようという人間もいなかったから気楽だった
2025/03/13(木) 18:20:47.77ID:0zFelsYRp
十年くらいC++触ってなくて、最近また触る機会があったんだが
なんだこの[]()ってのは…ラムダ式なんて初めて見たよ
2025/03/13(木) 19:23:59.55ID:UZM60pXP0
そういう古参さんは、頭に+つけるってのを聞くとちょっと喜ぶと思うw
2025/03/13(木) 19:42:32.11ID:FfpB+bg40
>>735
十年前にはもうあったよ!
2025/03/14(金) 07:38:33.30ID:iWVzvedA0
すっぽすっぽ先生がC
2025/03/14(金) 07:40:07.31ID:iWVzvedA0
すっぽすっぽ先生がC with Classesを作ってから最初の規格C++98まで19年
C++98からC++11まで13年
そしてC++11から今14年
2025/03/14(金) 10:03:43.97ID:uQBcUqUtp
十年くらい前に最新の書式を導入する情報もリスクを被る勇気も無いわな
2025/03/14(金) 10:23:25.48ID:PsWnmiZn0
>>736
なんスカそれ?
2025/03/14(金) 11:05:51.17ID:B4ilMY360
>>741
ラムダ式の前に + を付けると関数ポインタに型変換できるという小ネタの話だと思う。
2025/03/14(金) 15:50:51.90ID:43evLOjOa
キャプチャ付lambdaでさらに脳汁
2025/03/14(金) 17:15:25.44ID:flvbk/67p
迷走してますなぁw
2025/03/14(金) 21:47:11.78ID:PsWnmiZn0
>>742
初めて知った
2025/03/15(土) 09:10:45.56ID:tr5ODwiQ0
>>745
実際にはラムダ式 (クロージャ型) に対しての特別な機能があるわけじゃなくて、単項 + にクロージャオブジェクトを渡そうとするとオーバーロード解決ルールの途中で適用可能な暗黙の変換が適用された結果としてそうなる
2025/03/15(土) 17:45:50.20ID:UQwxamXid
[](){}();
2025/03/15(土) 22:57:27.79ID:nPJTLBuF0
停止性問題を一般のケースについて解く機械的手続きで有限時間で必ずおわるもの(アルゴリズム)は存在しないが
人間は納期までにプログラムえおデバッグできる……できる……たぶん……
2025/03/16(日) 09:48:31.74ID:B4wnHsDg0
出来なかったら誰かがどういう形かで責任を取る。
それが社会ってもんだ。
2025/03/16(日) 11:01:20.74ID:N4spayNe0
有限時間内に終わる機械的計算手続きとして存在するかという観点で考えたとき
デバックの不可能なプログラムは存在しないという例の命題は偽な可能性、
もっともこの正確な引用は「バグのないプログラムは存在しないがデバックの不可能なプログラムもまた存在しない」であって全体として矛盾した主張であることは前から指摘されてあるが
2025/03/16(日) 11:04:22.68ID:N4spayNe0
訂正orz、
誤: 有限時間内に終わる機械的計算手続きとして存在するかという観点で考えたとき
正: 任意のプログラムのデバッグと言う手続きが有限時間内に終わる機械的計算手続きとして存在するかという観点で考えたとき
2025/03/17(月) 06:41:01.39ID:/+A5sOUu0
ラムダ式に+の話は始めて知った
勉強になった
2025/03/17(月) 09:17:27.77ID:3/T8wXeSr
>>746
それちょっとだけ解説きぼん ぶっちゃけなんとなくで使ってて気持ち悪かった
2025/03/17(月) 09:55:35.41ID:xz+hBXXy0
オーバーロード解決のルールは大雑把には
 ・候補の中で実引数と完璧に型が一致するものがあればそれが選ばれる。
 ・完璧な一致がないが暗黙の型変換を適用したら一致するという候補があればそれが選ばれる。
ということになってる。
実際には変換の中にも優先順位がごちゃごちゃあってかなり複雑なんだけど……。

で、組み込みの単項 + が受け取りうる型は何かというと算術型、スコープなし列挙型、またはポインタ型の三つ。
https://timsong-cpp.github.io/cppwp/n3337/expr.unary#op-7

キャプチャなしのクロージャ型は関数ポインタへの変換関数を持っている。 つまり暗黙の型変換が可能。
https://timsong-cpp.github.io/cppwp/n3337/expr.prim.lambda#6

クロージャからポインタへ暗黙の型変換をすれば単項 + に一致するからそれが選ばれる。
そういうメカニズムだと私は理解してるんだけど間違いがあったら誰か指摘してね。
2025/03/17(月) 09:58:44.63ID:xz+hBXXy0
単項 + の話題がウケたみたいなのでオマケで * の話もしようかな。
単項 * にクロージャを渡した場合は関数の参照になる。
つまり *[](){} としたら型は void(&)() ってことね。

式中に参照が現れたら参照が指す先の型に変換されて、関数指示子が現れたら関数ポインタに変換されるので多くの状況では最終的に関数ポインタになっちゃうんだけど。
2025/03/17(月) 10:46:49.46ID:qCQLpZeYp
要するに副作用って事か
環境によってとかオプティマイズ如何で違った動きになる事は無いのかなぁ
2025/03/17(月) 11:12:41.81ID:ly7jZf+WM
ならんだろw
2025/03/17(月) 11:24:02.10ID:F8F0vPkQp
昔、ARM系の環境で配列とポインタがまるっきり違う扱いになって困ったって事があったんだよなぁ
2025/03/17(月) 11:44:46.70ID:xz+hBXXy0
>>756
これは言語仕様の話なので言語仕様に沿わないことがあるなら単にコンパイラのバグってだけだ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況