我有一組正則表達式,我必須將它們的捕獲組映射到函數參數。在我看來,最簡單的事情是從正則表達式捕獲組構建一個元組,並使用std :: apply。所以我試圖獲得一個模板來將正則表達式轉換爲一個元組,但我沒有得到它的工作。以下是我的。我試圖專門化遞歸,但似乎沒有辦法專門化函數模板。我是相當新的模板,因此任何幫助是值得歡迎=)從正則表達式構建元組
template <size_t i>
string get_value(std::smatch& rx) {
return rx[i];
}
template <size_t i>
auto tuple_from_rx(std::smatch& rx) {
if (i > 0) {
return std::tuple_cat(tuple_from_rx<i -1>(rx), get_value<i>(rx));
}
else {
return std::tuple<>();
}
}
這似乎很有趣。你有[MCVE]嗎? – Jonas
其中每個元素是相同類型的元組可能更適合作爲數組。 ; - ] – ildjarn
匹配對象具有可變長度,因爲正則表達式無法在編譯時(以其當前形式)知道將會有多少個捕獲組。 –