0

我有一个可变boost::any*项目。我的要求是:

使用可以是 int、double 或任何其他数据类型的值列表分配项目。但是在给定的时间,数据类型将是唯一的。

问题:

对于单个值,我可以使用 items[index] = value; 但是,如果我这样做 item = values; 其中 values 是一个双精度数组,它不能自动转换。另外,如果我使用

items = boost::any_cast<boost::any*>(values)

我收到“boost::bad_any_cast”:使用“boost::any_cast”转换失败。

关于如何将双数组转换为数组的一些提示将非常有用boost::any

4

1 回答 1

1

它只是行不通。在 adouble[]中,双打是连续的。两个双打之间没有空格。大致相同的情况适用于 a :两个对象boost::any[]之间没有空间。但是存储在相邻包装器any内的两个双精度之间存在空间。boost::any<>

您必须编写一个函数。

于 2012-11-09T14:57:34.133 回答