Re: dasrt.cc:509:35: error: call to member function 'vector_value' is am
From:
PrasannaKumar Muralidharan
Subject:
Re: dasrt.cc:509:35: error: call to member function 'vector_value' is ambiguous
Date:
Sat, 7 Nov 2015 21:04:58 +0530
You are using clang, not gcc. I think gcc is just a short cut to clang in case of xcode version. When I compile octave with clang I do see these lines as warnings in Linux but not errors and the compilation proceeds as usual and the resulting binary works fine.
Hope this helps, PrasannaKumar
On Saturday, 7 November 2015, Ben Abbott <address@hidden> wrote: > >> On Nov 7, 2015, at 8:08 AM, John W. Eaton <address@hidden> wrote: >> >> On 11/06/2015 08:09 PM, Ben Abbott wrote: >>> John, >>> >>> I’m seeing the error below. Maybe another MacOS feature? >>> >>> Ben >>> >>> CXX libinterp/corefcn/libinterp_corefcn_libcorefcn_la-dasrt.lo >>> In file included from libinterp/corefcn/dasrt.cc:38: >>> In file included from ./libinterp/octave-value/ov-cell.h:38: >>> ./libinterp/octave-value/ov-base-mat.h:95:8: warning: 'octave_base_matrix<Cell>::assign' hides overloaded virtual function [-Woverloaded-virtual] >>> void assign (const octave_value_list& idx, const MT& rhs); >>> ^ >>> ./libinterp/octave-value/ov-cell.h:48:22: note: in instantiation of template class 'octave_base_matrix<Cell>' requested here >>> octave_cell : public octave_base_matrix<Cell> >>> ^ >>> ./libinterp/octave-value/ov-base.h:278:16: note: hidden overloaded virtual function 'octave_base_value::assign' declared here: type mismatch at 1st parameter ('const std::string &' >>> (aka 'const basic_string<char, char_traits<char>, allocator<char> > &') vs 'const octave_value_list &') >>> virtual void assign (const std::string&, const octave_value&) { } >>> ^ >>> In file included from libinterp/corefcn/dasrt.cc:38: >>> In file included from ./libinterp/octave-value/ov-cell.h:38: >>> ./libinterp/octave-value/ov-base-mat.h:97:8: warning: 'octave_base_matrix<Cell>::assign' hides overloaded virtual function [-Woverloaded-virtual] >>> void assign (const octave_value_list& idx, typename MT::element_type rhs); >>> ^ >>> ./libinterp/octave-value/ov-base.h:278:16: note: hidden overloaded virtual function 'octave_base_value::assign' declared here: type mismatch at 1st parameter ('const std::string &' >>> (aka 'const basic_string<char, char_traits<char>, allocator<char> > &') vs 'const octave_value_list &') >>> virtual void assign (const std::string&, const octave_value&) { } >>> ^ >>> libinterp/corefcn/dasrt.cc:509:35: error: call to member function 'vector_value' is ambiguous >>> ColumnVector state = args(argp).vector_value ("expecting state vector as argument %d", ++argp); >>> ~~~~~~~~~~~^~~~~~~~~~~~ >>> ./libinterp/octave-value/ov.h:1008:17: note: candidate function >>> Array<double> vector_value (bool frc_str_conv = false, >>> ^ >>> ./libinterp/octave-value/ov.h:1011:17: note: candidate function >>> Array<double> vector_value (const char *fmt, ...) const; >>> ^ >>> libinterp/corefcn/dasrt.cc:511:40: error: call to member function 'vector_value' is ambiguous >>> ColumnVector stateprime = args(argp).vector_value ("expecting time derivative of state vector as argument %d", argp); >>> ~~~~~~~~~~~^~~~~~~~~~~~ >>> ./libinterp/octave-value/ov.h:1008:17: note: candidate function >>> Array<double> vector_value (bool frc_str_conv = false, >>> ^ >>> ./libinterp/octave-value/ov.h:1011:17: note: candidate function >>> Array<double> vector_value (const char *fmt, ...) const; >>> ^ >>> libinterp/corefcn/dasrt.cc:514:39: error: call to member function 'vector_value' is ambiguous >>> ColumnVector out_times = args(argp).vector_value ("expecting output time vector as %s argument %d", argp); >>> ~~~~~~~~~~~^~~~~~~~~~~~ >>> ./libinterp/octave-value/ov.h:1008:17: note: candidate function >>> Array<double> vector_value (bool frc_str_conv = false, >>> ^ >>> ./libinterp/octave-value/ov.h:1011:17: note: candidate function >>> Array<double> vector_value (const char *fmt, ...) const; >>> ^ >>> libinterp/corefcn/dasrt.cc:525:31: error: call to member function 'vector_value' is ambiguous >>> crit_times = args(argp).vector_value ("expecting critical time vector as argument %d", argp); >>> ~~~~~~~~~~~^~~~~~~~~~~~ >>> ./libinterp/octave-value/ov.h:1008:17: note: candidate function >>> Array<double> vector_value (bool frc_str_conv = false, >>> ^ >>> ./libinterp/octave-value/ov.h:1011:17: note: candidate function >>> Array<double> vector_value (const char *fmt, ...) const; >>> ^ >>> 2 warnings and 4 errors generated. >>> Makefile:17030: recipe for target 'libinterp/corefcn/libinterp_corefcn_libcorefcn_la-dasrt.lo' failed >>> make[2]: *** [libinterp/corefcn/libinterp_corefcn_libcorefcn_la-dasrt.lo] Error 1 >>> make[2]: Leaving directory '/Users/bpabbott/Development/mercurial/default/sources' >>> Makefile:25829: recipe for target 'all-recursive' failed >>> make[1]: *** [all-recursive] Error 1 >>> make[1]: Leaving directory '/Users/bpabbott/Development/mercurial/default/sources' >>> Makefile:9910: recipe for target 'all' failed >>> make: *** [all] Error 2 >>> >> >> What compiler and version? I'm not seeing this message with GCC 5.2.1. I haven't tried older versions. >> >> jwe > > It’s an Apple variant. > > gcc --version > Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 > Apple LLVM version 7.0.0 (clang-700.1.76) > Target: x86_64-apple-darwin14.5.0 > Thread model: posix > > Ben > > >