Instance
is an aggregate - it contains public data members, but no constructors, destructors or other complications, so can (in many ways) be treated like a struct
in C.
In particular, it can be aggregate-initialised, by specifying a list of values for the members enclosed in braces. A simple example:
struct s {int a,b,c;};
s example = {1,2,3}; // initialises a=1, b=2, c=3
Arrays can also be aggregate-initialised:
int a[3] = {1,2,3};
and, if the array members are aggregates, then each of them can be aggregate-initialised in turn:
s a[3] = {{1,2,3},{4,5,6},{7,8,9}};
Your example is the same as this: each Instance
in the array is aggregate-initialised, using the provided function pointer to initialise the CalcOffset
member.