Tôi có đoạn mã sau:boost :: lexical_cast không nhận ra quá tải toán tử istream
#include <iostream>
#include <boost\lexical_cast.hpp>
struct vec2_t
{
float x;
float y;
};
std::istream& operator>>(std::istream& istream, vec2_t& v)
{
istream >> v.x >> v.y;
return istream;
}
int main()
{
auto v = boost::lexical_cast<vec2_t>("1231.2 152.9");
std::cout << v.x << " " << v.y;
return 0;
}
Tôi nhận được lỗi biên dịch sau đây từ Boost:
Lỗi 1 lỗi C2338: Loại mục tiêu không phải là std :: istream
able nor std::wistream
có thể
Điều này có vẻ đơn giản, và tôi đã đánh đầu vào bàn làm việc trong một giờ qua. Bất kỳ trợ giúp sẽ được đánh giá cao!
EDIT: Tôi đang sử dụng Visual Studio 2013.
ADL chính xác là gì? –
Tôi có xu hướng nói ** ["đó là một siêu liên kết"] (http://stackoverflow.com/questions/8111677/what-is-argument-dependent-lookup-aka-adl-or-koenig-lookup/8111750#8111750) ** – sehe
Đã chỉnh sửa bài đăng của tôi loại bỏ không gian tên 'mandala' mà tôi đã có trước đó. Cùng một lỗi xảy ra. –