Re: [Debian-med-packaging] C++ help needed for lamarc
Am Montag, den 04.12.2017, 21:53 +0100 schrieb Andreas Tille: > Hi Gert, > > thanks for your hint. > > On Mon, Dec 04, 2017 at 07:32:42PM +0100, Gert Wollny wrote: > > > > make_pair doesn't require the explicite type specification, i.e. > > the > > following should work: > > > > - return make_pair(eigvals, eigvecs); > > + return make_pair(eigvals, eigvecs); > > This worked at that very place, but later I get: in essence more of the same. I've pushed the updated patches. What's still missing though is linking against the system tinyxml. Best, Gert
Re: [Debian-med-packaging] C++ help needed for lamarc
Hi Gert, thanks for your hint. On Mon, Dec 04, 2017 at 07:32:42PM +0100, Gert Wollny wrote: > > make_pair doesn't require the explicite type specification, i.e. the > following should work: > > - return make_pair(eigvals, eigvecs); > + return make_pair(eigvals, eigvecs); This worked at that very place, but later I get: src/tree/arrangervec.cpp: In member function ‘void ArrangerVec::CopyAllMembers(const ArrangerVec&)’: src/tree/arrangervec.cpp:125:83: error: no matching function for call to ‘make_pair(std::__cxx11::string, Arranger*&)’ arrangers.insert(std::make_pair(arr->GetName(), arr)); ^ 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/tree/arrangervec.cpp:12: /usr/include/c++/7/bits/stl_pair.h:519:5: note: candidate: template constexpr std::pair::__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/tree/arrangervec.cpp:125:83: note: cannot convert ‘arr’ (type ‘Arranger*’) to type ‘Arranger*&&’ arrangers.insert(std::make_pair(arr->GetName(), arr)); ^ Makefile:6859: recipe for target 'lamarc-arrangervec.o' failed Kind regards Andreas. -- http://fam-tille.de
Re: [Debian-med-packaging] C++ help needed for lamarc
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 > > > EigenCalculator::Eigen(DoubleVec2d)’: > src/tools/mathx.cpp:781:64: error: no matching function for call to > ‘make_pair(DoubleVec1d&, DoubleVec2d&)’ > return make_pair(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 constexpr std::pair 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}’) to type > ‘std::vector&&’ > return make_pair(eigvals, eigvecs); make_pair doesn't require the explicite type specification, i.e. the following should work: - return make_pair(eigvals, eigvecs); + return make_pair(eigvals, eigvecs); Best, Gert