【发布时间】:2019-12-17 16:15:15
【问题描述】:
根据我的个人经验和对What are some uses of decltype(auto)? 等问题的咨询答案,我可以找到很多将decltype(auto) 用作函数返回类型占位符的有价值的用例。
但是,我很难为decltype(auto) 变量想出任何有效的(即有用的、现实的、有价值的)用例。想到的唯一可能性是存储返回decltype(auto) 的函数的结果以供以后传播,但auto&& 也可以在那里使用,而且会更简单。
我什至搜索了我所有的项目和实验,发现 decltype(auto) 出现的 391 次都是返回类型占位符。
那么,decltype(auto) 变量有什么实际的用例吗?或者这个功能只有在用作返回类型占位符时才有用?
你如何定义“现实”?
我正在寻找一个提供价值的用例(即,它不仅仅是展示该功能如何工作的示例)其中decltype(auto) 是完美的选择,与@987654329 等替代方案相比@ 或根本不声明变量。
问题域无关紧要,它可能是一些晦涩的元编程极端案例或神秘的函数式编程结构。然而,这个例子需要让我去“嘿,这很聪明/漂亮!”并且使用任何其他功能来达到相同的效果需要更多样板或有某种缺点。
【问题讨论】:
-
你如何定义“现实”?
-
@NicolBolas:我正在寻找一些提供价值的用例(即它不仅仅是一个展示该功能如何工作的示例),其中
decltype(auto)是完美的选择,与@ 等替代方案相比987654331@ 或根本不声明变量。域无关紧要,它可能是一些晦涩的元编程极端案例。但是这个例子需要让我去“嘿,这很聪明!” 并且使用任何其他功能来实现相同的效果将需要更多样板或有某种缺点。抱歉,我不能更准确。 -
@Eljay:我受宠若惊!我可以给你很多关于
decltype(auto)-returning 函数的例子......但是现在变量让我感到困惑:)
标签: c++ c++14 auto type-deduction decltype-auto