Я уже могу сделать это:
struct {
uint64 _i;
bool operator()(uint64 elem)
{
const uint64 i = _i++; return elem & i; // Just an example
}
} filter;
// Templated function
Array<uint64> clone = Containers::filter(array, filter);
Я хотел бы знать, возможно ли переместить определение структуры прямо в вызов функции, чтобы я мог, например, определить макрос, подобный этому:
Array<uint64> clone = Containers::filter(array, ENUMERATE(i, elem, elem & i)); // Same as above
Когда я пытаюсь это сделать, я получаю expected primary-expression before 'struct'
:
Array<uint64> clone = Containers::filter(array, struct {
uint64 _i;
bool operator()(uint64 elem)
{
const uint64 i = _i++; return elem & i;
}
});