[Debian-med-packaging] C++ help needed for lamarc
Gert Wollny
gw.fossdev at gmail.com
Mon Dec 4 18:32:42 UTC 2017
Am Montag, den 04.12.2017, 17:52 +0100 schrieb Andreas Tille:
> Hi,
>
> I intend to package lamarc[1] and hit the following C++ issue:
>
> ...
> g++ -DHAVE_CONFIG_H -I. -I./config -Wdate-time -D_FORTIFY_SOURCE=2
> -DLAMARC_COMPILE_LINUX -DNDEBUG -Wall -Wextra -Wno-
> unused -I ./config -I ./config -I ./src/bayeslike -I ./ src/control
> -I ./src/conversion -I ./src/convErr -I ./src/convModel -I
> ./src/convParse -I ./src/convStrings -I ./src/convUtil -I
> ./src/datalike -I ./src/force -I ./src/guiconv -I ./src/ guiutil
> -I ./src/lamarcmenus -I ./src/menu -I ./src/postlike -I ./src/report
> -I ./src/tools -I ./src/tree -I ./src/ui_interface -I ./src/ui_util
> -I ./src/ui_vars -I ./src/xml -I/usr/include/ boost -I ./resources
> -DTIXML_USE_STL -g -O2 -fdebug-prefix-map=/build/lamarc-2.1.10+dfsg=.
> -fstack-protector-strong -Wformat -Werror=format-security -c -o
> lamarc-mathx.o `test -f 'src/tools/ mathx.cpp' || echo
> './'`src/tools/mathx.cpp
> src/tools/mathx.cpp: In member function
> ‘std::pair<std::vector<double>, std::vector<std::vector<double> > >
> EigenCalculator::Eigen(DoubleVec2d)’:
> src/tools/mathx.cpp:781:64: error: no matching function for call to
> ‘make_pair<DoubleVec1d, DoubleVec2d>(DoubleVec1d&, DoubleVec2d&)’
> return make_pair<DoubleVec1d, DoubleVec2d>(eigvals, eigvecs);
> ^
> In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
> from /usr/include/c++/7/bits/char_traits.h:39,
> from /usr/include/c++/7/ios:40,
> from /usr/include/c++/7/ostream:38,
> from /usr/include/c++/7/iostream:39,
> from src/tools/mathx.cpp:13:
> /usr/include/c++/7/bits/stl_pair.h:519:5: note: candidate:
> template<class _T1, class _T2> constexpr std::pair<typename
> std::__decay_and_strip<_Tp>::__type, typename
> std:: __decay_and_strip<_T2>::__type>
> std::make_pair(_T1&&, _T2&&)
> make_pair(_T1&& __x, _T2&& __y)
> ^~~~~~~~~
> /usr/include/c++/7/bits/stl_pair.h:519:5: note: template argument
> deduction/substitution failed:
> src/tools/mathx.cpp:781:64: note: cannot convert ‘eigvals’ (type
> ‘DoubleVec1d {aka std::vector<double>}’) to type
> ‘std::vector<double>&&’
> return make_pair<DoubleVec1d, DoubleVec2d>(eigvals, eigvecs);
make_pair doesn't require the explicite type specification, i.e. the
following should work:
- return make_pair<DoubleVec1d, DoubleVec2d>(eigvals, eigvecs);
+ return make_pair(eigvals, eigvecs);
Best,
Gert
More information about the Debian-med-packaging
mailing list