I'm trying to understand this syntax:
var debug_allocator: std.heap.DebugAllocator(.{}) = .init;
For me, this does not 'parse' yet, especially omitting parenthesis after .init - I would have expected:
var debug_allocator: std.heap.DebugAllocator(.{}) = .init();
What I do understand:
// debug_allocator is of type std.heap.DebugAllocator
// The DebugAllocator is a comptime function, and .{} means "infer type and use default values"```
However, I just cannot 'get' that `.init;` may omit parenthesis. The dot means 'call fn in the struct, infer type' **but it is a call - not a value.**
This to me seems to 'implicit' and goes against some of the explicitness I've come to like with Zig. Please help me understand!