将函数声明转换为变量定义的简单技巧

Simple trick to turn function declaration into variable definition

我知道下面的语句被解释为函数声明而不是变量定义

boost::system::system_error sys_err(boost::system::error_code());

有什么简单的技巧可以将它变成我想要的单行变量定义吗?我不太喜欢写作

boost::system::system_error sys_err(0, boost::system::system_category());

只要您的编译器至少支持 C++11,Dúthomhas 的回答就可以了。对于更通用的解决方案,您可以将参数包装在一对额外的括号中: boost::system::system_error sys_err((boost::system::error_code()));