これは意味がありますか?
static_cast<long long>(1) == 1LL
static_cast<float>(1) =? 1F
フロートなどの他のタイプのキャストを作成する簡単な方法はありますか? どうもありがとうございました!
C++11 以降、独自のリテラルを定義できます。たとえば、次の_F
ようにリテラルを定義できます。
float operator"" _F(unsigned long long l)
{
return static_cast<float>(l);
}
int main()
{
auto a = 1_F;
static_assert(std::is_same<decltype(a), float>::value, "Not a float");
return 0;
}
この回答はC++ 11について説明しています。ユーザー定義のリテラルと一部の型は、言語の歴史的なバージョンには存在しませんでした。
整数リテラルは、、 、 、または 、 、、、またはそれぞれL
のLL
型を指定することなく終了できます。これらは、必要に応じて小文字にすることができます。また、値を表すために必要な場合、実際の型は指定されたものよりも幅が広い場合があります。U
UL
ULL
int
long
long long
unsigned int
unsigned long
unsigned long long
浮動小数点リテラルは、何も指定せずに終了することも、それぞれ、F
またはL
の型を指定することもできます。繰り返しますが、これらは必要に応じて小文字にすることができます。double
float
long double
文字リテラルと文字列リテラルは、それぞれ、、またはの文字型を指定して、何もない 、 u
、U
またはで始めることができます。文字列は、UTF-8 エンコーディングの文字タイプを示すためにで始めることもできます。L
char
char16_t
char32_t
wchar_t
u8
char
独自のユーザー定義リテラルを定義して、任意のタイプのリテラルを作成することもでき123_km
ますkilometres(123)
. その要点はわかりませんが、興味があれば誰かが例を投稿しています。