int i = 888;
コンパイラは、数値888をintオブジェクトに変換します。これは、カスタムタイプに対しても実行できます。
#define debug qDebug()<<
struct ceshi
{
int frist;
int second;
ceshi(int one = 0,int two = 0):frist{one},second{two}
{
}
};
ceshi operator"" _xxx(long double f)
{
return ceshi(f,88);
}
int main(int argc, char *argv[])
{
ceshi f = 44.4_xxx;
debug f.frist << f.second;
}
演算子 ""の後にアンダースコアで始まる記号は、カスタム型リテラル定数演算子として使用されます。アンダースコアで始まる必要があります。アンダースコアで始まらないものは、標準ライブラリで使用するために予約されており、次のタイプのパラメータをサポートしています。
operator "" identifier (const char *);
operator "" identifier (unsigned long long int);
operator "" identifier (long double);
operator "" identifier (char);
operator "" identifier (const char*, std::size_t);