- Variable length arrays can be done with std::vector
This isn't what Yarin meant. He meant stack-based allocations. Unless you have a fancy stack allocator implementation, you shouldn't do VLAs in C++. If C supports them, awesome.

Also, isn't __restrict__ an actual thing in C but is optionally implemented by most compiler vendors in C++?