#include <iostream> #include <sstream>usingstd::cout;template<classT,intfirst,intsecond>Tmake(){Tresult=T();std::stringstreaminterpreter;interpreter<<first<<'.'<<second;interpreter>>result;returnresult;}template<intfirst,intsecond,classT=double>structMake{typedefTvalue_type;staticvalue_typevalue;};template<intfirst,intsecond,classT>TMake<first,second,T>::value=make<T,first,second>();template<intfirst,intsecond>structReal{typedefdoubletype;statictypevalue;};template<intfirst,intsecond>typenameReal<first,second>::typeReal<first,second>::value=Make<first,second>::value;intmain(intargc,char*argv[]){cout<<Make<1,2>::value<<'\n';//UNCOMMENT THIS AND SEE WHAT I MEANcout<<Real<1,2>::value;return0;}