Новичок в C ++ и наткнулся на такой код (также не уверен, что это правильный путь)
template<ReqType, RespType>
class StreamManager {
...
...
}
using UpstreamManager = StreamManager<UpstreamReq, UpstreamResp>;
using DownstreamManager = StreamManager<DownstreamReq, DownstreamResp>;
using SidestreamManager = StreamManager<SidestreamReq, SidestreamResp>;
Я хочу реализовать функцию, которая возвращает один из этих типов в зависимости от типа, переданного в функцию. Есть ли способ определить, что это какой-то общий тип.
**[ReturnType]** CreateStreamManager(StreamType type) {
switch(type) {
case upstream:
return new UpstreamManager();
case downstream:
return new DownstreamManager();
case sidestream:
return new SidestreamManager();
}
}
Есть ли способ определить ReturnType для этой функции CreateStreamManager?