代码先行
// 运行期以索引获取tuple元素
// 需支持C++11及以上标准的编译器,VS2017 15.5.x、CodeBlocks 16.01 gcc 7.2
// 参考《深入应用C++11:代码优化与工程级应用》p148,祁宇,机械工业出版社,2015年05
template<typename Visit>
void VisitTuple(size_t index, std::tuple<>& t, Visit v) {
}
template<typename T, typename ... Ts, typename Visit>
void VisitTuple(size_t index, std::tuple<T, Ts...>& t, Visit v) {
if (index &g