Skip to content

Conversation

HaoZeke
Copy link
Member

@HaoZeke HaoZeke commented Aug 4, 2025

There's one in ioparser but this was enough for me to get around:

In file included from dimreduce.hpp:9:
../libs/tbdefs.hpp: In instantiation of 'std::ostream& toolbox::mpiostream::operator<<(T) [with T = std::valarray<double>; std::ostream = std::basic_ostream<char>]':
../libs/minsearch.hpp:758:18:   required from 'void toolbox::sim_annealing(FCLASS&, const std::valarray<double>&, std::valarray<double>&, double&, AnnealingOptions, std::valarray<std::valarray<double> >, RNG) [with FCLASS = NLDRITERChi; RNG = MTRndUniform; AnnealingOptions = _AnnealingOpts]'
../libs/minsearch.hpp:809:39:   required from 'void toolbox::sim_annealing(FCLASS&, const std::valarray<double>&, std::valarray<double>&, double&, AnnealingOptions, std::valarray<std::valarray<double> >) [with FCLASS = NLDRITERChi; AnnealingOptions = _AnnealingOpts]'
libdimred.cpp:1603:30:   required from here
../libs/tbdefs.hpp:413:18: error: no match for 'operator<<' (operand types are 'std::ostream' {aka 'std::basic_ostream<char'} and 'std::valarray<double>')
  413 |         return os<<data;
      |                ~~^~~~~~
In file included from /home/rgoswami/Git/Github/epfl/lab-cosmo/rgShowcase/.pixi/envs/eon/lib/gcc/x86_64-conda-linux-gnu/13.3.0/include/c++/iostream:41,
                 from ../libs/tbdefs.hpp:19:
/home/rgoswami/Git/Github/epfl/lab-cosmo/rgShowcase/.pixi/envs/eon/lib/gcc/x86_64-conda-linux-gnu/13.3.0/include/c++/ostream:110:7: note: candidate: 'std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(__ostream_type& (*)(__ostream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; __ostream_type = std::basic_ostream<char>]'
  110 |       operator<<(__ostream_type& (*__pf)(__ostream_type&))
      |       ^~~~~~~~
/home/rgoswami/Git/Github/epfl/lab-cosmo/rgShowcase/.pixi/envs/eon/lib/gcc/x86_64-conda-linux-gnu/13.3.0/include/c++/ostream:110:36: note:   no known conversion for argument 1 from 'std::valarray<double>' to 'std::basic_ostream<char>::__ostream_type& (*)(std::basic_ostream<char>::__ostream_type&)' {aka 'std::basic_ostream<char>& (*)(std::basic_ostream<char>&)'}
  110 |       operator<<(__ostream_type& (*__pf)(__ostream_type&))
      |                  ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/home/rgoswami/Git/Github/epfl/lab-cosmo/rgShowcase/.pixi/envs/eon/lib/gcc/x86_64-conda-linux-gnu/13.3.0/include/c++/ostream:119:7: note: candidate: 'std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(__ios_type& (*)(__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; __ostream_type = std::basic_ostream<char>; __ios_type = std::basic_ios<char>]'
  119 |       operator<<(__ios_type& (*__pf)(__ios_type&))
      |       ^~~~~~~~
/home/rgoswami/Git/Github/epfl/lab-cosmo/rgShowcase/.pixi/envs/eon/lib/gcc/x86_64-conda-linux-gnu/13.3.0/include/c++/ostream:119:32: note:   no known conversion for argument 1 from 'std::valarray<double>' to 'std::basic_ostream<char>::__ios_type& (*)(std::basic_ostream<char>::__ios_type&)' {aka 'std::basic_ios<char>& (*)(std::basic_ios<char>&)'}
  119 |       operator<<(__ios_type& (*__pf)(__ios_type&))
      |                  ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/home/rgoswami/Git/Github/epfl/lab-cosmo/rgShowcase/.pixi/envs/eon/lib/gcc/x86_64-conda-linux-gnu/13.3.0/include/c++/ostream:129: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>; __ostream_type = std::basic_ostream<char>]'
  129 |       operator<<(ios_base& (*__pf) (ios_base&))

The (re)definition also required changes to distinguish between the ioparser variant.

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

Successfully merging this pull request may close these issues.

1 participant