Bug#1143641: ann: FTBFS: ann_test.cpp:617:8: error: no match for 'operator>>' (operand types are 'std::istream' {aka 'std::basic_istream<char>'} and 'char*')

Santiago Vila <[email protected]> Wed, 05 Aug 2026 11:23:20 +0000
Newsgroups gmane.linux.debian.devel.bugs.rc
Message-ID <E1wrZiS-00GxYb-2G__47703.1573931285$1785929123$gmane$org@paradis.debian.org>
Package: src:ann
Version: 1.1.2+doc-9
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202608/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:ann, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean
   dh_auto_clean
	make -j2 realclean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
rm -f lib/*
rm -f bin/*
make -C src realclean
make[2]: Entering directory '/<<PKGBUILDDIR>>/src'
rm -f *.o core
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src'
make -C test realclean
make[2]: Entering directory '/<<PKGBUILDDIR>>/test'
rm -f *.o *.out core
make[2]: Leaving directory '/<<PKGBUILDDIR>>/test'

[... snipped ...]

              |           ^~~~~~~~~
              |           |
              |           char*
      • error: cannot bind rvalue ‘(long long int)directive’ to ‘long long int&’
    • candidate 9: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’ (near match)
      /usr/include/c++/16/istream:209:7:
        209 |       operator>>(unsigned long long& __n)
            |       ^~~~~~~~
      • conversion of argument 1 would be ill-formed:
      • error: invalid conversion from ‘char*’ to ‘long long unsigned int’ [-fpermissive]
        ann_test.cpp:617:11:
          617 |     in >> directive;                            // read directive
              |           ^~~~~~~~~
              |           |
              |           char*
      • error: cannot bind rvalue ‘(long long unsigned int)directive’ to ‘long long unsigned int&’
    • candidate 10: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’ (near match)
      /usr/include/c++/16/istream:334:7:
        334 |       operator>>(void*& __p)
            |       ^~~~~~~~
      • conversion of argument 1 would be ill-formed:
      • error: cannot bind non-const lvalue reference of type ‘void*&’ to an rvalue of type ‘void*’
        ann_test.cpp:617:11:
          617 |     in >> directive;                            // read directive
              |           ^~~~~~~~~
    • candidate 11: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
      /usr/include/c++/16/istream:225:7:
        225 |       operator>>(float& __f)
            |       ^~~~~~~~
      • no known conversion for argument 1 from ‘char*’ to ‘float&’
        /usr/include/c++/16/istream:225:25:
          225 |       operator>>(float& __f)
              |                  ~~~~~~~^~~
    • candidate 12: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
      /usr/include/c++/16/istream:229:7:
        229 |       operator>>(double& __f)
            |       ^~~~~~~~
      • no known conversion for argument 1 from ‘char*’ to ‘double&’
        /usr/include/c++/16/istream:229:26:
          229 |       operator>>(double& __f)
              |                  ~~~~~~~~^~~
    • candidate 13: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
      /usr/include/c++/16/istream:233:7:
        233 |       operator>>(long double& __f)
            |       ^~~~~~~~
      • no known conversion for argument 1 from ‘char*’ to ‘long double&’
        /usr/include/c++/16/istream:233:31:
          233 |       operator>>(long double& __f)
              |                  ~~~~~~~~~~~~~^~~
    • candidate 14: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(__istream_type& (*)(__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
      /usr/include/c++/16/istream:128:7:
        128 |       operator>>(__istream_type& (*__pf)(__istream_type&))
            |       ^~~~~~~~
      • no known conversion for argument 1 from ‘char*’ to ‘std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&)’ {aka ‘std::basic_istream<char>& (*)(std::basic_istream<char>&)’}
        /usr/include/c++/16/istream:128:36:
          128 |       operator>>(__istream_type& (*__pf)(__istream_type&))
              |                  ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
    • candidate 15: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(__ios_type& (*)(__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>; __ios_type = std::basic_ios<char>]’
      /usr/include/c++/16/istream:132:7:
        132 |       operator>>(__ios_type& (*__pf)(__ios_type&))
            |       ^~~~~~~~
      • no known conversion for argument 1 from ‘char*’ to ‘std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&)’ {aka ‘std::basic_ios<char>& (*)(std::basic_ios<char>&)’}
        /usr/include/c++/16/istream:132:32:
          132 |       operator>>(__ios_type& (*__pf)(__ios_type&))
              |                  ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    • candidate 16: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’
      /usr/include/c++/16/istream:139:7:
        139 |       operator>>(ios_base& (*__pf)(ios_base&))
            |       ^~~~~~~~
      • no known conversion for argument 1 from ‘char*’ to ‘std::ios_base& (*)(std::ios_base&)’
        /usr/include/c++/16/istream:139:30:
          139 |       operator>>(ios_base& (*__pf)(ios_base&))
              |                  ~~~~~~~~~~~~^~~~~~~~~~~~~~~~
    • candidate 17: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; __streambuf_type = std::basic_streambuf<char>]’
      /usr/include/c++/16/istream:358:7:
        358 |       operator>>(__streambuf_type* __sb);
            |       ^~~~~~~~
      • no known conversion for argument 1 from ‘char*’ to ‘std::basic_istream<char>::__streambuf_type*’ {aka ‘std::basic_streambuf<char>*’}
        /usr/include/c++/16/istream:358:36:
          358 |       operator>>(__streambuf_type* __sb);
              |                  ~~~~~~~~~~~~~~~~~~^~~~
In file included from /usr/include/c++/16/string:59,
                 from /usr/include/c++/16/bits/locale_classes.h:43,
                 from /usr/include/c++/16/bits/ios_base.h:43,
                 from /usr/include/c++/16/ios:46,
                 from /usr/include/c++/16/istream:42:
    • candidate 18: ‘template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, __cxx11::basic_string<_CharT, _Traits, _Alloc>&)’
      /usr/include/c++/16/bits/basic_string.tcc:898:5:
        898 |     operator>>(basic_istream<_CharT, _Traits>& __in,
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   mismatched types ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’ and ‘char*’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
In file included from /usr/include/c++/16/bits/memory_resource.h:40,
                 from /usr/include/c++/16/string:83:
    • candidate 19: ‘template<class _IntegerType> constexpr std::__byte_op_t<_IntegerType> std::operator>>(byte, _IntegerType)’
      /usr/include/c++/16/cstddef:136:5:
        136 |     operator>>(byte __b, _IntegerType __shift) noexcept
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   cannot convert ‘in’ (type ‘std::istream’ {aka ‘std::basic_istream<char>’}) to type ‘std::byte’
          ann_test.cpp:617:5:
            617 |     in >> directive;                            // read directive
                |     ^~
In file included from /usr/include/c++/16/istream:1122:
    • candidate 20: ‘template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _CharT&)’
      /usr/include/c++/16/bits/istream.tcc:983:5:
        983 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   deduced conflicting types for parameter ‘_CharT’ (‘char’ and ‘char*’)
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 21: ‘template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, unsigned char&)’
      /usr/include/c++/16/istream:862:5:
        862 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   cannot convert ‘directive’ (type ‘char*’) to type ‘unsigned char&’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 22: ‘template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, signed char&)’
      /usr/include/c++/16/istream:867:5:
        867 |     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   cannot convert ‘directive’ (type ‘char*’) to type ‘signed char&’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 23: ‘template<class _CharT, class _Traits, long unsigned int _Num> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _CharT (&)[_Num])’
      /usr/include/c++/16/istream:965:5:
        965 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT (&__s)[_Num])
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   mismatched types ‘_CharT [_Num]’ and ‘char*’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 24: ‘template<class _Traits, long unsigned int _Num> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, unsigned char (&)[_Num])’
      /usr/include/c++/16/istream:974:5:
        974 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char (&__s)[_Num])
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   mismatched types ‘unsigned char [_Num]’ and ‘char*’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 25: ‘template<class _Traits, long unsigned int _Num> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, signed char (&)[_Num])’
      /usr/include/c++/16/istream:979:5:
        979 |     operator>>(basic_istream<char, _Traits>& __in, signed char (&__s)[_Num])
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   mismatched types ‘signed char [_Num]’ and ‘char*’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 26: ‘template<class _Istream, class _Tp> _Istream&& std::operator>>(_Istream&&, _Tp&&)’
      /usr/include/c++/16/istream:1112:5:
       1112 |     operator>>(_Istream&& __is, _Tp&& __x)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        • /usr/include/c++/16/istream: In substitution of ‘template<class _Istream, class _Tp> _Istream&& std::operator>>(_Istream&&, _Tp&&) [with _Istream = std::basic_istream<char>&; _Tp = char*&]’:
        • required from here
          ann_test.cpp:617:11:   
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
        • error: template constraint failure for ‘template<class _Is, class _Tp>  requires (__derived_from_ios_base<_Is>) && requires(_Is& __is, _Tp&& __t) {__is >> (forward<_Tp>)(__t);} using std::__rvalue_stream_extraction_t = _Is&&’
          /usr/include/c++/16/istream:1112:5:
           1112 |     operator>>(_Istream&& __is, _Tp&& __x)
                |     ^~~~~~~~
        • constraints not satisfied
In file included from /usr/include/c++/16/ostream:42,
                 from /usr/include/c++/16/istream:43:
          • /usr/include/c++/16/bits/ostream.h: In substitution of ‘template<class _Is, class _Tp>  requires (__derived_from_ios_base<_Is>) && requires(_Is& __is, _Tp&& __t) {__is >> (forward<_Tp>)(__t);} using std::__rvalue_stream_extraction_t = _Is&& [with _Is = std::basic_istream<char>&; _Tp = char*&]’:
          • required by substitution of ‘template<class _Istream, class _Tp> _Istream&& std::operator>>(_Istream&&, _Tp&&) [with _Istream = std::basic_istream<char>&; _Tp = char*&]’
            /usr/include/c++/16/istream:1112:5:   
          • required from here
            ann_test.cpp:617:11:   
              617 |     in >> directive;                            // read directive
                  |           ^~~~~~~~~
          • required for the satisfaction of ‘__derived_from_ios_base<_Is>’ [with _Is = std::basic_istream<char, std::char_traits<char> >&]
            /usr/include/c++/16/bits/ostream.h:803:13:   
              803 |     concept __derived_from_ios_base = is_class_v<_Tp>
                  |             ^~~~~~~~~~~~~~~~~~~~~~~
          • the expression ‘is_class_v<_Tp> [with _Tp = std::basic_istream<char, std::char_traits<char> >&]’ evaluated to ‘false’
            /usr/include/c++/16/bits/ostream.h:803:39:
              803 |     concept __derived_from_ios_base = is_class_v<_Tp>
                  |                                       ^~~~~~~~~~~~~~~
          • ‘std::basic_istream<char>&’ is not a class
In file included from ../include/ANN/ANNx.h:39,
                 from ann_test.cpp:46:
    • candidate 27: ‘template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _Resetiosflags)’
      /usr/include/c++/16/iomanip:81:5:
         81 |     operator>>(basic_istream<_CharT, _Traits>& __is, _Resetiosflags __f)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   cannot convert ‘directive’ (type ‘char*’) to type ‘std::_Resetiosflags’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 28: ‘template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _Setiosflags)’
      /usr/include/c++/16/iomanip:111:5:
        111 |     operator>>(basic_istream<_CharT, _Traits>& __is, _Setiosflags __f)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   cannot convert ‘directive’ (type ‘char*’) to type ‘std::_Setiosflags’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 29: ‘template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _Setbase)’
      /usr/include/c++/16/iomanip:142:5:
        142 |     operator>>(basic_istream<_CharT, _Traits>& __is, _Setbase __f)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   cannot convert ‘directive’ (type ‘char*’) to type ‘std::_Setbase’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 30: ‘template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _Setfill<_CharT>)’
      /usr/include/c++/16/iomanip:182:5:
        182 |     operator>>(basic_istream<_CharT, _Traits>& __is, _Setfill<_CharT> __f)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   mismatched types ‘std::_Setfill<_CharT>’ and ‘char*’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 31: ‘template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _Setprecision)’
      /usr/include/c++/16/iomanip:212:5:
        212 |     operator>>(basic_istream<_CharT, _Traits>& __is, _Setprecision __f)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   cannot convert ‘directive’ (type ‘char*’) to type ‘std::_Setprecision’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 32: ‘template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _Setw)’
      /usr/include/c++/16/iomanip:242:5:
        242 |     operator>>(basic_istream<_CharT, _Traits>& __is, _Setw __f)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   cannot convert ‘directive’ (type ‘char*’) to type ‘std::_Setw’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 33: ‘template<class _CharT, class _Traits, class _MoneyT> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _Get_money<_MoneyT>)’
      /usr/include/c++/16/iomanip:276:5:
        276 |     operator>>(basic_istream<_CharT, _Traits>& __is, _Get_money<_MoneyT> __f)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   mismatched types ‘std::_Get_money<_MoneyT>’ and ‘char*’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
    • candidate 34: ‘template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _Get_time<_CharT>)’
      /usr/include/c++/16/iomanip:430:5:
        430 |     operator>>(basic_istream<_CharT, _Traits>& __is, _Get_time<_CharT> __f)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   mismatched types ‘std::_Get_time<_CharT>’ and ‘char*’
          ann_test.cpp:617:11:
            617 |     in >> directive;                            // read directive
                |           ^~~~~~~~~
make[3]: *** [Makefile:410: ann_test.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/<<PKGBUILDDIR>>/test'
make[2]: *** [Makefile:410: all-recursive] Error 1
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: *** [Makefile:342: all] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build: error: make -j2 returned exit code 2
make: *** [debian/rules:15: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------