Date: Mon, 14 Nov 2016 10:39:08 -0300 From: =?UTF-8?B?T3RhY8OtbGlv?= <otacilio.neto@bsd.com.br> To: Pietro Cerutti <gahr@FreeBSD.org> Cc: freebsd-ports@freebsd.org, owner-freebsd-ports@freebsd.org Subject: Re: How compile "String inf = static_cast<ostringstream*>(&(ostringstream() << pAct.minArea))->str();" Message-ID: <eba49b50-fd4e-1bd0-fd41-d67424cebb96@bsd.com.br> In-Reply-To: <d6f25afe1529486ce23d1d0945e87464@FreeBSD.org> References: <ebbf89d2-f83a-b03a-95db-05c7d5358aa7@bsd.com.br> <d6f25afe1529486ce23d1d0945e87464@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Em 14/11/2016 06:29, Pietro Cerutti escreveu:
> On 2016-11-09 02:37, OtacĂlio wrote:
>> I'm trying create a patch to OpenCV 3.1 runs on FreeBSD but clang
>> don't compiles lines like this:
>>
>> String inf = static_cast<ostringstream*>(&(ostringstream() <<
>> pAct.minArea))->str();
>
> There's nothing wrong with this code, provided that:
>
> * <sstream> is included
> * ostringstream is actually std::ostringstream
> * pAct.minArea defines operator<< to std::ostringstream or one of its
> base classes
>
> What's the error you're getting?
>
> That being said, I'd switch to using c++11 and String inf =
> std::to_string(pAct.minArea) :)
>
Hi
This code is in
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp/detect_mser.cpp
line 76 . I'm using C++11. The full compiler error message is this:
[ 95%] Built target example_image_sequence
--- samples/cpp/CMakeFiles/example_select3dobj.dir/all ---
/usr/bin/make -f
samples/cpp/CMakeFiles/example_select3dobj.dir/build.make
samples/cpp/CMakeFiles/example_select3dobj.dir/depend
--- samples/cpp/CMakeFiles/example_select3dobj.dir/depend ---
cd /usr/ports/graphics/opencv3/work/opencv-3.1.0 && /usr/local/bin/cmake
-E cmake_depends "Unix Makefiles"
/usr/ports/graphics/opencv3/work/opencv-3.1.0
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp
/usr/ports/graphics/opencv3/work/opencv-3.1.0
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp/CMakeFiles/example_select3dobj.dir/DependInfo.cmake
--color=
--- samples/cpp/CMakeFiles/example_detect_mser.dir/all ---
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp/detect_mser.cpp:76:46:
error: cannot take the address of an rvalue of type
'std::__1::basic_ostringstream<char, std::__1::char_traits<char>,
std::__1::allocator<char> >'
String inf = static_cast<ostringstream*>(&(ostringstream() <<
pAct.minArea))->str();
^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp/detect_mser.cpp:77:46:
error: cannot take the address of an rvalue of type
'std::__1::basic_ostringstream<char, std::__1::char_traits<char>,
std::__1::allocator<char> >'
String sup = static_cast<ostringstream*>(&(ostringstream() <<
pAct.maxArea))->str();
^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp/detect_mser.cpp:80:39:
error: cannot take the address of an rvalue of type
'std::__1::basic_ostringstream<char, std::__1::char_traits<char>,
std::__1::allocator<char> >'
inf = static_cast<ostringstream*>(&(ostringstream() <<
pAct.delta))->str();
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp/detect_mser.cpp:82:39:
error: cannot take the address of an rvalue of type
'std::__1::basic_ostringstream<char, std::__1::char_traits<char>,
std::__1::allocator<char> >'
inf = static_cast<ostringstream*>(&(ostringstream() <<
pAct.maxVariation))->str();
^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp/detect_mser.cpp:84:39:
error: cannot take the address of an rvalue of type
'std::__1::basic_ostringstream<char, std::__1::char_traits<char>,
std::__1::allocator<char> >'
inf = static_cast<ostringstream*>(&(ostringstream() <<
(int)pAct.minDiversity))->str();
^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp/detect_mser.cpp:86:39:
error: cannot take the address of an rvalue of type
'std::__1::basic_ostringstream<char, std::__1::char_traits<char>,
std::__1::allocator<char> >'
inf = static_cast<ostringstream*>(&(ostringstream() <<
(int)pAct.pass2Only))->str();
^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp/detect_mser.cpp:88:39:
error: cannot take the address of an rvalue of type
'std::__1::basic_ostringstream<char, std::__1::char_traits<char>,
std::__1::allocator<char> >'
inf = static_cast<ostringstream*>(&(ostringstream() <<
(int)pAct.maxEvolution))->str();
^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp/detect_mser.cpp:90:39:
error: cannot take the address of an rvalue of type
'std::__1::basic_ostringstream<char, std::__1::char_traits<char>,
std::__1::allocator<char> >'
inf = static_cast<ostringstream*>(&(ostringstream() <<
(int)pAct.areaThreshold))->str();
^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp/detect_mser.cpp:92:39:
error: cannot take the address of an rvalue of type
'std::__1::basic_ostringstream<char, std::__1::char_traits<char>,
std::__1::allocator<char> >'
inf = static_cast<ostringstream*>(&(ostringstream() <<
(int)pAct.minMargin))->str();
^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/ports/graphics/opencv3/work/opencv-3.1.0/samples/cpp/detect_mser.cpp:94:39:
error: cannot take the address of an rvalue of type
'std::__1::basic_ostringstream<char, std::__1::char_traits<char>,
std::__1::allocator<char> >'
inf = static_cast<ostringstream*>(&(ostringstream() <<
(int)pAct.edgeBlurSize))->str();
^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?eba49b50-fd4e-1bd0-fd41-d67424cebb96>
