#include<iostream>
template<unsigned int index, unsigned int... remPack> struct getVal;
template<unsigned int index, unsigned int In, unsigned int... remPack> struct getVal<index, In,remPack...>
{
static const unsigned int val = getVal<index-1, remPack...>::val;
};
template<unsigned int In, unsigned int...remPack> struct getVal<1,In,remPack...>
{
static const unsigned int val = In;
};
template<unsigned int... T> struct MyClass
{
static void print(){
std::cout<<getVal<1, T...>::val<<std::endl;
std::cout<<getVal<2, T...>::val<<std::endl;
std::cout<<getVal<4, T...>::val<<std::endl;
//...
}
};
int main() {
MyClass<12,34,22,55>::print();
}
I2luY2x1ZGU8aW9zdHJlYW0+Cgp0ZW1wbGF0ZTx1bnNpZ25lZCBpbnQgaW5kZXgsIHVuc2lnbmVkIGludC4uLiByZW1QYWNrPiBzdHJ1Y3QgZ2V0VmFsOwoKdGVtcGxhdGU8dW5zaWduZWQgaW50IGluZGV4LCB1bnNpZ25lZCBpbnQgSW4sIHVuc2lnbmVkIGludC4uLiByZW1QYWNrPiBzdHJ1Y3QgZ2V0VmFsPGluZGV4LCBJbixyZW1QYWNrLi4uPgp7CiAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHZhbCA9IGdldFZhbDxpbmRleC0xLCByZW1QYWNrLi4uPjo6dmFsOwp9Owp0ZW1wbGF0ZTx1bnNpZ25lZCBpbnQgSW4sIHVuc2lnbmVkIGludC4uLnJlbVBhY2s+IHN0cnVjdCBnZXRWYWw8MSxJbixyZW1QYWNrLi4uPgp7CiAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHZhbCA9IEluOwp9OwogCnRlbXBsYXRlPHVuc2lnbmVkIGludC4uLiBUPiBzdHJ1Y3QgTXlDbGFzcwp7CiAgICBzdGF0aWMgdm9pZCBwcmludCgpewogICAgc3RkOjpjb3V0PDxnZXRWYWw8MSwgVC4uLj46OnZhbDw8c3RkOjplbmRsOwogICAgc3RkOjpjb3V0PDxnZXRWYWw8MiwgVC4uLj46OnZhbDw8c3RkOjplbmRsOwogICAgc3RkOjpjb3V0PDxnZXRWYWw8NCwgVC4uLj46OnZhbDw8c3RkOjplbmRsOwogICAgLy8uLi4KICAgIH0KfTsKIAppbnQgbWFpbigpIHsKTXlDbGFzczwxMiwzNCwyMiw1NT46OnByaW50KCk7Cn0=