標籤:

c++可以實現條件聲明么?

經常碰到一種情況是需要判斷條件聲明變數的情況,比如說,如果滿足一個條件,這個變數是int類型,如果不滿足這個條件,這個變數是float類型。從c++語法上可以試想這個東西么?


可以.從C++11開始可以直接使用標準庫這樣做了.

#include &
#include &
#include &

int main()
{
typedef std::conditional&::type Type1;
typedef std::conditional&::type Type2;
typedef std::conditional&= sizeof(double), int, double&>::type Type3;

std::cout &<&< typeid(Type1).name() &<&< ; std::cout &<&< typeid(Type2).name() &<&< ; std::cout &<&< typeid(Type3).name() &<&< ; }

std::conditional - cppreference.com


編譯期的就用conditional ,運行期的就用union +index ,如果要求類型安全的就用varient ,或者自己造一個。


推薦閱讀:

github 上有哪些遊戲或者遊戲開發相關的炫酷的user或者repo?
c語言向文件寫入名字和成績組成的結構體為什麼只有成績出現了燙?
如何高效的學習C++?
對於 C/C++ 函數指針的困惑?

TAG:CC |