Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Jason_M_3
Beginner
248 Views

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:

[cpp]

#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);
}

[/cpp]

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

[bash]

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)

[/bash]

Running g++ -v gives:

[bash]

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) 

[/bash]

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

[bash]

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/

[/bash]

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

[bash]

/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

[/bash]

0 Kudos
8 Replies
JenniferJ
Moderator
248 Views

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

Hallo32
Beginner
248 Views

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.

 

Sergey_M_Intel
Employee
248 Views

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

--Sergey

Hallo32
Beginner
248 Views

Hello,

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

Sergey_M_Intel
Employee
248 Views

Hi Hallo32,

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

--Sergey

JenniferJ
Moderator
248 Views

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

Thanks,

Jennifer

Carlos_B_
Beginner
248 Views

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

 

Judith_W_Intel
Employee
248 Views

 

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.

 

Reply