#include <iostream>
#include <initializer_list>
#include <vector>
#include <typeinfo>
#include <type_traits>
using namespace std;
int main() {
std::cout << std::boolalpha;
std::initializer_list<char*> v = {"one","two","three"}; // Takes string literal pointers (char*)
auto var = v.begin();
char *myvar;
cout << (typeid(decltype(*var)) == typeid(decltype(myvar))); // true
std::string ea = "hello";
std::initializer_list<std::string> v2 = {"one","two","three"}; // Constructs 3 std::string objects
auto var2 = v2.begin();
cout << (typeid(decltype(*var2)) == typeid(decltype(ea)));
std::vector<std::string> vec(v2);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHR5cGVpbmZvPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXN0ZDo6Y291dCA8PCBzdGQ6OmJvb2xhbHBoYTsKCXN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxjaGFyKj4gdiA9IHsib25lIiwidHdvIiwidGhyZWUifTsgLy8gVGFrZXMgc3RyaW5nIGxpdGVyYWwgcG9pbnRlcnMgKGNoYXIqKQoJYXV0byB2YXIgPSB2LmJlZ2luKCk7CgljaGFyICpteXZhcjsKCWNvdXQgPDwgKHR5cGVpZChkZWNsdHlwZSgqdmFyKSkgPT0gdHlwZWlkKGRlY2x0eXBlKG15dmFyKSkpOyAvLyB0cnVlCgkKCXN0ZDo6c3RyaW5nIGVhID0gImhlbGxvIjsKCXN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OnN0cmluZz4gdjIgPSB7Im9uZSIsInR3byIsInRocmVlIn07IC8vIENvbnN0cnVjdHMgMyBzdGQ6OnN0cmluZyBvYmplY3RzCglhdXRvIHZhcjIgPSB2Mi5iZWdpbigpOwoJY291dCA8PCAodHlwZWlkKGRlY2x0eXBlKCp2YXIyKSkgPT0gdHlwZWlkKGRlY2x0eXBlKGVhKSkpOwoJc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHZlYyh2Mik7CglyZXR1cm4gMDsKfQ==