Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiling problem #1

Closed
nefelim4ag opened this issue Nov 24, 2016 · 3 comments
Closed

Compiling problem #1

nefelim4ag opened this issue Nov 24, 2016 · 3 comments

Comments

@nefelim4ag
Copy link
Contributor

Hi Zygo, i've try package your bees for AUR, and get the following compiling errors:

bees git:(master) make   
make -C lib
make[1]: Entering directory '/home/nefelim4ag/Insync/Documents/Dump/Coding/bees/lib'
g++ -Wall -Wextra -Werror -O3 -I../include -ggdb -fpic -std=c++11 -Wold-style-cast -o chatter.o -c chatter.cc
In file included from chatter.cc:1:0:
../include/crucible/chatter.h: In member function ‘crucible::Chatter& crucible::ChatterTraits<std::basic_ostream<char>&>::operator()(crucible::Chatter&, std::ostream&)’:
../include/crucible/chatter.h:94:15: error: no match for ‘operator<<’ (operand types are ‘std::ostream {aka std::basic_ostream<char>}’ and ‘std::ostream {aka std::basic_ostream<char>}’)
    c.get_os() << arg;
    ~~~~~~~~~~~^~~~~~
../include/crucible/chatter.h:94:15: note: candidate: operator<<(int, int) <built-in>
../include/crucible/chatter.h:94:15: note:   no known conversion for argument 2 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘int’
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:108:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ostream_type& (*)(std::basic_ostream<_CharT, _Traits>::__ostream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(__ostream_type& (*__pf)(__ostream_type&))
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:108:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘std::basic_ostream<char>::__ostream_type& (*)(std::basic_ostream<char>::__ostream_type&) {aka std::basic_ostream<char>& (*)(std::basic_ostream<char>&)}’
/usr/include/c++/6.2.1/ostream:117:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ios_type& (*)(std::basic_ostream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>; std::basic_ostream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]
       operator<<(__ios_type& (*__pf)(__ios_type&))
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:117:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘std::basic_ostream<char>::__ios_type& (*)(std::basic_ostream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}’
/usr/include/c++/6.2.1/ostream:127:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(ios_base& (*__pf) (ios_base&))
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:127:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘std::ios_base& (*)(std::ios_base&)’
/usr/include/c++/6.2.1/ostream:166:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(long __n)
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:166:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘long int’
/usr/include/c++/6.2.1/ostream:170:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(unsigned long __n)
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:170:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘long unsigned int’
/usr/include/c++/6.2.1/ostream:174:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(bool) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(bool __n)
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:174:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘bool’
In file included from /usr/include/c++/6.2.1/ostream:638:0,
                 from /usr/include/c++/6.2.1/iostream:39,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/bits/ostream.tcc:91:5: note: candidate: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short int) [with _CharT = char; _Traits = std::char_traits<char>]
     basic_ostream<_CharT, _Traits>::
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/6.2.1/bits/ostream.tcc:91:5: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘short int’
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:181:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(short unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(unsigned short __n)
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:181:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘short unsigned int’
In file included from /usr/include/c++/6.2.1/ostream:638:0,
                 from /usr/include/c++/6.2.1/iostream:39,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/bits/ostream.tcc:105:5: note: candidate: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT = char; _Traits = std::char_traits<char>]
     basic_ostream<_CharT, _Traits>::
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/6.2.1/bits/ostream.tcc:105:5: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘int’
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:192:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(unsigned int __n)
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:192:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘unsigned int’
/usr/include/c++/6.2.1/ostream:201:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long long int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(long long __n)
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:201:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘long long int’
/usr/include/c++/6.2.1/ostream:205:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long long unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(unsigned long long __n)
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:205:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘long long unsigned int’
/usr/include/c++/6.2.1/ostream:220:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(double __f)
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:220:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘double’
/usr/include/c++/6.2.1/ostream:224:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(float) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(float __f)
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:224:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘float’
/usr/include/c++/6.2.1/ostream:232:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long double) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(long double __f)
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:232:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘long double’
/usr/include/c++/6.2.1/ostream:245:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(const void*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
       operator<<(const void* __p)
       ^~~~~~~~
/usr/include/c++/6.2.1/ostream:245:7: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘const void*’
In file included from /usr/include/c++/6.2.1/ostream:638:0,
                 from /usr/include/c++/6.2.1/iostream:39,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/bits/ostream.tcc:119:5: note: candidate: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]
     basic_ostream<_CharT, _Traits>::
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/6.2.1/bits/ostream.tcc:119:5: note:   no known conversion for argument 1 from ‘std::ostream {aka std::basic_ostream<char>}’ to ‘std::basic_ostream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}’
In file included from /usr/include/c++/6.2.1/string:52:0,
                 from /usr/include/c++/6.2.1/stdexcept:39,
                 from /usr/include/c++/6.2.1/array:39,
                 from /usr/include/c++/6.2.1/tuple:39,
                 from /usr/include/c++/6.2.1/functional:55,
                 from ../include/crucible/chatter.h:4,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/bits/basic_string.h:5325:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
     operator<<(basic_ostream<_CharT, _Traits>& __os,
     ^~~~~~~~
/usr/include/c++/6.2.1/bits/basic_string.h:5325:5: note:   template argument deduction/substitution failed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:18: note:   ‘std::ostream {aka std::basic_ostream<char>}’ is not derived from ‘const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’
    c.get_os() << arg;
                  ^~~
In file included from /usr/include/c++/6.2.1/bits/ios_base.h:46:0,
                 from /usr/include/c++/6.2.1/ios:42,
                 from /usr/include/c++/6.2.1/ostream:38,
                 from /usr/include/c++/6.2.1/iostream:39,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/system_error:209:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::error_code&)
     operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e)
     ^~~~~~~~
/usr/include/c++/6.2.1/system_error:209:5: note:   template argument deduction/substitution failed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:18: note:   cannot convert ‘arg’ (type ‘std::ostream {aka std::basic_ostream<char>}’) to type ‘const std::error_code&’
    c.get_os() << arg;
                  ^~~
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:497:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, _CharT)
     operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
     ^~~~~~~~
/usr/include/c++/6.2.1/ostream:497:5: note:   template argument deduction/substitution failed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:18: note:   deduced conflicting types for parameter ‘_CharT’ (‘char’ and ‘std::basic_ostream<char>’)
    c.get_os() << arg;
                  ^~~
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:502:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, char)
     operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
     ^~~~~~~~
/usr/include/c++/6.2.1/ostream:502:5: note:   template argument deduction/substitution failed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:18: note:   cannot convert ‘arg’ (type ‘std::ostream {aka std::basic_ostream<char>}’) to type ‘char’
    c.get_os() << arg;
                  ^~~
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:508:5: note: candidate: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, char)
     operator<<(basic_ostream<char, _Traits>& __out, char __c)
     ^~~~~~~~
/usr/include/c++/6.2.1/ostream:508:5: note:   template argument deduction/substitution failed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:18: note:   cannot convert ‘arg’ (type ‘std::ostream {aka std::basic_ostream<char>}’) to type ‘char’
    c.get_os() << arg;
                  ^~~
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:514:5: note: candidate: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, signed char)
     operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
     ^~~~~~~~
/usr/include/c++/6.2.1/ostream:514:5: note:   template argument deduction/substitution failed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:18: note:   cannot convert ‘arg’ (type ‘std::ostream {aka std::basic_ostream<char>}’) to type ‘signed char’
    c.get_os() << arg;
                  ^~~
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:519:5: note: candidate: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, unsigned char)
     operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
     ^~~~~~~~
/usr/include/c++/6.2.1/ostream:519:5: note:   template argument deduction/substitution failed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:18: note:   cannot convert ‘arg’ (type ‘std::ostream {aka std::basic_ostream<char>}’) to type ‘unsigned char’
    c.get_os() << arg;
                  ^~~
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:539:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const _CharT*)
     operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
     ^~~~~~~~
/usr/include/c++/6.2.1/ostream:539:5: note:   template argument deduction/substitution failed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:18: note:   mismatched types ‘const _CharT*’ and ‘std::basic_ostream<char>’
    c.get_os() << arg;
                  ^~~
In file included from /usr/include/c++/6.2.1/ostream:638:0,
                 from /usr/include/c++/6.2.1/iostream:39,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/bits/ostream.tcc:321:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const char*)
     operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)
     ^~~~~~~~
/usr/include/c++/6.2.1/bits/ostream.tcc:321:5: note:   template argument deduction/substitution failed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:18: note:   cannot convert ‘arg’ (type ‘std::ostream {aka std::basic_ostream<char>}’) to type ‘const char*’
    c.get_os() << arg;
                  ^~~
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:556:5: note: candidate: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const char*)
     operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
     ^~~~~~~~
/usr/include/c++/6.2.1/ostream:556:5: note:   template argument deduction/substitution failed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:18: note:   cannot convert ‘arg’ (type ‘std::ostream {aka std::basic_ostream<char>}’) to type ‘const char*’
    c.get_os() << arg;
                  ^~~
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:569:5: note: candidate: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const signed char*)
     operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
     ^~~~~~~~
/usr/include/c++/6.2.1/ostream:569:5: note:   template argument deduction/substitution failed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:18: note:   cannot convert ‘arg’ (type ‘std::ostream {aka std::basic_ostream<char>}’) to type ‘const signed char*’
    c.get_os() << arg;
                  ^~~
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:574:5: note: candidate: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned char*)
     operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
     ^~~~~~~~
/usr/include/c++/6.2.1/ostream:574:5: note:   template argument deduction/substitution failed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:18: note:   cannot convert ‘arg’ (type ‘std::ostream {aka std::basic_ostream<char>}’) to type ‘const unsigned char*’
    c.get_os() << arg;
                  ^~~
In file included from /usr/include/c++/6.2.1/iostream:39:0,
                 from ../include/crucible/chatter.h:5,
                 from chatter.cc:1:
/usr/include/c++/6.2.1/ostream:628:5: note: candidate: std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&&, const _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = std::basic_ostream<char>] <near match>
     operator<<(basic_ostream<_CharT, _Traits>&& __os, const _Tp& __x)
     ^~~~~~~~
/usr/include/c++/6.2.1/ostream:628:5: note:   conversion of argument 1 would be ill-formed:
In file included from chatter.cc:1:0:
../include/crucible/chatter.h:94:12: error: cannot bind ‘std::ostream {aka std::basic_ostream<char>}’ lvalue to ‘std::basic_ostream<char>&&’
    c.get_os() << arg;
    ~~~~~~~~^~
chatter.cc: At global scope:
chatter.cc:18:9: error: ‘template<class> class std::auto_ptr’ is deprecated [-Werror=deprecated-declarations]
  static auto_ptr<set<string>> chatter_names;
         ^~~~~~~~
In file included from /usr/include/c++/6.2.1/memory:81:0,
                 from ../include/crucible/resource.h:8,
                 from ../include/crucible/process.h:4,
                 from chatter.cc:4:
/usr/include/c++/6.2.1/bits/unique_ptr.h:49:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
cc1plus: all warnings being treated as errors
make[1]: *** [Makefile:34: chatter.o] Error 1
make[1]: Leaving directory '/home/nefelim4ag/Insync/Documents/Dump/Coding/bees/lib'
make: *** [Makefile:9: lib] Error 2

Host Arch x64
g++ (GCC) 6.2.1 20160830
GNU Make 4.2.1

Thanks.

@uroni
Copy link

uroni commented Nov 24, 2016

Doesn't compile on Debian Jessie with GCC 5.3.1 either. Same errors.

Zygo pushed a commit that referenced this issue Nov 25, 2016
I'm not surprised that GCC 6 doesn't let me send an ostream ref to itself,
even inside an uninstantiated template specialization.  I am a little
surprised I was trying to, and 4.9 let me get away with it.

It's 2016.  auto_ptr is deprecated now.

Some things were including vector that don't any more.

#1
@Zygo
Copy link
Owner

Zygo commented Nov 25, 2016

I upgraded my ancient toolchain and fixed some old broken things. I tested on Debian GCC 6.2.0. It builds and the first hour of runtime looks OK.

Thanks for the report. Please let me know if I missed anything.

@nefelim4ag
Copy link
Contributor Author

nefelim4ag commented Nov 25, 2016

Thanks, fixed


https://aur.archlinux.org/packages/bees-git

Zygo pushed a commit that referenced this issue Dec 19, 2021
We had an unfortunate pattern of:

	const BeesFileRange bfr;
	shared_ptr<BeesContext> ctx;
	// ...
	BEESNOTE("foo " << bfr);
	bfr.fd(ctx);
	BEESNOTE("foo after opening: " << bfr);

If dump_status started running after the first BEESNOTE, but before
the second, then bfr.fd() might expose a single Fd object's shared_ptr
member to two threads at the same time (the thread running dump_status
and the thread running BEESNOTE) without protection by a lock.  One of
the threads would see a partially-initialized Fd object, and the other
thread would crash on an assertion failure, e.g.

	#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
	#1  0x00007f4c4fde5537 in __GI_abort () at abort.c:79
	#2  0x00007f4c4fde540f in __assert_fail_base (fmt=0x7f4c4ff4e128 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x5557605629dd "!m_destroyed", file=0x5557605627c0 "../include/crucible/namedptr.h", line=77, function=<optimized out>) at assert.c:92
	#3  0x00007f4c4fdf4662 in __GI___assert_fail (assertion=assertion@entry=0x5557605629dd "!m_destroyed", file=file@entry=0x5557605627c0 "../include/crucible/namedptr.h", line=line@entry=77,
	    function=function@entry=0x555760562970 "crucible::NamedPtr<Return, Arguments>::Value::~Value() [with Return = crucible::IOHandle; Arguments = {int}]") at assert.c:101
	#4  0x00005557605306f6 in crucible::NamedPtr<crucible::IOHandle, int>::Value::~Value (this=0x7f4a3c2ff0d0, __in_chrg=<optimized out>) at ../include/crucible/namedptr.h:77
	#5  0x00005557605137da in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x7f4a3c2ff0c0) at /usr/include/c++/10/bits/shared_ptr_base.h:151
	#6  std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x7f4a3c2ff0c0) at /usr/include/c++/10/bits/shared_ptr_base.h:151
	#7  std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x7f4c4c5b5f28, __in_chrg=<optimized out>) at /usr/include/c++/10/bits/shared_ptr_base.h:733
	#8  std::__shared_ptr<crucible::IOHandle, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x7f4c4c5b5f20, __in_chrg=<optimized out>) at /usr/include/c++/10/bits/shared_ptr_base.h:1183
	#9  std::shared_ptr<crucible::IOHandle>::~shared_ptr (this=0x7f4c4c5b5f20, __in_chrg=<optimized out>) at /usr/include/c++/10/bits/shared_ptr.h:121
	#10 crucible::Fd::~Fd (this=0x7f4c4c5b5f20, __in_chrg=<optimized out>) at ../include/crucible/fd.h:46
	#11 BeesFileRange::file_size (this=0x7f4c4e5ba4a0) at bees-types.cc:156
	#12 0x0000555760513950 in operator<< (os=..., bfr=...) at bees-types.cc:80
	#13 0x000055576050d662 in std::function<void (std::ostream&)>::operator()(std::ostream&) const (__args#0=..., this=0x7f4c4e5b9f60) at /usr/include/c++/10/bits/std_function.h:622
	#14 BeesNote::get_status[abi:cxx11]() () at bees-trace.cc:165
	#15 0x00005557604c9676 in BeesContext::dump_status (this=0x5557611c4de0) at bees-context.cc:89
	#16 0x00005557605206fb in std::function<void ()>::operator()() const (this=this@entry=0x7f4c4c5b65f0) at /usr/include/c++/10/bits/std_function.h:622
	#17 crucible::catch_all(std::function<void ()> const&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)> const&) (f=..., explainer=...) at error.cc:55
	#18 0x000055576050aaa7 in operator() (__closure=0x5557611c52c8) at bees-thread.cc:22
	#19 0x00007f4c501beed0 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
	#20 0x00007f4c502c8ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
	#21 0x00007f4c4febddef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Fix by making BeesFileRange::m_fd really const (not just mutable),
then fix all the broken code referencing it.

Signed-off-by: Zygo Blaxell <bees@furryterror.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants