将'double *'转换为'boost :: any *'

时间:2012-11-09 11:56:44

标签: c++ boost boost-any

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

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

问题:

对于单个值,我可以使用项目[index] = value进行分配;但如果我做item = values;其中values是一个double数组,它不能自动转换。如果我使用

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

我收到'boost :: bad_any_cast':使用'boost :: any_cast`转换失败。

如何将双数组转换为boost::any数组,一些提示真的很棒。

1 个答案:

答案 0 :(得分:1)

它无法正常工作。在double[]中,双打是连续的。两个双打之间没有空格。大致相同的情况适用于boost::any[]:两个any对象之间没有空格。但是在相邻的boost::any<>包装器中存储了两个双打之间的空间。

你必须写一个函数。