Consider the following code snippet:Why does each call fabricate the corresponding output? How does the number of braces affect uniform initialization? And how does brace elision affect all this?
This is specifically regarding C++11:Compiling with g++ 8.2.1:gcc is detecting b.i as uninitialized, but I would think it should be getting zero-initialized along with b.j.
Consider this function template:This invocation works:This one doesn't:(gcc and clang both complain about too many arguments for foo)
I'm compiling using g++ for C++ 17. I have the following:I don't understand why if I remove the double braces for the array it does not work anymore.