C++14 user-defined literal
In C++14 some suffixes were added to specify the type of some user-define literals.Some of them are shown below.
The suffix ‘s‘ is added in string literal to signify it as a string type.Consider the code below.
auto s=”Happy new year!” ; //s is ‘const char*’ type auto st=”Happy”s ; //st is ‘string’ type auto str=”new” , str1= “addition”s ; //error!
The third line will give you an error since str will be deduced as ‘const char*’, but str1 will be deduced as ‘string’ type. Note the difference here.
The suffixes ‘h‘, ‘min‘, ‘s‘, ‘ms‘, ‘us‘, ‘ns‘ is used to denote various chrono::duration time intervals.
auto sec=60s ; //s is chrono::seconds type auto hr=2h ; //hr is chrono::hours type auto mls=56ms ; //mls is chrono:milli-seconds
For complex class there are some suffixes which specify the literals as complex<float> , complex<double> and complex<long double>. The suffixes are given below.
‘if‘, ‘i‘, ‘il‘.
auto comd=345i ; //comd is complex<double> type auto comld=234il ; //comld is complex<long double> type