C++ 列表,没有从"value_type"进行可行的转换
c++ list, no viable conversion from 'value_type'
>我在 c++ 中使用列表
std::list<Foo> foo;
foo.push_back(bar);
Foo *ret = foo.back();
编译时,我收到此错误(最后一行):
No viable conversion from 'value_type' (aka Foo) to 'Foo *'
我该如何解决这个问题?
谢谢
foo.back()
将返回一个引用(即 Foo &
),但您正在尝试将其分配给指针。
要使其正常工作,您可以改为分配给引用:
Foo &ret = foo.back();
或者获取返回项的地址,并将其分配给指针:
Foo *ret = &foo.back();
相关文章:
- 将内存分配返回值强制转换为 TYPE 数组
- C++ 嵌套类模板 错误 C2440 '=':无法从'type'转换为'same type'
- 为什么指针没有隐式转换为 <type> const*const
- 从整数到枚举的首选转换样式 QEvent::Type
- c++ C2440 错误无法从"const BWAPI::UpgradeType"转换为"const BWAPI::Type *"
- C++ 错误 C2662 无法将"this"指针从"const Type"转换为"Type &"
- 错误 C2440: 'type cast':无法从 'bool' 转换为 'CString'
- 无法将参数 1 从"cli::interior_ptr<Type>"转换为"CvCapture **"
- 将 MSVS 2010 项目转换为 MSVS 2012 RC,但出现错误"The C++ standard doesn't provide a hash for this type"
- 专用转换函数导致"ambiguous default type conversion"错误 (c++)
- vector::p ush_back 从 const Type* 转换为 type*
- 可以安全地使用静态强制转换,为每个实例使用唯一的虚拟 int type() 来提高性能
- 无法将参数 1 从"cli::array<Type> ^"转换为"无符号短整型"
- 无法从 Type* 转换为 Type&&
- 没有匹配的操作数[template]/无法从Type const*转换为Type
- C++ std::映射分配错误:无法在赋值中将' type **'转换为'type *'
- 错误 C2440 '=' : 无法从 'cli::array ^'<Type> 转换为 'wchar_t'
- 将Type**转换为void*,然后再返回到Type*
- 将 std::vector<const Type*> 转换为 const std::vector<T, A> &Vec
- 函数将变量Type转换为Type*,导致C++错误