#include <iostream>
#include <cstdarg>
using namespace std;
template<typename T>
class SimpleClass {
int dim = 0;
int ret = 0;
public:
T& operator_bl(size_t Dim,...) {
if (Dim != dim) throw std::range_error("Dimension Error");
ret = 0;
va_list list;
va_start(list, Dim);
for(int i=0; i<Dim; i++) {
ret += va_arg(list, T);
}
va_end(list);
cout << "Get: " << Dim << ", Ret: " << ret << endl;
return ret;
}
void setDimension(size_t Dim) {
dim = Dim;
}
};
int main() {
try {
SimpleClass<int> value;
value.setDimension(1);
value.operator_bl(1, 11);
value.setDimension(2);
value.operator_bl(2, 22, 33);
value.operator_bl(3, 1, 1, 1);
} catch (std::exception &err) {
cout << "Ваапще Лев Лещенко: " << err.what();
} catch (...) {
cout << "Случилось штото страшное!";
}
return 0;
}