你会推荐哪种做法,为什么?
class Foo : public boost::noncopyable {};
Run Code Online (Sandbox Code Playgroud)
与
class Foo : private boost::noncopyable {};
Run Code Online (Sandbox Code Playgroud)
我无法想象需要使用Foo的实例作为boost :: noncopyable,所以在这种情况下我倾向于私有继承.
我写了一个小应用程序,它使用boost :: program_options进行命令行解析.如果参数存在,我想有一些设置值的选项,如果给出参数但是没有参数,则交替打印当前值.所以"设置模式"看起来像:
dc-ctl --brightness 15
Run Code Online (Sandbox Code Playgroud)
和"获取模式"将是:
dc-ctl --brightness
brightness=15
Run Code Online (Sandbox Code Playgroud)
问题是,我不知道如何处理第二种情况而不捕获此异常:
error: required parameter is missing in 'brightness'
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法可以避免它抛出该错误?一旦解析了参数,就会发生这种情况.