Re: [Debian-med-packaging] C++ help needed for lamarc

2017-12-05 Thread Gert Wollny
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

2017-12-04 Thread 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:


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

2017-12-04 Thread Gert Wollny
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