#include <iostream>
using namespace std;
template <class T>
T 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<>
box Max<box>(box b1, box b2) { //Ошибка
return b1.volume > b2.volume ? b1 : b2;
}
int main() {
box b1 = { 5, 4, 2 };
box b2 = { 10, 10, 2 };
setVolume(b1);
setVolume(b2);
cout << Max(b1, b2).volume << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlIDxjbGFzcyBUPgogICAgVCBNYXgoVCBhLCBUIGIpIHsKICAgICAgICByZXR1cm4gYSA+IGIgPyBhIDogYjsKICAgIH07CgpzdHJ1Y3QgYm94IHsKICAgIGRvdWJsZSBoZWlnaHQ7CiAgICBkb3VibGUgd2lkdGg7CiAgICBkb3VibGUgbGVuZ3RoOwogICAgZG91YmxlIHZvbHVtZTsKfTsKCnZvaWQgc2V0Vm9sdW1lKGJveCAmYikgewogICAgYi52b2x1bWUgPSBiLmhlaWdodCAqIGIud2lkdGggKiBiLmxlbmd0aDsKfQoKdGVtcGxhdGU8Pgpib3ggTWF4PGJveD4oYm94IGIxLCBib3ggYjIpIHsgLy/QntGI0LjQsdC60LAKICAgIHJldHVybiBiMS52b2x1bWUgPiBiMi52b2x1bWUgPyBiMSA6IGIyOwp9CgppbnQgbWFpbigpIHsKICAgIGJveCBiMSA9IHsgNSwgNCwgMiB9OwogICAgYm94IGIyID0geyAxMCwgMTAsIDIgfTsKICAgIHNldFZvbHVtZShiMSk7CiAgICBzZXRWb2x1bWUoYjIpOwogICAgY291dCA8PCBNYXgoYjEsIGIyKS52b2x1bWUgPDwgZW5kbDsKfQo=