[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/08 13:32 / Filesize : 255 KB / Number-of Response : 1019
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part159



1 名前:デフォルトの名無しさん [2022/02/19(土) 11:56:42.14 ID:kSnJ/KwP.net]
前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1636969758/

321 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 06:47:54.89 ID:EeqSDih1.net]
>>315
その例はconstにしようがしなかろうがインライン展開されるので最適化結果に違いはないよ
そもそも最適化しやすくなると言ってるだけで、違いがあるとまでは言ってなかったんだけどw

>>314に書いたとおり、煽るだけ君は結局「想像で言ってるだけ」なんだなw
妄想はほどほどにしてくれw

最適化コードに違いがある例が以下。マクロの定義を空にすればconstなしのコードになる。
https://godbolt.org/z/YavYzrE3z
#define CONST const
template<typename T>
struct s {
T value;
operator T() CONST {return value;}
};
CONST s<int> a[] = {1,2,3,4,5};
template<typename T> T func() {
T r = 1;
for (int i = 0; i < sizeof(a)/sizeof(a[0]); ++i) {
r *= a[i];
}
return r;
}
int main() {
return func<double>();
}

322 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 07:29:26.73 ID:Zh+6zBsp.net]
>>316
俺はこの話題に関して初めて書き込んだ者だが

323 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 07:34:24.42 ID:Od0J2fCm.net]
>>316
都合の良い例にしすぎだろ

324 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 07:43:08.18 ID:EeqSDih1.net]
反証は1つで十分w 具体例の1つも書けない人は黙ってようねw

325 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 08:14:09.88 ID:Od0J2fCm.net]
ああすまん、変化しない例を出してるつもりだと思ってた
そんなコードでも変化したりするのね

326 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 10:21:52.93 ID:ftLJb++c.net]
古文書には#defineは良くないってあったけど今のC++ってその辺り改善されたんですか?

327 名前:はちみつ餃子 mailto:sage [2022/02/28(月) 10:47:09.12 ID:R6BwoFXD.net]
>>321
ある程度は。

328 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 10:56:01.32 ID:xzjNndYE.net]
>>321
「その辺り」って何?
スコープとの相性が最悪って意味なら変わってないぞ

329 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 11:04:38.67 ID:ftLJb++c.net]
>>323
他所からパクってきたコードですが、#defineはそのまま書き換えるだけだから以下や

#define SIX 1 + 5
#define NINE 8 + 1

int main(void)
{
printf( "What you get if you multiply six by nine: %d\n", SIX * NINE );
return 0;
}

以下の関数の呼び出しなどで意図しない挙動になったりとかです

#define SquareMulti(x, y) x * x * y
SquareMulti(++a, b)



330 名前:はちみつ餃子 mailto:sage [2022/02/28(月) 11:14:22.32 ID:R6BwoFXD.net]
>>324
その程度なら inline や constexpr を活用するのが今は良い作法

331 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 11:19:01.97 ID:xzjNndYE.net]
>>324
マクロに関してはそういう所は変わってない
餃子が言うようにマクロ以外の手段を使うというだけ

332 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 11:20:49.97 ID:+7QZaSxQ.net]
>>321
#defineじゃないとできない/面倒なパターンが減ったという意味ならある程度はマシになってる

<numeric>とか<source_location>とかconstexpr/constevalとか

333 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 11:24:50.52 ID:s9ebK7Me.net]
>>321
#付いてるから、基本プリプロセッサ文だかんな

334 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 11:39:25.77 ID:42wjdHim.net]
スコープ付きの#defineが欲しい時ってあるよね…w

335 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 12:09:06.26 ID:EeqSDih1.net]
ねーよw

336 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 12:16:38.60 ID:WvOgTxGl.net]
#define NAMESPACE namespase
#define NS ns

NAMESPACE NS{
void f();
}
void g(){
NS::f();
}

このへんのコードをプリプロセスの段階で正しく解釈するのは無理なのがね

#pragma defines(push)
みたいのが言語標準になればいけるか?

337 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 12:32:49.89 ID:EeqSDih1.net]
馬鹿の妄想は放置して、マクロでないと困る例
#include <iostream>
#define PRINT_LOCATION() (::std::cout << __FILE__ ":" << __LINE__ << ":" << __PRETTY_FUNCTION__ << "\n")
namespace hoge {
void func() {
PRINT_LOCATION();
}
}
using namespace std;
using namespace hoge;
int main() {
PRINT_LOCATION();
func();
return 0;
}

338 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 12:41:59.91 ID:xzjNndYE.net]
友達いなさそうだな

339 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 12:49:02.69 ID:EeqSDih1.net]
そんなこと気になっちゃう程度の馬鹿よりは多そうだけど、多けりゃいいってもんでもないと思うぞw



340 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 13:48:09.49 ID:ftLJb++c.net]
多くの回答ありがとうございます
やはり可能な限り#defineは避けた方が良さそうですね
ただ#defineでもできないことや、#defineにしかできないこともあるので変に毛嫌いせず勉強を進めてこうと思います

341 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 14:03:01.00 ID:EeqSDih1.net]
例外中の例外なので、毛嫌いして全く問題なく、勉強する必要も全くないw

342 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 15:55:04.33 ID:Yx2Q2Rjy.net]
Include Guard Macro以外の#defineは忘れてもいいと思う。

343 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 17:13:33.60 ID:HhKI/yF6.net]
ほんそれ
一生ソロプレイかつCにしがみつくつもりなら構わないけど
そうじゃないなら基本的に使わないべき遺物

344 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 20:11:29.53 ID:Zh+6zBsp.net]
ほぼ同じ演算子オーバーロードを延々と書く場合とかマクロでまとめていいと思うけどね
テンプレートではどうしようもないレベルのメタプログラミングの手段として未だに有効

345 名前:デフォルトの名無しさん [2022/02/28(月) 20:17:53.65 ID:xrBOKM6i.net]
むしろ、他言語にマクロ展開機能がないことが不満

346 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 20:19:01.14 ID:EeqSDih1.net]
そうなる仕組みもどうかと思うけど、必要悪として採用するケースが「あってもいい」という程度だよ

347 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 20:39:17.05 ID:xzjNndYE.net]
>>339
だよな

復号代入とかフルで揃えようとすると
毎回同じようなコードを延々書くからな

348 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 21:11:31.61 ID:EeqSDih1.net]
だよなじゃねーよw
本当にマクロでないとできないケースなのかすら怪しいw

349 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 21:21:08.91 ID:TawWBZkT.net]
>>339
テンプレートでできなくてマクロならできるとかそんなにはないだろ

>>340
C/C++ のマクロなんて PL/I から見たら子供騙しレベルだけどね



350 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 23:32:29.49 ID:7SSxP2tw.net]
>>340
C++に一番近い言語であるRustが多様な各種マクロを充実させているので乗り換えるのもよいかもね
マクロ以外にも非常に多くの問題が解決される

351 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 23:58:07.07 ID:EeqSDih1.net]
ゴミのような文化を踏襲してしまった残念言語のRustさんのヘイトを上げるのはやめましょうw

352 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 00:33:34.91 ID:Sj28peWv.net]
C++使ってるおれすげーみたいな

353 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 01:06:15.88 ID:PkY5rkFL.net]
C++を使いこなせないから皆下流行語の修得を目指す

354 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 06:11:28.76 ID:qblu1Z+O.net]
>>343
怪しいって明確に判断できねえのかよ
そもそも俺そんな話してねえし

355 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 06:34:48.00 ID:MT73K7Vw.net]
>>343
見てもないコードが明確に判断できたらこえーよ
そんな話じゃないって何いってんのw

356 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 06:35:21.34 ID:MT73K7Vw.net]
>>350
アンカー間違った。>>349な。

357 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 07:02:46.96 ID:qblu1Z+O.net]
>>350
おまえさん本当にC++使いか?
operator+とoperator+=みたいのの全組み合わせがマクロ使わずにできないとでも思うのか?

358 名前:はちみつ餃子 mailto:sage [2022/03/01(火) 08:36:21.07 ID:9lt8ULa+.net]
>>340
Cプリプロセッサを他言語で使ってもいいんですよ。

359 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 09:06:42.29 ID:cUOzOJ3p.net]
>>340
マクロを持つ言語は多い
Rustのように用途に応じてマクロが何種類もあるケースもある



360 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 10:19:23.90 ID:Hv9eImco.net]
struct B{...}*bP;
struct D1 : public B{...} d1;
struct D2 : public B{...} d2;
bP = (...)? &d1 : &d2;
これって駄目なんですね

361 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 10:40:29.97 ID:MQDieCXt.net]
>>355
3項演算子の引数型が互換性のないD1*,D2*だからね

C#9あたりがターゲット型から3項演算子の型推測やってた気がするがC++に導入される日か来るんだろうか

362 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 11:01:53.10 ID:Hv9eImco.net]
なるほど
素直にif文にしておきます

363 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 11:08:34.73 ID:cMGuQY9h.net]
つ static_cast<bP>(&d#)

364 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 11:13:51.24 ID:qblu1Z+O.net]
>>357
bP = (rnd() & 1)? (B*)&d1 : (B*)&d2;
ではあかんのか?

365 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 11:14:23.15 ID:qblu1Z+O.net]
rnd() & 1
は無視してくれw

366 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 11:14:50.30 ID:Hv9eImco.net]
ああ、それでいいんですね
ありがとうございます

367 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 11:54:42.57 ID:MT73K7Vw.net]
今度はCに毒されていくC++スレw
プリプロセッサはincludeパス的に言語や標準ライブラリを結構意識したりしますw

368 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 23:30:51.45 ID:cUOzOJ3p.net]
>>355
そういうのはRustがすっきり実現していていい感じ
静的モノモーフィングでコンパイル時に解決させる方法と
動的ディスパッチで実行時に解決させる方法の2種類を選びつつ簡単かつ安全に記述できる

369 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 01:32:22.77 ID:/wwlA8Tq.net]
なんでこんなとこにrust信者が湧いてるん?



370 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 03:41:00.25 ID:re9dUtRi.net]
C++のstatic_castで十分すっきりしてるし安全なんだがw

371 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 03:51:26.38 ID:S8+3WyDZ.net]
うむ
まあRustはトレイトを導入しているためもっとフレキシブルに機能毎に事実上のキャストができる点で先に進んでる感じ

372 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 04:16:03.37 ID:re9dUtRi.net]
std::visitで十分じゃないの?

373 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 06:05:07.28 ID:+cCq037X.net]
>>364
メンタルはルビ基地と同じだから相手すんな

374 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 08:02:10.51 ID:UQPkqsb3.net]
>>364
スレ違い野郎はNG推奨

375 名前:デフォルトの名無しさん [2022/03/02(水) 10:15:53.71 ID:KGds3ROy.net]
RustはUnityで作られてるんだからC#スレ行けよ

376 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 11:52:56.52 ID:YmcISO0J.net]
有名なライブラリのコード覗いて見るとC++でもマクロ結構使ってるよね

377 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 12:21:01.59 ID:aVzPtAzs.net]
まあそこは女性のウェストが50cmだと思ってるスペック厨のオタクと現実に生きて実用的なものを開発してる人の違いだね

378 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 12:24:43.91 ID:adLRB/+A.net]
有名ライブラリこそマクロに頼らないとやってられんとこあるからな

コンパイル環境(gcc/clang/MSVC)のスイッチとか
C++バージョンのスイッチとか(#define CONSTEVAL20 consteval/constexpr)

ボイラープレートの簡略化はどれぐらいやってるかは知らんが

379 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 15:14:53.11 ID:dDnSjvDO.net]
条件コンパイルには#ifdefがいるね



380 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 16:48:19.79 ID:PsZF8bq4.net]
文法ばかり勉強してコード書かないからマクロの必要性が見えないんだよ。

381 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 18:39:02.62 ID:c7Jb1Y/C.net]
ああ、マクロ不要論者は自分でライブラリ書いたことないというオチか
腑に落ちたわ

382 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 19:24:38.63 ID:hTxF5AaQ.net]
まともにコード書く量も質も足りない人にはマクロの弊害を認識できてないんだろうなw
インクルードガードなどの条件コンパイルはプリプロセスではあるものの、一般的なマクロ置換処理ではないw

383 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 19:49:49.09 ID:l1hFvrU8.net]
本気でいってんの?このバカ

384 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 20:05:07.59 ID:hTxF5AaQ.net]
単発IDで中身のない煽りだけの人が早速出現w
臆病すぎwwww

385 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 05:56:44.52 ID:1RB3fRbG.net]
> マクロ不要論者

誰? いたっけ、そんなやつ

386 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 06:37:36.91 ID:DqQFNqIa.net]
>>380
>>336あたりじゃね?

387 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 06:43:28.40 ID:1RB3fRbG.net]
ああ、あのキチか
相手すると馬鹿が伝染るからやめようぜ

388 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 11:43:03.93 ID:4zB49VIz.net]
まだいたのか臆病者w 答え教えてもらってもなお理解しない人に付ける薬はないよw
構ってちゃんやるなら別の板でやれ

389 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 20:47:43.90 ID:TVZZL9aI.net]
コンパイル時にansiをunicodeに変換する簡単な方法あってある?
具体的にはmagic_enum::enum_namesで返ってくるstring_view配列をwchar_tとして貰いたいのだけど



390 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 20:55:24.70 ID:4zB49VIz.net]
exe野郎は口を開く権利なしw
ソースコードのエンコーディングを指定するか、エスケープした文字列まで正しく変換したソースを使った上で、必要なキャストをするか、プロジェクト設定を使えw

391 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 20:58:03.36 ID:nHKPE6Wj.net]
MSの教えどおりにマクロ使ってれば簡単なのにな。

392 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 21:17:57.65 ID:4zB49VIz.net]
そもそも言ってる内容が怪しいw ワイド文字の話とエンコーディングの話がごっちゃになってるw

393 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 21:40:05.34 ID:TVZZL9aI.net]
ansiをunicodeにエンコードしたいって意味なんだけど自分でテーブルでもつくらないとconstevalには無理?
それ以外に方法がないならライブラリいじることにするけど

394 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 21:47:53.46 ID:4zB49VIz.net]
動くサンプルを載せてみろw

395 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 21:55:46.03 ID:cJZvpdpU.net]
ansiってなにを指すん?

396 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 21:56:54.08 ID:1RB3fRbG.net]
アメリカの国内規格

397 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 22:00:02.02 ID:4zB49VIz.net]
MS様のお庭ではローカルコードページくらいの意味だw

398 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 22:05:54.66 ID:TVZZL9aI.net]
>>390
日本語WindowsMSVCだと"あ"はansi(shift-jis)として{ 0x82, 0xA0 }になる
これをunicodeの0x3042にエンコードするって感じでconstexprに生成されたansiを変換していきたい
ライブラリ内部では__FUNCSIG__等を利用して静的にenumから文字を生成してるからL#でもして端からunicodeを生成すれば良いんだけどその場合は他にも色々と変えないとダメだからそれは最終手段にしたい

399 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 22:07:55.03 ID:4zB49VIz.net]
>>393
ごたくはいいから動くサンプルを載せてみろw



400 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 22:12:15.56 ID:TVZZL9aI.net]
>>394
動くサンプルって何?
動く見通しついてないからこうして質問してるんだけどとりあえずansi版でもいいからサンプル見たいってことか?

enum class AIUEO { あ, い, う, え, お };
void print(){
constexpr auto texts = constexpr auto texts = magic_enum::enum_nameptrs<AIUEO>();
for (auto& str : texts) puts(str.data()); //ほんとはここを_putws的なunicodeを受け取るものに投げたい
}

401 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 22:14:02.23 ID:TVZZL9aI.net]
今即席でスマホのブラウザで書いたからconstexpr auto texts = constexpr auto texts = のところミスってるけどスルーしといて

402 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 22:14:34.14 ID:4zB49VIz.net]
main関数がないので動かんな
magic_enumもないので動かんな
これがお前の「動く」サンプルなのか???w

403 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 22:16:37.08 ID:aciaBeWI.net]
出たよサンプルないと何もできないおじさん

404 名前:蟻人間 mailto:sage [2022/03/04(金) 22:33:11.96 ID:08B25WN2.net]
https://qiita.com/ta_dragon/items/1828ceb16bc8733526e1
貼っとくよ。

405 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 22:42:39.88 ID:rsYyHWe+.net]
constexpr std::string s="test";
constexpr std::wstring ws=L"test";

こいつらが通らない時点で俺は諦めた
最終的にほしい型はstd::wstring_viewだろうけど
std::array<wchar_t, size>ならなんとかなるかもしれん

406 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 22:52:27.11 ID:nHKPE6Wj.net]
そもそもウクライナに寄付しろとか言う前に他民族、多言語に対応しろとmagic_e

407 名前:num作者にメールすべき。 []
[ここ壊れてます]

408 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 22:57:11.67 ID:4zB49VIz.net]
違うだろw こいつが動かせてないだけだろwwww

409 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 23:05:31.04 ID:TVZZL9aI.net]
>>399
まさにnameofと同じ作者のものだけど、やっぱ__FUNCSIG__の部分からLつけていくしかなさそうだな



410 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 00:24:50.51 ID:AqnMHu7I.net]
まだ動かせないんかいw

411 名前:蟻人間 mailto:sage [2022/03/05(土) 00:27:03.13 ID:z+1i+qt8.net]
L##

412 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 00:45:32.11 ID:E2o+9AFP.net]
C##

413 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 01:02:31.13 ID:AqnMHu7I.net]
一応言っておくと__FUNCSIG__はリテラルじゃなくてシンボルだぞw
>type hoge.cpp
hoge(__FUNCSIG__);
>cl /P /std:c++17 hoge.cpp
Microsoft(R) C/C++ Optimizing Compiler Version 19.28.29912 for x86
Copyright (C) Microsoft Corporation. All rights reserved.

hoge.cpp

>type hoge.i
#line 1 "hoge.cpp"
hoge(__FUNCSIG__);

>
なんというか...ロクに動かせもしないアホが一足飛びに余計なことして普通なら瞬間に出来ることを他人様に何度も何度も聞いて回るというねw

414 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 01:13:20.54 ID:rFZZ/Cia.net]
>>407
>__FUNCSIG__ 外側の関数のシグネチャを含む文字列リテラルとして定義されます。
直接Lは付けられないが#define L(x) L##xを使えばちゃんとワイド文字リテラルとなる
ついでに言っておくとVSのこの手のマクロはANSIではなくUTF8だったと思うぞ(固定ではなくソースコードの文字コード依存の可能性あり)

415 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 01:23:21.22 ID:AqnMHu7I.net]
utf8は正解なんだが、リテラルは不正解w
https://godbolt.org/z/4G1vvhrEc
コンパイラがリテラルに置き換えるわけだけど、プリプロセッサではシンボルのままなので置換されると分からなくなるw

416 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 01:25:23.87 ID:AZBfqXsc.net]
MSVCの場合 /execution-charset で指定した文字コード(デフォルトはsjis=cp932)になるんじゃなかったかな

417 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 01:37:21.06 ID:AqnMHu7I.net]


418 名前:指定時はソースと同じらしい
https://docs.microsoft.com/ja-jp/cpp/build/reference/execution-charset-set-execution-character-set?view=msvc-170
でutf-8になってたようだな
[]
[ここ壊れてます]

419 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 01:47:40.22 ID:AqnMHu7I.net]
ただし、__FUNCSIG__はそういうのに影響されずutf-8っぽい
普通のリテラルはちゃんとシフトJISで出るけど、__FUNCSIG__はutf8だな



420 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 01:49:42.38 ID:AZBfqXsc.net]
ややこしいな、そういうのが一番困るんだよねw

421 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 01:52:53.77 ID:AqnMHu7I.net]
MSにありがちw ただシンボルに日本語とかキチガイしかしないからw






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<255KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef