Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Jun 2016 11:54:17 +0200
From:      Dimitry Andric <dim@FreeBSD.org>
To:        =?utf-8?Q?Otac=C3=ADlio?= <otacilio.neto@bsd.com.br>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: /usr/include/c++/v1/map:837:5: error: static_assert failed "Allocator::value_type must be same type as value_type"
Message-ID:  <FB887E8B-03E4-4592-B137-470766CEC0CC@FreeBSD.org>
In-Reply-To: <bea2418d-5e1d-2cac-0500-773c2c9ca0ff@bsd.com.br>
References:  <e4c2cba6-7643-9032-8304-b2fce04c32b6@bsd.com.br> <F34B797C-7A4A-4110-A457-CE439EEA9715@FreeBSD.org> <bea2418d-5e1d-2cac-0500-773c2c9ca0ff@bsd.com.br>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_779A4A73-2E48-4066-B76F-A91D53FA8573
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

On 15 Jun 2016, at 03:40, Otac=C3=ADlio <otacilio.neto@bsd.com.br> =
wrote:
>=20
> Em 14/06/2016 18:14, Dimitry Andric escreveu:
>> On 14 Jun 2016, at 06:05, Otac=C3=ADlio <otacilio.neto@bsd.com.br> =
wrote:
>>> I'm getting this error when I try compile the ORB-SLAM2 library. =
Some one can give me a hint about it?
>>>=20
>>>=20
>>> /usr/include/c++/v1/map:837:5: error: static_assert failed =
"Allocator::value_type must be same type as value_type"
>>>    static_assert((is_same<typename allocator_type::value_type, =
value_type>::value),
>> Typically, this is because the allocator for std::map must use a =
const
>> key, and libc++ now checks for this with a static assertion.
>>=20
>> See for example this fix for www/node:
>> =
https://svnweb.freebsd.org/ports/head/www/node/files/patch-deps_v8_src_com=
piler_instruction.h?view=3Dmarkup&pathrev=3D412412
>>=20
>> -Dimitry
>>=20
> I think that this problem is more difficult that the example. Bellow =
is the error message:
>=20
> In file included from =
/usr/ports/graphics/orbslam2/work/ORB_SLAM2-132d92f/src/LoopClosing.cc:21:=

> In file included from =
/usr/ports/graphics/orbslam2/work/ORB_SLAM2-132d92f/include/LoopClosing.h:=
24:
> In file included from =
/usr/ports/graphics/orbslam2/work/ORB_SLAM2-132d92f/include/KeyFrame.h:24:=

> In file included from =
/usr/ports/graphics/orbslam2/work/ORB_SLAM2-132d92f/include/MapPoint.h:25:=

> In file included from =
/usr/ports/graphics/orbslam2/work/ORB_SLAM2-132d92f/include/Frame.h:27:
> In file included from /usr/local/include/DBoW2/BowVector.h:14:
> /usr/include/c++/v1/map:837:5: error: static_assert failed =
"Allocator::value_type must be same type as value_type"
>    static_assert((is_same<typename allocator_type::value_type, =
value_type>::value),
>    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> =
/usr/ports/graphics/orbslam2/work/ORB_SLAM2-132d92f/src/LoopClosing.cc:436=
:21: note: in instantiation of template class =
'std::__1::map<ORB_SLAM2::KeyFrame *, g2o::Sim3, =
std::__1::less<ORB_SLAM2::KeyFrame *>, =
Eigen::aligned_allocator<std::__1::pair<const ORB_SLAM2::KeyFrame *, =
g2o::Sim3> > >' requested here
>    KeyFrameAndPose CorrectedSim3, NonCorrectedSim3;

This patch should hopefully work.  I do not have the port itself, so I =
could not compile-test it.

diff --git a/include/LoopClosing.h b/include/LoopClosing.h
index b1736fe..5d80d02 100644
--- a/include/LoopClosing.h
+++ b/include/LoopClosing.h
@@ -47,7 +47,7 @@ public:

     typedef pair<set<KeyFrame*>,int> ConsistentGroup;
     typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
-        Eigen::aligned_allocator<std::pair<const KeyFrame*, g2o::Sim3> =
> > KeyFrameAndPose;
+        Eigen::aligned_allocator<std::pair<KeyFrame const*, g2o::Sim3> =
> > KeyFrameAndPose;

 public:

-Dimitry


--Apple-Mail=_779A4A73-2E48-4066-B76F-A91D53FA8573
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.30

iEYEARECAAYFAldhJdQACgkQsF6jCi4glqOKLgCfXsAU9ZqrsJsbrjGY4aFwf7BK
IhAAoJYQ+9tTLcAEZlJcNqlBG7GROK0g
=2v8s
-----END PGP SIGNATURE-----

--Apple-Mail=_779A4A73-2E48-4066-B76F-A91D53FA8573--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FB887E8B-03E4-4592-B137-470766CEC0CC>