-7
假設有兩個Class1和Class2類。給定一個條件,我必須儘可能以最短的方式選擇它們而不使用if-else。 意味着最少的代碼行。 僅在編譯時!!!如何從兩個類中選擇一個條件在C++中?
class class1{};
class class2{};
auto data = (((condition) ? class1 : class2) *)(variable)
假設有兩個Class1和Class2類。給定一個條件,我必須儘可能以最短的方式選擇它們而不使用if-else。 意味着最少的代碼行。 僅在編譯時!!!如何從兩個類中選擇一個條件在C++中?
class class1{};
class class2{};
auto data = (((condition) ? class1 : class2) *)(variable)
假設您需要創建在對象取決於變量的編譯時間,你可以嘗試像下面
class class1{};
class class2{};
int main(int argc, char *argv[])
{
constexpr bool variable =true;
/* x is object of type class1 or class2 depending on
compile time constant 'variable'
*/
typedef std::conditional<variable, class1, class2>::type x;
//std::cout << typeid(x).name() << '\n';
return 0;
}
見Here
謝謝。它可能工作 – 2014-09-02 06:12:25
編譯時間?運行? 「選擇」是什麼意思?在「選擇」之後你會做什麼?創建該類型的對象?調用成員函數? – 2014-09-02 05:14:42
您的問題沒有意義,請澄清 – P0W 2014-09-02 05:15:16
請向我們展示一些*實際*代碼,以說明您嘗試解決的具體問題。現在這個問題太模糊,無法回答。 – NPE 2014-09-02 05:16:19