gpt4 book ai didi

c++ - 嵌套的 boost::assign:list_of 在 Visual Studio 2012 中损坏 - 对重载函数的调用不明确

转载 作者:行者123 更新时间:2023-11-28 07:37:27 25 4
gpt4 key购买 nike

这适用于 Visual Studio 2010,但不适用于 2012 Update 2(使用 Boost 1.5.3):

vector<vector<BYTE>> data = assign::list_of (assign::list_of (0x06)(0x02));

编译器给出的错误(已更新):

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xmemory0(617): error C2668: 'std::vector<_Ty>::vector' : ambiguous call to overloaded function
with
[
_Ty=BYTE
]
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\vector(786): could be 'std::vector<_Ty>::vector(std::vector<_Ty> &&)'
with
[
_Ty=BYTE
]
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\vector(693): or 'std::vector<_Ty>::vector(unsigned __int64)'
with
[
_Ty=BYTE
]
while trying to match the argument list '(boost::assign_detail::generic_list<T>)'
with
[
T=int
]
... (dozens of more lines)

有什么方法可以解决这个错误?

最佳答案

我认为问题不是来自嵌入,而是来自使用 list_of 创建临时值。这应该有效:

vector<BYTE> temp = assign::list_of (0x06)(0x02);
vector<vector<Byte> > data = assign::list_of(temp);

关于c++ - 嵌套的 boost::assign:list_of 在 Visual Studio 2012 中损坏 - 对重载函数的调用不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com