{"image_url":null,"version":"1.0","provider_url":"https://hatena.blog","blog_url":"https://faithandbrave.hateblo.jp/","provider_name":"Hatena Blog","author_name":"faith_and_brave","type":"rich","published":"2016-10-26 18:04:06","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Ffaithandbrave.hateblo.jp%2Fentry%2F2016%2F10%2F26%2F180406\" title=\"C++1z \u975e\u578b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u306eauto\u5ba3\u8a00 - Faith and Brave - C++\u3067\u904a\u307c\u3046\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","description":"C++14\u307e\u3067\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u66f8\u3044\u3066\u3044\u305f\u300c\u6307\u5b9a\u3055\u308c\u305f\u578b\u306e\u5b9a\u6570\u3092\u53d7\u3051\u53d6\u308b\u300d\u610f\u56f3\u306e\u975e\u578b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf(non-type template parameter)\u3067\u3059\u304c\u3001 template <class T, T V> struct X; X<int, 3>; C++1z\u3067\u306f\u3053\u306e\u7528\u9014\u306e\u305f\u3081\u306e\u30b7\u30f3\u30bf\u30c3\u30af\u30b9\u30b7\u30e5\u30ac\u30fc(\u7cd6\u8863\u69cb\u6587\u3001syntactic sugar)\u304c\u5c0e\u5165\u3055\u308c\u307e\u3059\u3002\u305d\u306e\u305f\u3081\u306b\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u3092auto\u306b\u3057\u3066\u5024\u3092\u53d7\u3051\u53d6\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002 template <auto X> struct A {}; A<3>; // OK A<true>; // OK A<'a'>; // OK A<3\u2026","url":"https://faithandbrave.hateblo.jp/entry/2016/10/26/180406","title":"C++1z \u975e\u578b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u306eauto\u5ba3\u8a00","author_url":"https://blog.hatena.ne.jp/faith_and_brave/","categories":["C++"],"height":"190","width":"100%","blog_title":"Faith and Brave - C++\u3067\u904a\u307c\u3046"}