由于引入了 C++17 std::any
。现在可以编写这样的代码
#include <iostream>
#include <any>
#include <string>
int main () {
const double d = 1.2;
std::any var = d;
const std::string str = "Hello World";
var = str;
}
double 被分配给变量var
,而不是 astd::string
被分配给它。
为什么std::any
被介绍了?
我认为这违反了least astonishment rule
,因为我很难想到一种情况,可以用它来更清楚地表达我喜欢表达的东西。
有人可以给我一个很好的例子,什么时候std::any
是有益的。