In C, we know we have something called printf() function. This printf() function can take any number of arguments of any built-in type (not user-defined type). As an example, the following piece of code is valid for the standard built-in printf() function.
printf(msg, std::string("Variadic templates"), 100, "more");
The problem in this code is, it will not print the string part, but it gets compiled with the MSVC as well as GCC 8.2 compiler.
However, if I change the code like below, now it prints everything properly.