C++ 次のコードの意味を教えてちょんまげ chatGPT-5先生に訊いたでございますじゃよ。
#include <iostream>
#include <stdexcept>
[[noreturn]] void report_error() // 属性というの初めて見る 2025-01-29 09:57:23
{
throw std::runtime_error("error");
}
int f(int x)
{
if (x > 0)
{
return x;
}
report_error();
}
int main()
{
f(1); // f(0) とすると例外が投げられる やってみそ
std::cout << f(1) << std::endl;
std::cout << "End of main()" << std::endl;
}
ここの [[…]] というカギ括弧が多すぎるんじゃ! バカタレっていうのがattributeとかいうものらしいぞよ。それはなにかしら?
[[noreturn]] は 「この関数は決して戻らない」 ということをコンパイラに伝える属性です。
C++11 以降で導入された標準構文です。
うーむ。コンパイラに伝えるというのは #pragmaとはどう違うのかしら?
まさにその通りで、#pragma も「コンパイラへの指示」です。ただし――
[[属性]] と #pragma は 似ているようで、実は立ち位置がまるで違う
うーむ。それは誰が使うのかしら? ワタクシ つかえませぬ
てなわけでして、ま~雑学収集という事でございますじゃよ。
C++ポケットリファレンス読んでいたら知らないのがぞろぞろと出てきまんな(笑)
ま~そういうわけだったんですね、よくわかりました(ウソ)
C++ブログラマが日常的には使わないものであれば 趣味のレベルの しかも入門レベルのワタクシが知ってもしゃーないのでございますじゃよ。
こういうのは優先度を下げるでございますじゃよ。
この、”ございますじゃよ” はYoutubeで気に入った短い動画があって面白いのでワタクシも使っておるでございますじゃよ。
ほかにも、語尾を だぉ にする人もおるだすだぉ。ま~す病もありま~す。ぞよぞよ病もたまに発症するでございますぞよ。
たのしー だって にんげんだもの byニセみつほ
posted by toinohni at 08:55| 東京 ☁|
Comment(0)
|
ChatAI(技術・IT)
|

|