I have a factory function that makes an example of an object class. Object class gets from std :: enable_shared_from_this The factory function creates an interim class that receives the object to create it.
When I output type object.name () to the object class, I get an unexpected result.
The full example is here and it has been tested with GCC-4.9.2 and Claig-3.5:
There is a factory function:
Classroom ObjectBuilder {Public: Template & lt; Typename t, typename ... Args & gt; Fixed std :: shared_ptr & lt; T & gt; Make-Object (erg & amp; algs) {Structure Access: Public T} (Access (RGS & AG ... Algés): T (STD :: Forward & Lt; ARGEE & gt; (RGS) ... ) {// blank}}; // call t producer std :: shared_ptr & lt; T & gt; Ob = std :: make_shared & lt; Login & gt; (Std :: forward & lt; Ergas & gt; (Args) ...); Return ob; }}; Template & lt; Typename t, typename ... Args & gt; Fixed std :: shared_ptr & lt; T & gt; Make_object (Args & ... args) {Return ObjectBuilder :: make_object & lt; T & gt; (Std :: forward & lt; Ergas & gt; (Args) ...); }
Here is an object class:
class object: public std :: enable_shared_from_this & lt; Object & gt; {Friends Class Object Builder; Public: Virtual ~ Object () {} std :: type_info const & amp; GetTypeInfo () {return typeid (* this); } Protected Object() {} };
Creating an object and output it to its typical name:
std :: shared_ptr GetTypeInfo () .name ()) & lt; & Lt; Std :: endl;
I hope to output one:
ObjectBuilder :: make_object & lt; Object & gt; () :: Access
Instead of a digital output:
std :: shared_ptr
Why is there a std :: shared_ptr in the beginning? What does this represent?
Besides an interesting / maybe related side note: TIFF is capable of reducing production, but GCC is not. The condensate output is:
ZN13 objectbuilder 11 mace_object Ii object IEEEEST10 shaver_ctic IT_EDpOT0_E6 access
No comments:
Post a Comment