I was excited when I saw that CUDA 7.5 (with Visual Studio 2013/15) compiled Eigen 3.3rc1 w/o errors (just a bunch of warnings). When testing with CUDA 8.0 and VS2015 my hopes were wiped out. It seems that some of the errors from [bug 735](http://eigen.tuxfamily.org/bz/show_bug.cgi?id=735) are back. I get
eigen\src/Core/Ref.h(89): error : "operator=" has already been declared in the current scope
eigen\src/Core/Block.h(111): error : "operator=" has already been declared in the current scope
with VS2015 I get two errors:
eigen3.3rc1\eigen\src/Core/Ref.h(89): error: "operator=" has already been declared in the current scope
detected during instantiation of class "Eigen::RefBase<Derived> [with
Derived=Eigen::Ref<PlainObjectType, Options, StrideType>]"
c:\include\eigen3.3rc1\eigen\src/Core/Block.h(111): error: "operator=" has already been declared in the current scope
detected during instantiation of class "Eigen::Block<XprType, BlockRow
s, BlockCols, InnerPanel> [with XprType=VectorType, BlockRows=<expression>, Bloc
Compiling the same with VS2013 (CUDA 8) does *not* result in these errors (works fine).
Could you help us finding a workaround?
To this end, have a look at file Eigen/src/Core/util/Macros.h, lines 804-821,
and figure out which version is working for you?
I've created a patch that I haven't thoroughly tested (works on my current project), but have submitted as a pull request (https://bitbucket.org/eigen/eigen/pull-requests/236).