#include <vector>
class SomeClass {};
template<typename USER_DATA>
class RowProcessor
{
public:
typedef void (*RowFunction)(USER_DATA, std::vector<USER_DATA> &);
RowProcessor(RowFunction, int) {};
};
class UseRowProcessor {
public:
static void AddUserData(SomeClass, std::vector<SomeClass> &);
void LoadUserData();
};
void UseRowProcessor::AddUserData(SomeClass c, std::vector<SomeClass> &v) {
v.push_back(c);
}
void UseRowProcessor::LoadUserData() {
RowProcessor<SomeClass> myRowProcessor(UseRowProcessor::AddUserData, 1);
}
int main() {
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KCmNsYXNzIFNvbWVDbGFzcyB7fTsKCnRlbXBsYXRlPHR5cGVuYW1lIFVTRVJfREFUQT4KY2xhc3MgUm93UHJvY2Vzc29yCnsKCXB1YmxpYzoKICAgIHR5cGVkZWYgdm9pZCAoKlJvd0Z1bmN0aW9uKShVU0VSX0RBVEEsIHN0ZDo6dmVjdG9yPFVTRVJfREFUQT4gJik7CiAgICAgICAgCiAgICBSb3dQcm9jZXNzb3IoUm93RnVuY3Rpb24sIGludCkge307Cn07CgogICAgCiAgICAKY2xhc3MgVXNlUm93UHJvY2Vzc29yIHsKcHVibGljOgogICAgc3RhdGljIHZvaWQgQWRkVXNlckRhdGEoU29tZUNsYXNzLCBzdGQ6OnZlY3RvcjxTb21lQ2xhc3M+ICYpOwogICAgdm9pZCBMb2FkVXNlckRhdGEoKTsKfTsKCnZvaWQgVXNlUm93UHJvY2Vzc29yOjpBZGRVc2VyRGF0YShTb21lQ2xhc3MgYywgc3RkOjp2ZWN0b3I8U29tZUNsYXNzPiAmdikgewogICAgdi5wdXNoX2JhY2soYyk7Cn0KCnZvaWQgVXNlUm93UHJvY2Vzc29yOjpMb2FkVXNlckRhdGEoKSB7CglSb3dQcm9jZXNzb3I8U29tZUNsYXNzPiBteVJvd1Byb2Nlc3NvcihVc2VSb3dQcm9jZXNzb3I6OkFkZFVzZXJEYXRhLCAxKTsKfQoKCgoKCgoKCmludCBtYWluKCkgewoJcmV0dXJuIDA7Cn0KCg==