/usr/include/c++/v1/map:837:5: error: static_assert failed "Allocator::value_type must be same type as value_type"
Otacílio
otacilio.neto at bsd.com.br
Wed Jun 15 01:40:55 UTC 2016
Em 14/06/2016 18:14, Dimitry Andric escreveu:
> On 14 Jun 2016, at 06:05, Otacílio <otacilio.neto at 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?
>>
>>
>> /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.
>
> See for example this fix for www/node:
> https://svnweb.freebsd.org/ports/head/www/node/files/patch-deps_v8_src_compiler_instruction.h?view=markup&pathrev=412412
>
> -Dimitry
>
I think that this problem is more difficult that the example. Bellow is
the error message:
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;
^
/usr/ports/graphics/orbslam2/work/ORB_SLAM2-132d92f/src/LoopClosing.cc:466:29:
error: no viable overloaded operator[] for type 'KeyFrameAndPose' (aka
'map<ORB_SLAM2::KeyFrame *, g2o::Sim3, std::less<KeyFrame *>,
Eigen::aligned_allocator<std::pair<const KeyFrame *, g2o::Sim3> > >')
NonCorrectedSim3[pKFi]=g2oSiw;
~~~~~~~~~~~~~~~~^~~~~
/usr/ports/graphics/orbslam2/work/ORB_SLAM2-132d92f/src/LoopClosing.cc:470:39:
error: use of undeclared identifier 'mit'; did you mean 'min'?
for(KeyFrameAndPose::iterator mit=CorrectedSim3.begin(),
mend=CorrectedSim3.end(); mit!=mend; mit++)
^~~
min
/usr/include/c++/v1/algorithm:2562:1: note: 'min' declared here
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
More information about the freebsd-hackers
mailing list