Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

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

Jason_M_3
Beginner
996 Views

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
996 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

0 Kudos
Hallo32
Beginner
996 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.

 

0 Kudos
Sergey_M_Intel
Employee
996 Views

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

--Sergey

0 Kudos
Hallo32
Beginner
996 Views

Hello,

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

0 Kudos
Sergey_M_Intel
Employee
996 Views

Hi Hallo32,

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

--Sergey

0 Kudos
JenniferJ
Moderator
996 Views

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

Thanks,

Jennifer

0 Kudos
Carlos_B_
Beginner
996 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

 

0 Kudos
Judith_W_Intel
Employee
996 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.

 

0 Kudos
Reply