Menu

#29 Some overloaded function templates cannot be found

open-postponed
None
6
2010-06-21
2008-03-26
No

Branch: branches/release #243.

Execution of `make check' cannon finish with success; the following error occurres:

../src/arageli/smith.cpp:116: error: no matching function for call to ‘abs(const Arageli::sparse_polynom<Arageli::rational<Arageli::big_int>, int, true>&)’
/usr/include/stdlib.h:784: note: candidates are: int abs(int)
/usr/include/c++/4.1.3/cstdlib:142: note: long int std::abs(long int)
/usr/include/c++/4.1.3/cstdlib:172: note: long long int __gnu_cxx::abs(long long int)
/usr/include/c++/4.1.3/cmath:89: note: double std::abs(double)
/usr/include/c++/4.1.3/cmath:93: note: float std::abs(float)
/usr/include/c++/4.1.3/cmath:97: note: long double std::abs(long double)
../src/arageli/big_int.hpp:1410: note: Arageli::big_int std::abs(const Arageli::big_int&)

It seems to be a global issue with multiple overloaded function templates (MSVS, GCC and ICC incompatibility on binding of names).

A new branch (branches/func_to_struct) had been created to fix this issue: each of common functions of Arageli namespace, for example, is_null, power, gcd, should be represented by a set of structure specializations (not functions) and one helper function template to fix the issue with early binding of functions templates.

Discussion

  • Sergey S. Lyalin

    Logged In: YES
    user_id=1881458
    Originator: YES

    Added a workaround at #245.

     
  • Sergey S. Lyalin

    • status: open --> open-postponed
     
  • Sergey S. Lyalin

    So the status is: not fixed; workaround in branches/release #245 and trunk #248.

     
  • Sergey S. Lyalin

    • priority: 7 --> 6
     
  • Sergey S. Lyalin

    As we have a workaround for this bug applied to release branch, I am deleting this bug from Release 2.2.8 group.

     
  • Sergey S. Lyalin

    • milestone: 823560 -->
     

Log in to post a comment.