lambda的以下用法是错误的,脆弱的还是愚蠢的?它适用于VC++ 2012,但我担心有一些变量 - 参数/ lambda堆栈交互使得这很危险.
class
ArgumentException : public std::runtime_error
{
public:
ArgumentException(
const char* format_,
... )
: std::runtime_error(
[&]()
{
char buffer[2048];
va_list arguments;
va_start ( arguments, format_ );
int writtenCount = vsnprintf( buffer, 2048, format_, arguments );
va_end ( arguments );
return std::string(buffer);
}() )
{
}
};
Run Code Online (Sandbox Code Playgroud)