Получить тип результата операции над числовыми типами
От:
Аноним
Дата:
24.03.10 17:19
Оценка:
Нужна метафункция ResultType<A, B>, которая выдаёт тип результата операции сложения (умножения, деления, вычитания) для значений типов A и B. Если надо, можно считать, что A и B — числовые типы.
Пример:
template <typename A, typename B>
ResultType<A, B>::Type f(A a, B b)
{
return a + b;
}
В принципе, можно выписать все специализации. Но думаю, можно проще.
Подойдёт boost или несложный код.
Re: Получить тип результата операции над числовыми типами
Здравствуйте, Аноним, Вы писали:
А>Нужна метафункция ResultType<A, B>, которая выдаёт тип результата операции сложения (умножения, деления, вычитания) для значений типов A и B. Если надо, можно считать, что A и B — числовые типы.
Здравствуйте, Аноним, Вы писали:
А>Нужна метафункция ResultType<A, B>, которая выдаёт тип результата операции сложения (умножения, деления, вычитания) для значений типов A и B. Если надо, можно считать, что A и B — числовые типы. А>Пример:
А>
А>template <typename A, typename B>
А>ResultType<A, B>::Type f(A a, B b)
А>{
А> return a + b;
А>}
А>
А>В принципе, можно выписать все специализации. Но думаю, можно проще. А>Подойдёт boost или несложный код.
Здравствуйте, Аноним, Вы писали:
А>Нужна метафункция ResultType<A, B>, которая выдаёт тип результата операции сложения (умножения, деления, вычитания) для значений типов A и B. Если надо, можно считать, что A и B — числовые типы. А>Пример:
А>
А>template <typename A, typename B>
А>ResultType<A, B>::Type f(A a, B b)
А>{
А> return a + b;
А>}
А>
А>В принципе, можно выписать все специализации. Но думаю, можно проще. А>Подойдёт boost или несложный код.
Скоро можно будет так:
template <typename A, typename B>
auto f(A a, B b) -> decltype(a + b)
{
return a + b;
}