2017-02-21 10 views
0

キャストのないリテラルプリミティブに型を割り当てる方法はありますか? 私は0.0がdoubleになり、0.0fがfloatになることを知っています。リテラルを型キャストする他の方法はありますか? fはあなたにfloatを与え、プリミティブリテラルに型を割り当てる簡略方法

1 // int 
2u // unsigned int 
3ll // long long int 
4ull // unsigned long long int 

同様に、floating literalsために、接尾辞はあなたにdoubleを与えない、とlができます:

+0

実際に解決しようとしている問題は何ですか?私はあなたの質問が何であるか分かりません。 – Barry

+0

私はいつも 'static_cast < uint32_t >(0)'をしたくありません。私はちょうど0.0fのようなことをする方法を教えて私を教えてくれないように見えることはできません – theSparky

+0

質問をするためにあなたの質問に言えることはありますか?組合と何が関係しているのか分かりません。 – Barry

答えて

3

は、あなたが欲しいタイプを取得するために、整数リテラルに追加できるsuffixesの束がありますあなたはlong doubleです。

intより小さい型には、プレパッケージされたリテラルサフィックスはありません。しかし、あなたは例えば、自分自身を書くことができます。:VC除き

inline uint16_t operator ""_u16(uint64_t value) { 
    return static_cast<uint16_t>(value); 
} 

5_u16 // uint16_t 

を明らかにすべてのタイプのリテラルの接尾辞を提供 - 10i16はあなたにint16_tを与えるように。

関連する問題