#include<iostream>
using namespace std;
template<typename T,T val,typename L,typename R>
struct Tree {};
template<typename T>
struct Print {};
template<typename T, T val,typename L, typename R>
struct Print<Tree<T,val,L,R> >{
static void print() {
cout << val<<' ';
if constexpr (is_void<L>::value == false) {
Print<L>::print();
}
if constexpr (is_void<R>::value == false) {
Print<R>::print();
}
}
};
int main() {
Print<Tree<int, 3, Tree<int, 4, void, void>, Tree<int, 5, void, void>>>::print();
}
01-05
8961