我正在尝试将boost::variant 2D矢量复制到array<T,N>中。使用指令copy(vectorName.begin(), extentName);。首先,我得到了错误,因为向量类型是variant,这是可以理解的。但是,在我将向量类型更改为字符串后,我得到了一个错误,表明此类型在受限的放大器中不受支持。以下代码片段是目标代码:
const int x = 100;
const int y = 100;
concurrency::extent<2> eA(x,y), eB(x,y), eC(x,y);
concurrency::array<string, 2> mA(eA), mB(eB), mC(eC);
tCopyIn.Start();
copy(masterList[0].begin(), mA);
copy(masterList[1].begin(), mB);
copy(masterList[2].begin(), mC);
tCopyIn.Stop();由此:
vector<vector<vector<boost::variant<string, float>>>> masterList;有没有办法在C++-AMP中处理字符串?
发布于 2013-06-27 15:04:39
错误信息是正确的,很遗憾,C++ AMP不支持字符串或字符。支持的最小数据类型是int。有一些技巧/技术可以绕过这个限制,它们涉及到将字符更大地转换为整型。
这里有一篇关于如何做到这一点的好文章:,还有一篇包含源代码的文章。
https://stackoverflow.com/questions/17310521
复制相似问题