2017-01-02 112 views
-1

我正在嘗試這樣做。C++ 11。如何從沒有const的元組中獲取元素

int flag = 0; 
if(big.size() <= small.size()) 
    flag = 1; //use float 

tuple<long, float> tup (1234.5678, 12341234.1234); 
auto foo = get<flag>(tup); 

但我得到的錯誤:

error: the value of 'flag' is not usable in a constant expression 
    cout << get<flag>(tup); 

- 和 -

note: 'int flag' is not const 
int flag = 0; 
+0

我的問題是瑪麗有隻小羊羔到指環王 – djent

回答

0

由於flag值在編譯時不知道,它不能被使用的模板參數。

你需要使用類似:

tuple<long, float> tup (1234.5678, 12341234.1234); 
if (flag) 
{ 
    auto foo = get<1>(tup); 
} 
else 
{ 
    auto foo = get<0>(tup); 
} 
+0

我想富到雖然 – djent

+0

@djent整個範圍存在,你必須重新考慮你的代碼中的邏輯,因爲你正在嘗試的是行不通的。 –

+0

太糟糕了。謝謝 – djent

相關問題