// test.cpp
#include <iostream>

using namespace std;

struct box {
    char maker[40];
    float height;
    float width;
    float length;
    float volume;
};


template <typename T>
T max(T a, T b) {
    return a > b ? a : b;
}
template <> box max<box>(box a, box b) {
    return a.volume > b.volume ? a : b; 
}

int main() {
    box b = {"Cube", 2.3F, 1.5f, 4.1f, 32.0f};
    box c = {"Box", 2.6f, 2.3f, 1.2f, 26.8f};
    int i1 = 5, i2 = 3;

    b = max(b, c);
    cout << max(i1, i2) << endl;
    cout << b.volume << endl;

    return 0;
}
