QMCPACK / miniqmc

QMCPACK miniapp: a simplified real space QMC code for algorithm development, performance portability testing, and computer science experiments
Other
27 stars 35 forks source link

[WIP] clang can't deal with the multiply defined operator() #197

Closed PDoakORNL closed 5 years ago

PDoakORNL commented 5 years ago

Not sure how this effects other compilers yet

qmc-robot commented 5 years ago

Can one of the maintainers verify this patch?

lshulen commented 5 years ago

A couple of questions: This seems to break functionality on the kokkos branch. The multiple operator() definitions with different signatures were there to allow different kokkos parallel sections. What is replacing this?

Also, is the multiply defined operator bad c++ or is this a clang issue? Or is this normally handled by the KOKKOS_INLINE_FUNCTION macro?

PDoakORNL commented 5 years ago

It's a work in progress because I was suspicious there was more too it. So thanks for the clarification of why they're there. I'm guessing this is my not understanding the macro. No one merge this, I will close soon and convert to an issue.

lshulen commented 5 years ago

OK, that said, I'm serious in asking whether this was bad C++. If it is, there is another way that we could probably work around it on the Kokkos side. If it's just a problem with clang at the moment, I'm not as excited about investing the effort.