C++ ではできて C# ではできないことは、リテラルのエイリアスを作成することです。C++ での記述は36 の場所に#define M_PI 3.141592653589793238462643383279502884
定義されていません。PI
リテラルにエイリアスを付けるだけです。
#define M_PI 3.141592653589793238462643383279502884
double pi = M_PI;
書き方は全く同じです
double pi = 3.141592653589793238462643383279502884;
これは、c++ と C# の両方でほとんど同じように機能します。c++ では、値は C# と同じ精度になります。これは、リテラルが に解釈されるためdouble
です。これは、両方で本質的に同じであると考えられます。
が 36 桁までと宣言されている理由M_PI
は、これが の最大精度であるためquad double
です。残念ながら、C# にはそのような精度を持つネイティブ型はありません。M_PI
C++ では、 として使用しない限り、特別なものは得られませんquad double
。
エイリアス化されたリテラルを使用しても、次のように記述できるだけではあまり役に立ちません。
float pif = M_PI;
int pii = M_PI;
double pid = M_PI;
quad double piq = M_PI;
残念ながら、カスタム タイプを使用する必要があります。