Я часто хочу, чтобы получить decltype шаблона класса аргумента для того, чтобы использовать его в дальнейшем, как и в цикле, который я раздел и упрощенный, чтобы показать мою проблему:получить decltype из аргумента шаблона
template <typename T>
class Foo {
public:
T type; //This is my hack to get decltype of T
};
template <typename T>
class Bar {
public:
};
int main() {
for(auto& foo : fs) {
//Is there some way to get the decltype of the template without having to refer to some arbitrary T member of Foo?
auto bar = someFunction<decltype(foo.type)>();
}
}
Is есть способ получить аргумент аргумента шаблона без этого взлома? Если нет, то каково наилучшее обходное решение для получения такого значения?
Что такое 'fs' ...? –
Это всего лишь вектор, содержащий эти объекты, извините, возможно, его оставили (или объяснили). Дело в том, что я использую auto, потому что я на самом деле перебираю кортеж, а затем над вектором (fs), поэтому я действительно хочу использовать auto, а затем извлекать из него тип шаблона. – Gerard
Эта деталь важна. Векторы однородны. –