Problems using std::bind with icc/icpc 14.0.2 and gcc 4.8

Problems using std::bind with icc/icpc 14.0.2 and gcc 4.8

I have had a some problems in the past using icc/icpc with gcc 4.8 as described here. It appears that the problem has been partially fixed with the release of 14.0.2 however I am still having problems with std::bind and as a result am unable to compile code that is using a Boost library. This problem has also been reported here. I am running 64-bit Xubuntu 13.10 but that user is running openSUSE 12.3. As a test case consider the code below:


#include <vector>
#include <iostream>
#include <functional>

class Bar {

public:
  void foo(double x, double y) {
      std::cout << x << std::endl;
      std::cout << y << std::endl;
  }

  void foo2(double x) {
    using namespace std::placeholders;
    auto function = std::bind(&Bar::foo, this, x, _1);
    function(3);
  }

};

int main(int argc, char **argv) {
  Bar bar;
  bar.foo2(3);
}

Compiling with g++ main.cpp -std=c++11 works fine but with icpc main.cpp -std=c++11 I get this error:


icpc main.cpp -std=c++11
main.cpp(16): error: no instance of overloaded function "std::_Bind<_Functor (_Bound_args...)>::operator() [with _Functor=std::_Mem_fn<void (Bar::*)(double, double)>, _Bound_args=<Bar *, double, std::_Placeholder<1>>]" matches the argument list
            argument types are: (int)
            object type is: std::_Bind<std::_Mem_fn<void (Bar::*)(double, double)> (Bar *, double, std::_Placeholder<1>)>
      function(3);
      ^

compilation aborted for main.cpp (code 2)

Running g++ -v gives:


Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.8.1-10ubuntu9' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu9) 

The output of g++ --print-search-dirs is:


install: /usr/lib/gcc/x86_64-linux-gnu/4.8/
programs: =/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/bin/
libraries: =/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64/x86_64-linux-gnu/4.8/:/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64/x86_64-linux-gnu/:/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64/../lib/:/opt/intel/composer_xe_2013_sp1.2.144/ipp/../compiler/lib/intel64/x86_64-linux-gnu/4.8/:/opt/intel/composer_xe_2013_sp1.2.144/ipp/../compiler/lib/intel64/x86_64-linux-gnu/:/opt/intel/composer_xe_2013_sp1.2.144/ipp/../compiler/lib/intel64/../lib/:/opt/intel/composer_xe_2013_sp1.2.144/ipp/lib/intel64/x86_64-linux-gnu/4.8/:/opt/intel/composer_xe_2013_sp1.2.144/ipp/lib/intel64/x86_64-linux-gnu/:/opt/intel/composer_xe_2013_sp1.2.144/ipp/lib/intel64/../lib/:/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64/x86_64-linux-gnu/4.8/:/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64/x86_64-linux-gnu/:/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64/../lib/:/opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64/x86_64-linux-gnu/4.8/:/opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64/x86_64-linux-gnu/:/opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64/../lib/:/opt/intel/composer_xe_2013_sp1.2.144/tbb/lib/intel64/gcc4.4/x86_64-linux-gnu/4.8/:/opt/intel/composer_xe_2013_sp1.2.144/tbb/lib/intel64/gcc4.4/x86_64-linux-gnu/:/opt/intel/composer_xe_2013_sp1.2.144/tbb/lib/intel64/gcc4.4/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/:/lib/x86_64-linux-gnu/4.8/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/4.8/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64/:/opt/intel/composer_xe_2013_sp1.2.144/ipp/../compiler/lib/intel64/:/opt/intel/composer_xe_2013_sp1.2.144/ipp/lib/intel64/:/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64/:/opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64/:/opt/intel/composer_xe_2013_sp1.2.144/tbb/lib/intel64/gcc4.4/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/

The output of icpc -# main.cpp -std=c++11 is:


/opt/intel/composer_xe_2013_sp1.2.144/bin/intel64/mcpcom  
    -_g 
    -mP3OPT_inline_alloca 
    -D__HONOR_STD 
    -D__ICC=1400 
    -D__INTEL_COMPILER=1400 
    -D__INTEL_COMPILER_UPDATE=2 
    -D__PTRDIFF_TYPE__=long 
    "-D__SIZE_TYPE__=unsigned long" 
    -D__WCHAR_TYPE__=int 
    "-D__WINT_TYPE__=unsigned int" 
    "-D__INTMAX_TYPE__=long int" 
    "-D__UINTMAX_TYPE__=long unsigned int" 
    -D__INTEL_CXX11_MODE__ 
    -D__LONG_MAX__=9223372036854775807L 
    -D__QMSPP_ 
    -D__OPTIMIZE__ 
    -D__NO_MATH_INLINES 
    -D__NO_STRING_INLINES 
    -D__GNUC_GNU_INLINE__ 
    -D__STRICT_ANSI__ 
    -D__GXX_EXPERIMENTAL_CXX0X__ 
    -D__GNUG__=4 
    -D__GNUC__=4 
    -D__GNUC_MINOR__=8 
    -D__GNUC_PATCHLEVEL__=0 
    -D__LP64__ 
    -D_LP64 
    -D_GNU_SOURCE=1 
    -D__DEPRECATED=1 
    -D__GXX_WEAK__=1 
    -D__GXX_ABI_VERSION=1002 
    "-D__USER_LABEL_PREFIX__= " 
    -D__REGISTER_PREFIX__= 
    -D__INTEL_RTTI__ 
    -D__EXCEPTIONS=1 
    -D__unix__ 
    -D__unix 
    -D__linux__ 
    -D__linux 
    -D__gnu_linux__ 
    -B 
    "-_Asystem(unix)" 
    -D__ELF__ 
    -D__x86_64 
    -D__x86_64__ 
    "-_Acpu(x86_64)" 
    "-_Amachine(x86_64)" 
    -D_MT 
    -D__INTEL_COMPILER_BUILD_DATE=20140120 
    -D__INTEL_OFFLOAD 
    -D__i686 
    -D__i686__ 
    -D__pentiumpro 
    -D__pentiumpro__ 
    -D__pentium4 
    -D__pentium4__ 
    -D__tune_pentium4__ 
    -D__SSE2__ 
    -D__SSE__ 
    -D__MMX__ 
    -_k 
    -_8 
    -_l 
    -_a 
    -_b 
    --gnu_version=480 
    -_W5 
    --gcc-extern-inline 
    -p 
    --bool 
    -tused 
    -x 
    --c++0x 
    --multibyte_chars 
    --sys_include 
    /opt/intel/composer_xe_2013_sp1.2.144/ipp/include 
    --sys_include 
    /opt/intel/composer_xe_2013_sp1.2.144/mkl/include 
    --sys_include 
    /opt/intel/composer_xe_2013_sp1.2.144/tbb/include 
    --sys_include 
    /opt/intel/composer_xe_2013_sp1.2.144/compiler/include/intel64 
    --sys_include 
    /opt/intel/composer_xe_2013_sp1.2.144/compiler/include 
    --sys_include 
    /usr/include/c++/4.8 
    --sys_include 
    /usr/include/c++/4.8/backward 
    --sys_include 
    /usr/local/include 
    --sys_include 
    /usr/lib/gcc/x86_64-linux-gnu/4.8/include 
    --sys_include 
    /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed 
    --sys_include 
    /usr/include 
    --sys_include 
    /usr/include/x86_64-linux-gnu 
    --sys_include 
    /usr/include/x86_64-linux-gnu/c++/4.8 
    --array_section 
    --simd 
    --simd_func 
    --offload_mode=1 
    --offload_target_names=mic,MIC 
    --offload_unique_string=icpc118138593XjgDtQ 
    --bool 
    -mP1OPT_version=14.0-intel64 
    -mGLOB_diag_file=/tmp/icpcKkulxP.diag 
    -mP1OPT_print_version=FALSE 
    -mCG_use_gas_got_workaround=F 
    -mP2OPT_align_option_used=TRUE 
    -mGLOB_gcc_version=480 
    "-mGLOB_options_string=-# -std=c++11" 
    -mGLOB_cxx_limited_range=FALSE 
    -mCG_extend_parms=FALSE 
    -mGLOB_compiler_bin_directory=/opt/intel/composer_xe_2013_sp1.2.144/bin/intel64 
    -mGLOB_as_output_backup_file_name=/tmp/icpc5hcQGOas_.s 
    -mIPOPT_activate 
    -mIPOPT_lite 
    -mGLOB_em64t 
    -mGLOB_instruction_tuning=0x0 
    -mGLOB_product_id_code=0x22006d8e 
    -mCG_bnl_movbe=T 
    -mGLOB_extended_instructions=0x8 
    -mP3OPT_use_mspp_call_convention 
    -mPGOPTI_value_profile_use=T 
    -mP2OPT_il0_array_sections=TRUE 
    -mGLOB_offload_mode=1 
    -mP2OPT_offload_unique_var_string=icpc118138593XjgDtQ 
    -mP2OPT_hlo_level=2 
    -mP2OPT_hlo 
    -mP2OPT_hpo_rtt_control=0 
    -mIPOPT_args_in_regs=0 
    -mP2OPT_disam_assume_nonstd_intent_in=FALSE 
    -mGLOB_imf_mapping_library=/opt/intel/composer_xe_2013_sp1.2.144/bin/intel64/libiml_attr.so 
    -mIPOPT_obj_output_file_name=/tmp/icpcKkulxP.o 
    -mIPOPT_whole_archive_fixup_file_name=/tmp/icpcwarchjGt6Z3 
    -mGLOB_linker_version=2.23.52.20130913 
    -mGLOB_long_size_64 
    -mGLOB_routine_pointer_size_64 
    -mGLOB_driver_tempfile_name=/tmp/icpctempfile7JeaDy 
    -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS 
    -mGLOB_async_unwind_tables=TRUE 
    -mGLOB_obj_output_file=/tmp/icpcKkulxP.o 
    -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_C_PLUS_PLUS 
    -mP1OPT_source_file_name=main.cpp 
    -mGLOB_eh_linux 
    main.cpp

ld  
    /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o 
    /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o 
    /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o 
    --eh-frame-hdr 
    --build-id 
    -dynamic-linker 
    /lib64/ld-linux-x86-64.so.2 
    -o 
    a.out 
    -L/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64 
    -L/opt/intel/composer_xe_2013_sp1.2.144/ipp/../compiler/lib/intel64 
    -L/opt/intel/composer_xe_2013_sp1.2.144/ipp/lib/intel64 
    -L/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64 
    -L/opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64 
    -L/opt/intel/composer_xe_2013_sp1.2.144/tbb/lib/intel64/gcc4.4 
    -L/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64 
    -L/usr/lib/gcc/x86_64-linux-gnu/4.8/ 
    -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/ 
    -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/ 
    -L/lib/x86_64-linux-gnu/ 
    -L/lib/../lib64 
    -L/lib/../lib/ 
    -L/usr/lib/x86_64-linux-gnu/ 
    -L/usr/lib/../lib/ 
    -L/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64/ 
    -L/opt/intel/composer_xe_2013_sp1.2.144/ipp/../compiler/lib/intel64/ 
    -L/opt/intel/composer_xe_2013_sp1.2.144/ipp/lib/intel64/ 
    -L/opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64/ 
    -L/opt/intel/composer_xe_2013_sp1.2.144/tbb/lib/intel64/gcc4.4/ 
    -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../ 
    -L/lib64 
    -L/lib/ 
    -L/usr/lib 
    -L/usr/lib/i386-linux-gnu 
    /tmp/icpcKkulxP.o 
    -Bdynamic 
    -Bstatic 
    -limf 
    -lsvml 
    -lirng 
    -Bdynamic 
    -lm 
    -Bstatic 
    -lipgo 
    -ldecimal 
    --as-needed 
    -Bdynamic 
    -lcilkrts 
    --no-as-needed 
    -lstdc++ 
    -lgcc 
    -lgcc_s 
    -Bstatic 
    -lirc 
    -lsvml 
    -Bdynamic 
    -lc 
    -lgcc 
    -lgcc_s 
    -Bstatic 
    -lirc_s 
    -Bdynamic 
    -ldl 
    -lc 
    /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o 
    /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o

rm /tmp/icpclibgccX2vsJ5
rm /tmp/icpcgnudirsi4XLZk
rm /tmp/icpcKkulxP.o
rm /tmp/icpcdummyKovbO4.c
rm /tmp/icpcdashvZPv24j
rm /tmp/icpcgasVnZAnz
rm /tmp/icpc5hcQGOas_.s
rm /tmp/icpcldashvxw7mjj
rm /tmp/icpctempfile7JeaDy
rm /tmp/icpcarg17dlXN
rm /tmp/icpcgnudirsUrl5ex
rm /tmp/icpcgnudirssLDRzM
rm /tmp/icpcgnudirs42r8U1
rm /tmp/icpcldashvEeWTgh
rm /tmp/icpcdummykbcbDw.c
rm /tmp/icpcgccdashvFGLtZL
rm /tmp/icpcgnudirs9E9sm1
rm /tmp/icpcldashvZXBWJg
rm /tmp/icpcgnudirsCUBT7v
rm /tmp/icpcgnudirs0L0dwL
rm /tmp/icpcKkulxP.o

9 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Thanks for reporting it!

We've been working on it and it's been tracked as DPD200242895. Will update you when the fix is available. There is no easy workaround for this. Sorry about that.

Jennifer

Hello,

are there any updates or a public way to track the status of DPD200242895?

Just running inside the same bug with the CUTE testing library.

 

Hello,
Tracker DPD200242895 has been fixed. Fix will be available in one of next releases.

--Sergey

Hello,

is there a timeframe for the release which include the fix?

Hi Hallo32,

I don't know concrete date. But, as far I know next update expected in some next months.

--Sergey

This issue is fixed in 14.0 update 3 and later, as well as 15.0.

Thanks,

Jennifer

Dear Jennifer,

 

 

 

I am using the icpc with the following version 

Intel(R) C++ Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 15.0.2.164 Build 20150121

Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

on a cluster machine.

I tried to compile the code that I was developing with icpc and got a similar error. Then I tried with the code provided in this post and got exactly the same error. Here is the output

test.cpp(16): error: no instance of overloaded function "std::_Bind<_Functor (_Bound_args...)>::operator() [with _Functor=std::_Mem_fn<void (Bar::*)(double, double)>, _Bound_args=<Bar *, double, std::_Placeholder<1>>]" matches the argument list

            argument types are: (int)

            object type is: std::_Bind<std::_Mem_fn<void (Bar::*)(double, double)> (Bar *, double, std::_Placeholder<1>)>

      function(3);

 

I am able to compile the code with g++ and it runs perfectly giving the expected result, but I want to have it compiling with icpc for performance reasons. My g++ version is

gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 

 

The output of g++ -v is:

Using built-in specs.

Target: x86_64-redhat-linux

Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux

Thread model: posix

gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)

 

I thought that you said in this post that the issue was solved for my version. Apparently it isn't. Any work arounds that I should be aware of?

Thanks in advance for your help.

Best,

Carlos

 

 

This code compiles with GNU 4.5 and later header files.

With GNU 4.4 the header files have a bug in them which cause this problem with both our compiler and with GNU.

You can see that if I try to compile the code with GNU 4.4.7 in -std=c++0x I see a similar error, i.e.:

sptel19-139> g++44 -std=c++0x -c -w bug.cpp
/rdrive/ref/gcc/4.4.7/rhel60/efi2/bin/g++ -std=c++0x -c -w bug.cpp -Wl,-rpath,/rdrive/ref/gcc/4.4.7/rhel60/efi2/lib64:/rdrive/ref/gcc/4.4.7/rhel60/efi2/lib
bug.cpp: In member function âvoid Bar::foo2(double)â:
bug.cpp:41895: error: no match for call to â(std::_Bind<std::_Mem_fn<void (Bar::*)(double, double)>(Bar*, double, std::_Placeholder<1>)>) (int)â
bug.cpp:40952: note: candidates are: typename std::result_of<_Functor(typename std::result_of<std::_Mu<_Bound_args, std::is_bind_expression::value, (std::is_placeholder::value > 0)>(_Bound_args, std::tuple<_UElements ...>)>::type ...)>::type std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args& ...) [with _Args = int, _Functor = std::_Mem_fn<void (Bar::*)(double, double)>, _Bound_args = Bar*, double, std::_Placeholder<1>]
bug.cpp:40963: note:                 typename std::result_of<const _Functor(typename std::result_of<std::_Mu<_Bound_args, std::is_bind_expression::value, (std::is_placeholder::value > 0)>(_Bound_args, std::tuple<_UElements ...>)>::type ...)>::type std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args& ...) const [with _Args = int, _Functor = std::_Mem_fn<void (Bar::*)(double, double)>, _Bound_args = Bar*, double, std::_Placeholder<1>]
bug.cpp:40975: note:                 typename std::result_of<volatile _Functor(typename std::result_of<std::_Mu<_Bound_args, std::is_bind_expression::value, (std::is_placeholder::value > 0)>(_Bound_args, std::tuple<_UElements ...>)>::type ...)>::type std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args& ...) volatile [with _Args = int, _Functor = std::_Mem_fn<void (Bar::*)(double, double)>, _Bound_args = Bar*, double, std::_Placeholder<1>]
bug.cpp:40988: note:                 typename std::result_of<const volatile _Functor(typename std::result_of<std::_Mu<_Bound_args, std::is_bind_expression::value, (std::is_placeholder::value > 0)>(_Bound_args, std::tuple<_UElements ...>)>::type ...)>::type std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args& ...) const volatile [with _Args = int, _Functor = std::_Mem_fn<void (Bar::*)(double, double)>, _Bound_args = Bar*, double, std::_Placeholder<1>]
sptel19-140>
 

So the problem is not in the compiler but in the GNU headers.

 

Leave a Comment

Please sign in to add a comment. Not a member? Join today