From a89868928b5fcc1a7b70b8036f726434e49777af Mon Sep 17 00:00:00 2001 From: Mateusz Tabaka Date: Wed, 27 Jul 2022 11:21:50 +0000 Subject: [PATCH] Fix compilation error on CentOS 7 (gcc 4.8) libstdc++ that comes with gcc 4.8 doesn't define `getline(basic_istream&&, std::string&)` even if it's part of the c++11 standard. However we can still use the following: `getline(basic_istream&, std::string&)`. --- .../videoio/src/cap_obsensor/obsensor_stream_channel_v4l2.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/videoio/src/cap_obsensor/obsensor_stream_channel_v4l2.cpp b/modules/videoio/src/cap_obsensor/obsensor_stream_channel_v4l2.cpp index e947be41d7..14e9086922 100644 --- a/modules/videoio/src/cap_obsensor/obsensor_stream_channel_v4l2.cpp +++ b/modules/videoio/src/cap_obsensor/obsensor_stream_channel_v4l2.cpp @@ -153,7 +153,8 @@ std::vector V4L2Context::queryUvcDeviceInfoList() } std::istringstream(modalias.substr(5, 4)) >> std::hex >> uvcDev.vid; std::istringstream(modalias.substr(10, 4)) >> std::hex >> uvcDev.pid; - std::getline(std::ifstream(video + "/device/interface"), uvcDev.name); + std::ifstream iface(video + "/device/interface"); + std::getline(iface, uvcDev.name); std::ifstream(video + "/device/bInterfaceNumber") >> uvcDev.mi; uvcDevMap.insert({ interfaceRealPath, uvcDev }); }