创建一个没有变量名的结构体,它是如何有用的?



我刚刚遇到这种语法,我不确定在哪里可以真正使用它。

std::hash<std::string>{}(str);

我看到这里没有使用变量名来参考创建的记录,我想知道为什么有人会使用这种语法来创建结构体/记录,除了调用函数/重载操作符?

基本上,如果你想调用构造函数或成员函数,你可以这样做,但你不关心对象本身。

根据我的经验,这在RAII类型中最常见,其中对象的生命周期与资源相关联。您创建一个对象,从而获取一个资源(如文件或其他),然后对该资源执行一些操作。然后说你不需要它。如果你没有给它一个名字,它会在你用完它之后直接调用析构函数,因为'变量'(它甚至不存在)会立即超出作用域,从而释放资源。

最新更新