[英]Shared Pointer to Anonymous Structure
是否可以为* anonymous结构创建shared_ptr? *我不太确定下面的结构是否构成匿名结构。 例如;
struct { HWND hwnd; } *tmpArgs;
tmpArgs->hwnd = hwnd;
std::shared_ptr<struct> evtArgs(tmpArgs); // possible? right now its a compile error "'struct': missing tag name"
// usage
evtHandler( evtArgs ); // evtHandler( std::weak_ptr<void> EventArguments );
我有一个非常狭窄/专业的案例,我需要传递一个结构tmpArgs
,它不会在应用程序的任何其他地方使用。 所以我不需要声明一个新的struct
类型。
你可以得到你渴望的shared_ptr
......
std::shared_ptr<std::remove_pointer<decltype(tmpArgs)>::type> evtArgs(tmpArgs);
但是你无法以任何有用的方式将它传递出代码的范围。
潜在地,如果您尝试确保仅通过shared_ptr
或weak_ptr
引用该类,这将是有用的,因此您将这些内容放在命名空间范围内。 但这对我来说似乎远离了良好的编码风格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.