對不起,自大的名字,我想創建一個constexpr
函數,該函數接受可變數量的布爾模板參數,並返回第一true
值的「模板指數」,在C++ 11(僅限C++ 14解決方案,但不會被接受爲答案)。可變參數constexpr類型選擇器
例如,調用這個函數Selector
Selector< false, false >() == 0 // none of the template argument is true
Selector< true, false, true >() == 1 // first true template argument is the first one
Selector< false, false, true, false >() == 3 // .. and here it's the third one
一個典型的利用這個,爲什麼我把它稱爲一個「類型選擇器」的原因,是
Selector< std::is_pointer<T>::value, std::is_arithmetic<T>::value >()
及原因爲什麼我想要它是一個constexpr
是用於部分模板專業化。
我不完全知道如何去這個問題,但我認爲,使用可變參數模板,模板constexpr專業化(爲0的情況下),和遞歸(有沒有可能「消費」模板參數,如shift
在bash?),這應該是可行的。
Downvote請解釋... – Sheljohn
這是一個很好的問題。但它缺乏努力...... –
@KarolyHorvath同意,我正試着想出一些東西。 – Sheljohn