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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions