{"provider_url":"https://hatena.blog","title":"C++\u3067C#\u306eas\u307f\u305f\u3044\u306a\u66f8\u304d\u65b9\u3059\u308b\u904a\u3073(\u7cde)","image_url":null,"url":"https://mahou-ptr.hatenablog.com/entry/2020/12/13/005445","version":"1.0","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fmahou-ptr.hatenablog.com%2Fentry%2F2020%2F12%2F13%2F005445\" title=\"C++\u3067C#\u306eas\u307f\u305f\u3044\u306a\u66f8\u304d\u65b9\u3059\u308b\u904a\u3073(\u7cde) - \u30b2\u30fc\u30e0\u4f5c\u308a\u306f\u697d\u3057\u3044\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_title":"\u30b2\u30fc\u30e0\u4f5c\u308a\u306f\u697d\u3057\u3044","categories":["C++","\u6280\u8853","\u30b2\u30fc\u30e0\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0"],"published":"2020-12-13 00:54:45","provider_name":"Hatena Blog","description":"template<class T> struct as_op {}; template<class T> constexpr as_op<T> as_obj{}; template<class T, class U> auto operator | (T* ptr, const as_op<U>& op) { return dynamic_cast<U*>(ptr); } #define as | as_obj struct Super{virtual ~Super()=default;}; struct A : Super{ }; int main() { Super* super = ne\u2026","blog_url":"https://mahou-ptr.hatenablog.com/","author_url":"https://blog.hatena.ne.jp/mahou_ptr/","author_name":"mahou_ptr","height":"190","width":"100%","type":"rich"}