Re:C++ Patterns: The Badge
by dearrifling on Wednesday June 12, 2019 @12:47AM
(#20161849)
You can make register_device() an inline function that just calls a do_register_device() private function without the badge. That way you don't have to pay for the empty class.
[ Parent
| on HN ]
I'm not sure I follow... The motivation for Badge is to have methods on VFS that only Device can call, without exposing VFS's internals to Device. Without Badge, what prevents non-Device functions from calling register_device()?
Re:C++ Patterns: The Badge
by taylorconor on Wednesday June 12, 2019 @01:37AM
(#20162038)
I guess the inline function would require a Badge and the private member function would not. So an inline constructed but never used Badge is even more likely to be completely optimized away
Re:C++ Patterns: The Badge
by dearrifling on Wednesday June 12, 2019 @01:41AM
(#20162049)
Exactly.