#include <array>
#include <experimental/array>
#include <iostream>
#include <typeinfo>
using namespace std;
int main()
{
// std::array arr = { 1, 2, 3.4 }; // error
// creates array of doubles
auto arr = std::experimental::make_array(1, 2, 3.4);
bool is_array_of_3_doubles = std::is_same<decltype(arr), std::array<double, 3>>::value;
std::cout << "Returns an array of three doubles? ";
std::cout << std::boolalpha << is_array_of_3_doubles << '\n';
// creates array of ints
auto ra = std::experimental::make_array<int> (1, 2, 3.4);
bool is_array_of_3_ints = std::is_same<decltype(ra), std::array<int, 3>>::value;
std::cout << "Returns an array of three ints? ";
std::cout << std::boolalpha << is_array_of_3_ints << '\n';
return 0;
}
I2luY2x1ZGUgPGFycmF5PgojaW5jbHVkZSA8ZXhwZXJpbWVudGFsL2FycmF5PgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDx0eXBlaW5mbz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgCnsKICAgIC8vIHN0ZDo6YXJyYXkgYXJyID0geyAxLCAyLCAzLjQgfTsgLy8gZXJyb3IKICAgIAogICAgLy8gY3JlYXRlcyBhcnJheSBvZiBkb3VibGVzCQogICAgYXV0byBhcnIgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6bWFrZV9hcnJheSgxLCAyLCAzLjQpOwoJCiAgICBib29sIGlzX2FycmF5X29mXzNfZG91YmxlcyA9IHN0ZDo6aXNfc2FtZTxkZWNsdHlwZShhcnIpLCBzdGQ6OmFycmF5PGRvdWJsZSwgMz4+Ojp2YWx1ZTsKICAgIHN0ZDo6Y291dCA8PCAiUmV0dXJucyBhbiBhcnJheSBvZiB0aHJlZSBkb3VibGVzPyAiOwogICAgc3RkOjpjb3V0IDw8IHN0ZDo6Ym9vbGFscGhhIDw8IGlzX2FycmF5X29mXzNfZG91YmxlcyA8PCAnXG4nOwogICAgCiAgICAvLyBjcmVhdGVzIGFycmF5IG9mIGludHMKICAgIGF1dG8gcmEgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6bWFrZV9hcnJheTxpbnQ+ICgxLCAyLCAzLjQpOwoJCiAgICBib29sIGlzX2FycmF5X29mXzNfaW50cyA9IHN0ZDo6aXNfc2FtZTxkZWNsdHlwZShyYSksIHN0ZDo6YXJyYXk8aW50LCAzPj46OnZhbHVlOwogICAgc3RkOjpjb3V0IDw8ICJSZXR1cm5zIGFuIGFycmF5IG9mIHRocmVlIGludHM/ICI7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjpib29sYWxwaGEgPDwgaXNfYXJyYXlfb2ZfM19pbnRzIDw8ICdcbic7CiAgICAKICAgIHJldHVybiAwOwp9