rttrorg / rttr

C++ Reflection Library
https://www.rttr.org
MIT License
3.12k stars 430 forks source link

var.get_type().get_name() return std::shared_ptr<MyStruct>,not 'MyStruct'. #309

Closed ThisisGame closed 3 years ago

ThisisGame commented 3 years ago

`type t = type::get_by_name("MyStruct"); variant var = t.create(); // will invoke the previously registered ctor

constructor ctor = t.get_constructor(); // 2nd way with the constructor class var = ctor.invoke(); std::cout << var.get_type().get_name(); // prints 'MyStruct'`

var.get_type().get_name() return std::shared_ptr,not 'MyStruct'.

emikita commented 3 years ago

use .constructor<>()(rttr::policy::ctor::as_object) rttr::as_std_shared_ptr is the default policy