#define HOGE
で宣言したHOGE
は、マクロと呼ばれるものになります。
一方、constexpr
は、「コンパイル時に値が確定しているconst
」と同じようなものなので、変数という扱いになり、#define
で定義するマクロとは別物になりますので、変数扱いになるのは仕様ですね。
残念ながら私の知る限りconstexpr
で宣言した変数のみ、マクロと同じハイライトをする拡張機能は知りませんので、「そういったもの」だと受け入れた方が良いかもしれません。
0Like
#define HOGE
とした場合はhighlightしてくれるが、これを推奨のままにconstexpr auto HOGE
などにするとhighlightがただの変数扱いになってしまう。
これ、格調機能やらなんやらでどうにかできないものか?
標準設定をよーーく確認したらありそうな気もするが、妙にかゆいところに手が届かないのがVSと心得ているので、自分で探すだけでなく、ほかの方にも意見を求めようと思った次第である。
小生の考えは休むに似たりのようなので…。
chatGPTやらBingに聞いてみたが幻覚していた。ググってもそれっぽい記事が見当たらない。
#define HOGE
で宣言したHOGE
は、マクロと呼ばれるものになります。
一方、constexpr
は、「コンパイル時に値が確定しているconst
」と同じようなものなので、変数という扱いになり、#define
で定義するマクロとは別物になりますので、変数扱いになるのは仕様ですね。
残念ながら私の知る限りconstexpr
で宣言した変数のみ、マクロと同じハイライトをする拡張機能は知りませんので、「そういったもの」だと受け入れた方が良いかもしれません。
@kazumori
Questionerそれらの属性は存じ上げています。ここで論じたいのは、マクロ宣言はconstexprに書き換えるのを推奨されているにもかかわらず、従来のマクロ然したハイライティングがサポートされないのか。という互換性の観点の話です。