C++相談室 part160

レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
垢版 |
2022/04/15(金) 08:39:32.42ID:WMzvufu2
前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1645239402/
2022/05/16(月) 10:59:43.36ID:l25MG5nC
>>870
幾多あるライブラリの話までし始めたらそらなんでもあるよ

>>871
スレッド立ち上げコスト削減は目的のうちの一つであってそれだけじゃない
むしろメインはlockを考慮しなくて済むって方じゃないかな
2022/05/16(月) 11:10:07.16ID:I2zrNWyd
>>872
だから、OSから見た話をしてるんやん
それに全然関係ない話でもない
ほんとお前馬鹿だよな
2022/05/16(月) 11:38:13.72ID:S4yLiTSd
>>873
OS関係ないし
お前が馬鹿
2022/05/16(月) 11:55:16.75ID:l25MG5nC
>>873
コルーチンにOS関係ある?
どういう仕組みでasync awaitしてるか理解してる?
2022/05/16(月) 12:21:21.64ID:ptnjik8+
C++の話しようぜ
2022/05/16(月) 12:24:34.24ID:I2zrNWyd
>>874
867の言ってることがわからんあの馬鹿を責めてくれや
2022/05/16(月) 12:30:07.34ID:f/Xu02FO
「俺のわからないことを書いている奴は馬鹿」という思考回路やばい。
2022/05/16(月) 12:35:37.80ID:l25MG5nC
>>877
そもそも言語の話にOSとか言い出すのが意味不明だし、強いて考えられるとしたら
int main() { for (int i = 0; i < 100; ++i) sleep(1); return 0; }
これもOSレベルで見たら単一スレッドで頭からケツまで動く保証はないっていうレベルの話がしたいのか?
こういう次元の話をしたいなら馬鹿としか思えないけど
2022/05/16(月) 12:48:57.95ID:IoIRdAU7
>>866
JavaScriptは基本的にはシングルスレッドなので並行(concurrent)に複数同時に動くが
workerを用いると別スレッドとなり並列(parallel)に複数同時に動く
ただしworker抜き前提で話すことも多いから前者のシングルスレッド前提でもいいと思う

>>870
言語のライブラリのレベルでそれが起きることはなく、あくまでも言語の仕様の範囲内に従う
しかし言語のランタイムではそれが起きるケースもあり、そこは別言語で書かれていてもよい
例えばJavaScriptは(別workerでなければ)シングルスレッドが保証されており、
複数の並行処理に対して厳格な競合対処をせずともプログラミングが可能だが、
内部ランタイムではI/O効率化のためにマルチスレッドが使われる実装もある
2022/05/16(月) 12:59:08.31ID:I2zrNWyd
馬鹿のひと、前もいた実装は関係ないおじさん?
他人は許せないが、なぜか自分自身は語ってしまうというあの馬鹿?
882デフォルトの名無しさん
垢版 |
2022/05/16(月) 15:52:25.18ID:WoUg3+5o
幼稚園児レベルの罵倒語を使うのは
技術的な議論で劣勢であることを自己申告しているようなものだ
優勢な者はそんなもの使わなくてもどうにでも料理できるからな
2022/05/16(月) 16:42:34.62ID:oTRlBgbW
彡 ⌒ ミ
( ・ω・) アレクサ髪の毛増やして
884デフォルトの名無しさん
垢版 |
2022/05/16(月) 18:53:11.20ID:mA14eCl1
>>883
有吉の髪をフサフサにしておきました。
885デフォルトの名無しさん
垢版 |
2022/05/16(月) 19:01:54.89ID:mA14eCl1
>>883
波平の髪を二本にしておきました。
886デフォルトの名無しさん
垢版 |
2022/05/16(月) 19:17:21.17ID:mA14eCl1
>>883
ドラえもんをアフロにしておきました。
2022/05/16(月) 19:33:17.66ID:haaJPjQj
アレクサ賢い
2022/05/16(月) 19:46:11.19ID:LMCkL6+j
>>885
海平になっちゃうやん...
https://blogimg.goo.ne.jp/image/upload/f_auto,q_auto,t_image_sp_entry/v1/user_image/58/29/b157690960da4c9d520ffa9f0d031fba.jpg
2022/05/18(水) 09:56:55.15ID:spPNFpZE
X11をオブジェクト指向とか寝言いうやつ居るんだな
あれはオブジェクト指向もどき
つまりオブジェクト指向ではない

アセンラで構造化もどきつくりましたレベルの話
2022/05/18(水) 10:04:46.99ID:s0yud5Is
オブジェクト指向としか言いようがない
891デフォルトの名無しさん
垢版 |
2022/05/18(水) 10:15:34.00ID:I2H5iqao
どんな作りになっていようがコード書いた本人が
オブジェクト指向だと言えばオブジェクト指向だし
構造化だと言えば構造化なんだよ
書く者の頭の中の考え方なんだから、
コードそのものの特徴から決めつけはできないし
ドヤるやつは大抵うんざりされてることに気がつかない
2022/05/18(水) 10:37:48.91ID:Q68htpiP
     /: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ    ___
     /;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、  /     ヽ
    /ヽヽ: ://: :!:,X~::|: /;,,;,/: :/  リ!: ::/ノ  l`ヽl !: : |: : : :l: :l: リ / そ そ お \
   /: : ヽヾ/: : l/::l |/|||llllヾ,、  / |: :/ , -==、 l\:::|: : : :|i: | /   う う  前  |
.   /: : : //ヾ ; :|!: イ、||ll|||||::||    ノノ  イ|||||||ヾ、 |: ::|!: : イ: ::|/   な 思 が
   /: : ://: : :ヽソ::ヽl |{ i||ll"ン    ´   i| l|||l"l `|: /|: : /'!/l     ん う
 ∠: : : ~: : : : : : : :丶ゝ-―-      ,  ー=z_ソ   |/ ハメ;, :: ::|.   だ ん
   i|::ハ: : : : : : : : : : : 、ヘヘヘヘ     、  ヘヘヘヘヘ /: : : : : \,|.   ろ な
   |!l |: : : : : : : : :、: ::\    、-―-,      / : : :丶;,,;,:ミヽ   う  ら
     丶: :ハ、lヽ: :ヽ: : ::\__  `~ "      /: : ト; lヽ)   ゝ
       レ `| `、l`、>=ニ´        ,  _´ : :} `   /
         ,,、r"^~´"''''"t-`r、 _  -、 ´ヽノ \ノ   /    お ・
       ,;'~  _r-- 、__     ~f、_>'、_         |  で  前 ・
      f~  ,;"     ~"t___    ミ、 ^'t         |  は  ん ・
      ,"  ,~         ヾ~'-、__ ミ_ξ丶     |  な  中 ・
     ;'  ,イ ..          ヽ_   ヾ、0ヽ丶    l         /
     ( ;":: |: :: ..          .`,   ヾ 丶 !    \____/
     ;;;; :: 入:: :: ::      l`ー-、   )l   ヾ 丶
     "~、ソ:: :い:: :     \_  ノ ,    ヾ 丶
2022/05/18(水) 11:04:38.59ID:spPNFpZE
>>891
>ドヤるやつは大抵うんざりされてることに気がつかない

自分のことか?www
2022/05/18(水) 11:07:21.81ID:OWcrFw6t
いずれにせよオブジェクト指向を上回る手法が登場しない限りオブジェクト指向に対してマウントは取れない
2022/05/18(水) 11:21:09.24ID:spPNFpZE
予めメモリプールを設定しておくようなOSで
オブジェクト指向ありきでプログラム設計されてると思ってんのはおめでてーな
馬鹿の一つ覚えとも言う
2022/05/18(水) 11:34:46.54ID:s0yud5Is
プログラムがオブジェクト指向に則ってるか否かはOSで決定する、と
2022/05/18(水) 11:41:08.84ID:spPNFpZE
メモリプールを何の目的で用意するのかわかってないと
2022/05/18(水) 12:02:56.59ID:bslzKqYb
オブジェクトがメッセージを投げるという関係性でプログラムを構築するのが
オブジェクト指向ってもんだから、関数 (メンバ関数) をメッセージとみなすかもしれないし、
メッセージキューのようなものを作るかもしれない。
プログラミング言語の言語機能をどのようにプログラム構成の方法論に当てはめるかは自由度はある。
その意味では >>891 の考え方は真っ当なものだ。

でも、 C++ では C++ の常識というものもあるし、
ある程度は共通の認識を作っておかないと会話が成り立たんだろう。

基本的にはふんわりした概念でしかないからこの場合にオブジェクト指向
という言葉をどういう意味で使うことにするのかはこの場で擦りあわせろや。
2022/05/18(水) 12:12:57.18ID:KNHGZhRF
>>895
そもそもos全体がオブジェクト指向だなんて誰も言ってないし
2022/05/18(水) 12:22:21.26ID:CvWTVaQG
>>889
オブジェクトを「指向している」だろ。

指向「もどき」て何だよ。
何を「指向もどき」と言っているのか全然わからん。
2022/05/18(水) 16:21:01.44ID:SnLFYw7t
たしかにオブジェクト志向オブジェクト志向言いはじめたころは
「メッセージング」ってのがやたら強調されてたな
たぶんスモールトークの影響だろうけど
最近の「オブジェクト志向」はどっちかってとオブジェクトのかたまりを
どう型つけるか、階層化するかの言語構造のことを言いがちだけど
2022/05/18(水) 16:31:15.14ID:ZUGTejLE
指向だけどな
むしろメッセージングの重要性は高まってきてると思うけど、頭のいいひとにしか扱えない感じだな
馬鹿は階層にこだわるしかない
2022/05/18(水) 20:03:09.30ID:9cdFfz37
オブジェクト指向で利点はデータモデルを表現できることだろ
それが言語上で構造体なのかクラスベースなのかアクターなのかは大きな問題じゃない
904デフォルトの名無しさん
垢版 |
2022/05/18(水) 21:04:56.14ID:xACVFtZa
ウィンドウに開けとか閉じれとか大きくなれとか指示してれば、それはもうオブジェクト指向なので、ウィンドウ・システムとオブジェクト指向はだいぶ相性が良い。
2022/05/18(水) 21:06:39.10ID:AIFQ7kC9
>>891
hogehoge("ソポポポぉおおおおおん!");
↑これはオブジェクト指向で書いたプログラムです!!!!
って言ったらそういう解釈もありだなって思うの?

俺はオブジェクト指向アンチ!
絶対にオブジェクト指向なコードなんて書かね!といった直後に
const dialog = document.getElementById("dialog");
dialog.addEventListener("click", e =>{イベント処理});
みたいなコードを書いていたら、そのコードはオブジェクト指向ではないと解釈するの?

なわけないよね
906デフォルトの名無しさん
垢版 |
2022/05/18(水) 21:06:55.62ID:xACVFtZa
とうとうアジュール・アカウントを作ってしまった。
907デフォルトの名無しさん
垢版 |
2022/05/18(水) 21:07:48.89ID:xACVFtZa
よし。
今日からおれもアジュール民だ。
2022/05/18(水) 21:23:10.53ID:vRsLqKZH
ようこそクラウドの世界へ
909デフォルトの名無しさん
垢版 |
2022/05/18(水) 21:48:35.12ID:I2H5iqao
>>905
思うよ
するよ

思い込みの激しい人だな
2022/05/18(水) 22:00:38.20ID:AIFQ7kC9
>>909
嘘付くのやめていただけますか?

まず、hogehoge(略)をどのように捻くれた解釈をしたらオブジェクト指向に見えるのか解説してくれますか?
2022/05/18(水) 22:04:01.32ID:1ADDPTHW
struct HogeHoge {
void operator(const char *str) const {
std::cout << str;
}
};

HogeHoge hogehoge;
2022/05/18(水) 22:04:44.03ID:vRsLqKZH
>>909
思い込みの激しいのはお前だろw
>>892で指摘されてるじゃんw
2022/05/18(水) 22:05:27.40ID:1ADDPTHW
>>911
間違えた
2022/05/18(水) 22:09:27.02ID:V03o9uZn
プログラムを書いた人がオブジェクト指向設計ですと言っているものまでオブジ
ェクト指向ではないと否定するのは愚策言ったが最後、ではオブジェクト指向で
はない何なのかを述べねばならなくなるからなgoto否定論者にbreakは実質goto
とかあまつさえgotoを使ったプログラムを書いてgoto否定論者に対して正当性を
主張した場合に生じる惨状と同じで社会スキル的な意味で避けるべき理由が十分あ
2022/05/18(水) 22:09:33.95ID:spPNFpZE
>>900
オブジェクト指向もどき が オブジェクト指向でないのは
くじら が さかな で無いのと同じだ

馬鹿は知らないくじら構文
そして、応用系

オブジェクト指向もどき が オブジェクト指向でないのは
ヒトもどきのお前 が ヒトでないのと同じだ
2022/05/18(水) 22:11:26.32ID:PU9JUd8R
C++の話しようぜ
2022/05/18(水) 22:13:31.75ID:ZUGTejLE
c++スレでオブジェクト指向の話をするのは無理がある
918デフォルトの名無しさん
垢版 |
2022/05/18(水) 23:15:16.60ID:xACVFtZa
C++のオブジェクト指向全盛期は20年以上前だからね。
その後は黒魔術全盛期がやってきた。
2022/05/18(水) 23:37:02.53ID:PYepqFJi
Andrei Alexandrescuが悪い
2022/05/19(木) 00:10:17.97ID:JEoDteVp
組み込みC++だと普通にオブジェクト指向全盛期だけどな
uart1.write(data);
のような記述が当たり前になってきて有難い
2022/05/19(木) 02:53:53.60ID:m2mVV8oP
組み込みってマクロ大好きだからオブジェクト指向の書き方と相性悪いと思ってたけど最近はそうでもないの?
それともそう描いたときのuart1やwriteもマクロなの?
2022/05/19(木) 03:00:29.40ID:tMeCiyz0
そら組み込みっていってもいろんなレイヤがあるからね
2022/05/19(木) 05:20:52.31ID:UJCwwVid
>>910
fprintf(stdout, "そぼぼん");
みたいになってることもあるからな
obj.func(...);という構文は絶対条件じゃないんだよ
PostMessage(hWnd, WM_APP, 0, 0);なんてのだってオブジェクト指向だし
2022/05/19(木) 07:43:27.80ID:bqW40Z5X
組み込みはまだまだCが主流
2022/05/19(木) 07:46:20.72ID:ijZ+Z+2A
>>915
なら
ヒトもどきのお前 が ヒトでない
が偽だから
オブジェクト指向もどき が オブジェクト指向でない
も偽だな。
926デフォルトの名無しさん
垢版 |
2022/05/19(木) 07:47:19.60ID:Kexh9zXI
>>923
そう、Cの時代からオブジェクト指向はあったよな
2022/05/19(木) 07:50:32.12ID:sZfr5xXW
別に
objに対してfunc()というメッセージを送るのと、
PostMessage()という手続きにhWndを渡すのでは意味が違う
obj.func()をコンパイルしたらfunc(ptr, ...)とptrとして&objを渡すコード、みたいなものになるではないか、というのはそれはそうだが
そいつは意味を捨てているからにすぎないことは統語論的に考えたらワカル
例: getter
x = obj.getX(); // I get the value X となるようにobjに仕事させよという意味(CPUにobjを使役するよう命令している
x = getX(&obj); // get the value X from (/ by / with / in) the object obj、という意味(CPUにやれと命令している
2022/05/19(木) 07:51:01.05ID:sZfr5xXW
言ってて自信なくなってきたがとにかく違う、
2022/05/19(木) 07:55:55.82ID:bqW40Z5X
オブジェクト指向って
単にクラス関数を呼んだからオブジェクト指向
とかいう単純な物じゃない

プログラムやモジュールの設計思想の話
2022/05/19(木) 08:02:53.54ID:tMeCiyz0
>>927
お前がそうやって理解したのは理解するけど、ちょっとどうかなあ
2022/05/19(木) 08:10:11.10ID:Bak+CTg/
>>915
その主張において
・「ヒトもどき」と「ヒト」の違いは何か。「ヒトもどき」が「ヒト」でないとする根拠は何か。
・「ヒトもどき」の「もどき」の意味が「指向もどき」の「もどき」の意味と同じとする根拠は何か。

間違った根拠と間違った推論から導いた結論に意味はないから、上記に答えられないならその主張に議論する価値は無い。
論理をかじって知ったかぶりしたくなるのもわかるけど、もうちょっと勉強した方がいいよ。
2022/05/19(木) 08:12:35.09ID:bqW40Z5X
C++関係ないんだから
他にスレ立ててやれ
2022/05/19(木) 08:26:56.26ID:nDeBFAzg
オブジェクト指向を教えてくれ!★2
https://mevius.5ch.net/test/read.cgi/tech/1619503348/
2022/05/19(木) 08:30:35.34ID:sZfr5xXW
>>930
それはそうで世に膾炙しているオブジェクト指向はちょっとどうかしているせい
objにXの値を寄越すようにメッセージを送るのであれば
 x = obj.getX(); // (1)
ではなくて、
 x = obj.giveX(); // (2)
でないとおかしいはず……
(1)に対して合理的な意味づけを行おうとすると>>927みたいな解釈にならざるおえない
やっぱ世の中がおかしい
935デフォルトの名無しさん
垢版 |
2022/05/19(木) 09:28:38.04ID:XCQrD9i4
objっていうデータ構造体からxを取得するからgetXって解釈してたわ
936デフォルトの名無しさん
垢版 |
2022/05/19(木) 09:37:01.76ID:HFWBeLeA
オブジェクト指向って obj.method( ) という構文だけの話じゃないでしょ
継承・多態性・オーバーライド・オーバーロード・オーラロードなどの機能もオブジェクト指向の重要な要素じゃないの
あと機能とは別にカプセル化などオブジェクト指向で周知された設計手法もある(これはオブジェクト指向でなくてもできるけど)
2022/05/19(木) 09:42:48.48ID:tMeCiyz0
>>934
826書いたの俺だからわかるよ
でも文法なんて些細な話よ
2022/05/19(木) 09:56:27.95ID:qAaVAzHk
hogehoge書いた本人はたぶんそこまで考えていないよ
それこそ思い込みが激しいでは?
2022/05/19(木) 12:33:57.63ID:Nz/+UK9H
>>934
オブジェクト指向の「オブジェクト」は、主体・客体の「客体」として解釈するといい。主体はプログラマーとかCPUとかの指示・命令をする主体。
2022/05/19(木) 12:47:07.52ID:JltPZRp+
まだやるの?
2022/05/19(木) 12:58:56.65ID:NIcGv5m1
オブジェクト指向は我々プログラマにとって必要です

>>938
私はオブジェクト指向を知っていることに誇りをもっています
2022/05/19(木) 13:04:29.79ID:B0nB5mTs
>>934
俺はオブジェクト指向がうまいから職場で神扱いされてる


>>919
お前はオブジェクト指向ができるの?

なんとか言ったらどうなんだ
2022/05/19(木) 13:06:45.60ID:YUgVG0pp
>>911
そうやってオブジェクト指向ができないからニートだと思われてるんだよww
これに懲りたらオブジェクト指向を学んでこいwww
2022/05/19(木) 13:18:40.04ID:B0nB5mTs
>>924
てめーなんざにオブジェクト指向がわかるわけねぇだろう
とっとと消えろ
2022/05/19(木) 13:20:01.49ID:z4apOfvE
何言ってんだこいつ
オブジェクト指向を知ってるからって偉そうにしやがって
2022/05/19(木) 13:52:35.01ID:gDUMsWXi
>>927
いや、意味は違わないよ
違うのはその結論(コード)に至るまでの考え方だ
オブジェクト指向は構文ではなく考え方
だからアセンブラでもできるんだ
2022/05/19(木) 16:31:30.66ID:QDwYarvc
>>931
くじら構文が論理?

案の定、どこまで馬鹿なんFラン確定のお前ww
2022/05/19(木) 16:36:02.58ID:QDwYarvc
>>925

おまえもFラン確定だなww
義務教育から遣り直せ。
949デフォルトの名無しさん
垢版 |
2022/05/19(木) 17:36:19.36ID:6RgATOKw
アホだからアホでも使えるように構造化するのを大事にしてる
2022/05/19(木) 18:44:20.43ID:XmlfPc2y
802から始まって、いまだ発散してるから
線引含めてめんどくせぇ話だなというのはわかる
951デフォルトの名無しさん
垢版 |
2022/05/19(木) 18:46:23.64ID:2O7Wjx2k
VIPでやれと言われるような話題。
2022/05/19(木) 19:01:16.29ID:jm7Yx9uZ
>>949
想定以外の使い方は許さない方が無難かね。Conceptsが普及すればc++でも制約プログラミング流行るかな。
2022/05/20(金) 06:26:48.33ID:QdnN/13A
プログラムの可読性は大事だが
それをアホへの迎合と勘違いしてはいけない

COBOLからの教訓だ
2022/05/20(金) 06:48:44.29ID:jg8JP3/X
可読性とは結局
自分ルールに添ってるか
自分と同レベルの知識や頭脳か
になるからねえ
2022/05/20(金) 08:17:00.86ID:biGldfGz
>>939
>オブジェクト指向の「オブジェクト」は、主体・客体の「客体」として解釈するといい。
どういうこっちゃ……
オブジェクトを客体とみなすルールは必ずしもその客体が主体的に動くシチュエーションの禁止にはならない
客体が主体的に動くシチュエーションを禁止したかったら、複文の禁止までルールを推し進めねばならん
例:
進駐軍の兵隊オブジェクトに「Get chocolate」と言ったらそのオブジェクトがチョコレートの調達に走るのが妥当
この場合進駐軍の兵隊オブジェクトが主体的に動く(倉庫等に取りに行く)ことが気体される
進駐軍の兵隊オブジェクトに「Give me chocolate」と言って初めて発令の主体たるCPUがチョコレートを受け取れる
2022/05/20(金) 08:26:59.91ID:biGldfGz
どっちにせよチョコを取りに行ったりくれたりする主体は進駐軍の兵隊オブジェクト
さらに進駐軍の兵隊オブジェクトが倉庫の受付に「Get chocolate」言うかもしれんし
そうすると進駐軍の兵隊オブジェクトがチョコレートを受け取る主体にもなり得る
こういう入り組んだ解釈を一切禁止ということならやっぱ複文禁止しか……
それはそれで新しいプログラミングパラダイムが拓けそうやがどうかなあ……
2022/05/20(金) 08:31:45.87ID:biGldfGz
ていうかそういうのはどうでも良いんですよそれよか>>695
のコードについて質問なのですが

fouri()の中に
 sin1 = table[t0];
 cos1 = table[t1];
というのがあって、cos1 + i * sin1が1の原子2^N乗根だと思うじゃん?
しかし動きを見ると5.333333乗根とか(これはまだわからないでもない
4.571429乗根とかわけわかんない数値が入って来るんですがなんで?!
ボスケテ、
2022/05/20(金) 08:42:58.01ID:1bxUvska
>>957
(1 << p) が一周
(1 << p - i) は一周を(1<<i)で割った値、つまり(1<<i)乗根
2022/05/20(金) 19:33:47.78ID:0DaneQt4
 
 __     __  ___ _____  _____     ___ ___    ___
 |   |    /  /  |  //       | /__  __/ [][] _| |_| |__ _| |_
 |   |.   /  /  /  / /   / ̄ ̄|. l    / /     |    _  | |_  レ'~ ̄|
 |   |  /  /  /  / /   /.  / /    |  |___      ̄|  | / / /   /| |
 |   |  /  /  /  / /    ̄ ̄ /     \__|     |  |  ̄ /_  /  | |_
 |   |. /  /  /  / /   / ̄ ̄ ̄                |_|     |__|   \/
 |   |/  /  /  /. /   /  
 |.     /  /  /  /   / 
 |    /. /   | ./   /  
  ̄ ̄ ̄   ̄ ̄ ̄.  ̄ ̄ 
2022/05/20(金) 20:11:14.93ID:biGldfGz
>>958
1<<i乗根は結局2^i乗根ということで、
(2*M_PI)/atan2(sin1, cos1)が2^iすわなち整数にならないとおかしいんじゃないの
しかし実際は16乗根とか64乗根に交じって5.333333乗根とか4.571429乗根とかが混じってくるのでつ∀`;)
2022/05/20(金) 21:44:19.34ID:jg8JP3/X
そりゃ(1<<i)乗根をn乗してるからねえ
出てくるんじゃないの?
何か問題?
2022/05/20(金) 23:00:09.02ID:biGldfGz
わかりた
(1 << i)/jが割り切れない場合のw^jかorz
963デフォルトの名無しさん
垢版 |
2022/05/20(金) 23:24:07.63ID:mAopBTqL
マクロでしか実現できない機能って何がありますか?
派遣先のライブラリがマクロだらけで驚いたので気になりました
2022/05/20(金) 23:38:17.88ID:Nu0nVGPY
メタプログラミングとか?
2022/05/20(金) 23:48:21.44ID:5lKx3hyB
いろいろあると思うけど、ログ関数とか作るときに関数名とか行数とか出力させたかったらマクロ使うかな
2022/05/20(金) 23:53:08.67ID:sn/66v3t
行数とかなんか無茶なコードの結合とか
967デフォルトの名無しさん
垢版 |
2022/05/21(土) 00:17:23.34ID:SL+9c0t4
コンパイラによってつける属性変えるときとか
public:をオンオフしたり構文に影響を与えるものとか

MSVCの標準ライブラリ覗くと
#define _CONSTEXPR20 constexpr
//#define _CONSTEXPR20 inline //C++17以前
とか書いてあったりする

式を文字列として展開するのもマクロじゃなきゃできない
#define A(exp) #exp

文字列連結(#define A(a1,a2) a1##a2)もマクロじゃなきゃできないけどデバッグが無理ゲーになるから使わん
2022/05/21(土) 00:19:10.39ID:DcWHGr0j
__FILE__や__LINE__を使うのを隠蔽したいときはマクロにするしか、
あと文字列を結合してシンボルを合成するとか、
#define cat(a, b) a##b
#define cat2(a, b) a/**/b
2022/05/21(土) 00:53:48.99ID:SKvcmC+r
マクロでぐにゃぐにゃしてる中はデバッガで止めづらくなるね
文字列生成(そして文字列の連結) 識別子の連結 はプリプロセッサじゃないとできないし
2022/05/21(土) 01:31:55.43ID:wrIep829
初見殺しにマクロは必須
2022/05/21(土) 06:57:00.43ID:0jWT+RR4
というか、inline 指定を絶対化すればいいだけ
どうして inline 指定してもインラインされない場合がある、とか勝手なことをするのか不明
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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