Skip to content

Ambiguous template specialization on GCC 7.3.1 #254

@barche

Description

@barche

Hi, trying to compile using GCC 7.3.1, I get the following error on master:

[  9%] Building CXX object CMakeFiles/El.dir/src/blas_like/blocksizes.cpp.o
/usr/lib64/openmpi/bin/mpic++  -DEl_EXPORTS -I/home/username/src/build/elemental-src/include -I/home/username/src/build/elemental-build/include -I/home/username/src/build/elemental-install/include -I/home/username/src/build/elemental-src/external/suite_sparse/include  -O3 -fcx-fortran-rules -std=gnu++14  -fPIC   -o CMakeFiles/El.dir/src/blas_like/blocksizes.cpp.o -c /home/username/src/build/elemental-src/src/blas_like/blocksizes.cpp
In file included from /home/username/src/build/elemental-src/include/El/blas_like/level1/impl.hpp:22:0,
                 from /home/username/src/build/elemental-src/include/El/blas_like/level1.hpp:13,
                 from /home/username/src/build/elemental-src/include/El/blas_like.hpp:12,
                 from /home/username/src/build/elemental-src/src/blas_like/blocksizes.cpp:10:
/home/username/src/build/elemental-src/include/El/blas_like/level1/Copy.hpp:549:27: error: ambiguous template specialization ‘Copy<>’ for ‘void El::Copy(const El::Matrix<int>&, El::Matrix<int>&)’
   EL_EXTERN template void Copy \
                           ^
/home/username/src/build/elemental-src/include/El/macros/Instantiate.h:10:23: note: in expansion of macro ‘PROTO’
 # define PROTO_INT(T) PROTO(T)
                       ^~~~~
/home/username/src/build/elemental-src/include/El/macros/Instantiate.h:88:1: note: in expansion of macro ‘PROTO_INT’
 PROTO_INT(Int)
 ^~~~~~~~~
In file included from /home/username/src/build/elemental-src/include/El/blas_like/level1/impl.hpp:22:0,
                 from /home/username/src/build/elemental-src/include/El/blas_like/level1.hpp:13,
                 from /home/username/src/build/elemental-src/include/El/blas_like.hpp:12,
                 from /home/username/src/build/elemental-src/src/blas_like/blocksizes.cpp:10:
/home/username/src/build/elemental-src/include/El/blas_like/level1/Copy.hpp:19:6: note: candidates are: template<class T> void El::Copy(const El::Matrix<Ring>&, El::Matrix<Ring>&)
 void Copy( const Matrix<T>& A, Matrix<T>& B )
      ^~~~
/home/username/src/build/elemental-src/include/El/blas_like/level1/Copy.hpp:60:6: note:                 template<class S, class T, class> void El::Copy(const El::Matrix<Ring>&, El::Matrix<T>&)
 void Copy( const Matrix<S>& A, Matrix<T>& B )
      ^~~~

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions