#include <iostream>

using namespace std;

template <class T>
    auto Max(T a, T b) {
        return a > b ? a : b;
    };

struct box {
    double height;
    double width;
    double length;
    double volume;
};

void setVolume(box &b) {
    b.volume = b.height * b.width * b.length;
}

template<>
auto Max<box>(box b1, box b2) { //Ошибка
    return b1.volume > b2.volume ? b1.volume : b2.volume;
}

int main() {
    box b1 = { 5, 4, 2 };
    box b2 = { 10, 10, 2 };
    setVolume(b1);
    setVolume(b2);
    cout << Max(b1, b2) << endl;
}
