我实现了一个存储函数调用结果的类。有时函数具有void返回类型。几个问题: 1)如何在一个向量中保存不同类型的变量(???)? 2)如何理解函数返回的空白? (我不能改变这个功能)
template<>
decltype(auto)
make_sum<string, string>(const string &t, const string &g)
{
std::cout << t << ' ' << g << std::endl;
return;
}
template<class T, class G>
decltype(auto)
make_sum(const T &t, const G &g)
{
return t + g;
}
template<typename T>
Res<typename std::decay<T>::type>
make_Res(T&& t)
{
return{ std::forward<T>(t) };
}
template<typename T>
struct Res {
T t;
};
class Storage
{
public:
template<class T>
void save_res(const T &t)
{
rs.emplace_back(make_Res(t));
}
private:
vector<Res> rs; //????
};