#include #include namespace icl{ template std::string translateRange(const Range &t){ return std::string("[") + str(t.minVal) + "," + str(t.maxVal) + "]"; } template Range translateRange(const std::string &range){ if(range.length() < 5){ ERROR_LOG("invalid range string" << range); return Range(); } std::string range2 = range.substr(1,range.size()-2); std::string minVal = range2.substr(0,range2.find(',')); std::string maxVal = range2.substr(minVal.length()+1); return Range(parse(minVal),parse(maxVal)); } #define ICL_INSTANTIATE_DEPTH(D) \ template std::string translateRange(const Range&); \ template Range translateRange(const std::string &); ICL_INSTANTIATE_ALL_DEPTHS #undef ICL_INSTANTIATE_DEPTH template std::string translateRange(const Range&); template Range translateRange(const std::string &); }