{"action":"created","issue":{"url":"https://api.github.com/repos/kokkos/kokkos/issues/346","repository_url":"https://api.github.com/repos/kokkos/kokkos","labels_url":"https://api.github.com/repos/kokkos/kokkos/issues/346/labels{/name}","comments_url":"https://api.github.com/repos/kokkos/kokkos/issues/346/comments","events_url":"https://api.github.com/repos/kokkos/kokkos/issues/346/events","html_url":"https://github.com/kokkos/kokkos/issues/346","id":163953041,"number":346,"title":"Compiling with nvcc and Clang","user":{"login":"nickm319","id":6342909,"avatar_url":"https://avatars.githubusercontent.com/u/6342909?v=3","gravatar_id":"","url":"https://api.github.com/users/nickm319","html_url":"https://github.com/nickm319","followers_url":"https://api.github.com/users/nickm319/followers","following_url":"https://api.github.com/users/nickm319/following{/other_user}","gists_url":"https://api.github.com/users/nickm319/gists{/gist_id}","starred_url":"https://api.github.com/users/nickm319/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nickm319/subscriptions","organizations_url":"https://api.github.com/users/nickm319/orgs","repos_url":"https://api.github.com/users/nickm319/repos","events_url":"https://api.github.com/users/nickm319/events{/privacy}","received_events_url":"https://api.github.com/users/nickm319/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-07-05T21:39:14Z","updated_at":"2016-07-06T21:50:57Z","closed_at":null,"body":"Compiling with nvcc using Clang fails to compile parallel reduce with lambda support but works without lambdas. Parallel for works fine. To compile with nvcc using Clang, I patched nvcc_wrapper to include this line:\r\n\r\nhost_compiler=${NVCC_WRAPPER_DEFAULT_COMPILER:-\"clang++”}\r\n\r\nand also had to disable the -mavx flag in Makefile.kokkos. My Makefile uses:\r\n\r\nKOKKOS_DEVICES = \"Cuda,Serial\"\r\nKOKKOS_ARCH = \"SNB,Kepler35\"\r\n\r\nI have tried with various versions of Clang: 3.5 - 3.7 and Cuda 7.5 and 8.0. Compiling with Cuda 8.0 and Clang 3.7 gives the following error:\r\n\r\n../../kokkos/config/nvcc_wrapper2 -I./ -I../../kokkos/core/src -I../../kokkos/containers/src -I../../kokkos/algorithms/src  --std=c++11 -expt-extended-lambda  -arch=sm_35 -O3  -c test.cpp\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:335:21: error: use of undeclared identifier 'deduce_reduce_type'\r\ntypedef __decltype((deduce_reduce_type(tag_type(), &FunctorType::operator()))) ValueType;\r\n                    ^\r\n../../kokkos/core/src/Kokkos_Parallel.hpp:524:25: note: in instantiation of template class\r\n      'Kokkos::Impl::FunctorValueTraits<__nv_hdl_wrapper_t<__nv_dl_tag<int (*)(int, char **), &main, 1>, void (int, double &), int,\r\n      Kokkos::Experimental::View<double **, Kokkos::CudaSpace>, Kokkos::Experimental::View<double *, Kokkos::CudaSpace>,\r\n      Kokkos::Experimental::View<double *, Kokkos::CudaSpace> >, void, false>' requested here\r\nfunctor, typename Impl::FunctorValueTraits< typename Impl::if_c< Impl::is_execution_policy_enable< FunctorType> ::type::val...\r\n                        ^\r\ntest.cpp:142:1: note: while substituting deduced template arguments into function template 'parallel_reduce' [with FunctorType =\r\n      __nv_hdl_wrapper_t<__nv_dl_tag<int (*)(int, char **), &main, 1>, void (int, double &), int, Kokkos::Experimental::View<double\r\n      **, Kokkos::CudaSpace>, Kokkos::Experimental::View<double *, Kokkos::CudaSpace>, Kokkos::Experimental::View<double *,\r\n      Kokkos::CudaSpace> >]\r\nKokkos::parallel_reduce(N, __nv_hdl_create_wrapper_t< __nv_dl_tag<int (*)(int argc, char * argv[]),(&main),1> , typename __...\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:162:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:166:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:170:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:174:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:178:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:182:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:189:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:193:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:197:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:201:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:208:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:212:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:216:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:220:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:224:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:228:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:235:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:239:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:243:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:247:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:254:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:258:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:262:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:266:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:270:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:274:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:278:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:282:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:286:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:290:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:294:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:298:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:304:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:308:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:312:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:316:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:320:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:324:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:328:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:332:1: note: must qualify identifier to find this declaration in dependent\r\n      base class\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:335:21: error: no matching function for call to 'deduce_reduce_type'\r\ntypedef __decltype((deduce_reduce_type(tag_type(), &FunctorType::operator()))) ValueType;\r\n                    ^~~~~~~~~~~~~~~~~~\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:162:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:166:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:170:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:174:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:178:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:182:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:189:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:193:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:197:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:201:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:208:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:212:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:216:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:220:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:224:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:228:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:235:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:239:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:243:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:247:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:254:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:258:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:262:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:266:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:270:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:274:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:278:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:282:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:286:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:290:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:294:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:298:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:304:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:308:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:312:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:316:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:320:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:324:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:328:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:332:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:335:21: error: no matching function for call to 'deduce_reduce_type'\r\ntypedef __decltype((deduce_reduce_type(tag_type(), &FunctorType::operator()))) ValueType;\r\n                    ^~~~~~~~~~~~~~~~~~\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:162:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:166:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:170:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:174:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:178:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:182:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:189:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:193:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, ArgMember) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:197:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:201:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, const ArgMember &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:208:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:212:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:216:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:220:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:224:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:228:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:235:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:239:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, ArgMember, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:243:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:247:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, const ArgMember &, T &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:254:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:258:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:262:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:266:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:270:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:274:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:278:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:282:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:286:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:290:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(TagType, const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:294:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:298:1: note: candidate template ignored: couldn't infer template argument\r\n      'TagType'\r\ndeduce_reduce_type(VOIDTAG, void (FunctorType::*)(const TagType &, const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:304:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:308:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, ArgMember, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:312:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:316:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, const ArgMember &, T &, bool) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:320:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:324:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, ArgMember, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:328:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(tag_type, const ArgMember &, T &, const bool &) const) { }\r\n^\r\n../../kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp:332:1: note: candidate template ignored: couldn't infer template argument\r\n      'ArgMember'\r\ndeduce_reduce_type(tag_type, void (FunctorType::*)(const tag_type &, const ArgMember &, T &, const bool &) const) { }\r\n^\r\n3 errors generated."},"comment":{"url":"https://api.github.com/repos/kokkos/kokkos/issues/comments/230918209","html_url":"https://github.com/kokkos/kokkos/issues/346#issuecomment-230918209","issue_url":"https://api.github.com/repos/kokkos/kokkos/issues/346","id":230918209,"user":{"login":"nmhamster","id":8905126,"avatar_url":"https://avatars.githubusercontent.com/u/8905126?v=3","gravatar_id":"","url":"https://api.github.com/users/nmhamster","html_url":"https://github.com/nmhamster","followers_url":"https://api.github.com/users/nmhamster/followers","following_url":"https://api.github.com/users/nmhamster/following{/other_user}","gists_url":"https://api.github.com/users/nmhamster/gists{/gist_id}","starred_url":"https://api.github.com/users/nmhamster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nmhamster/subscriptions","organizations_url":"https://api.github.com/users/nmhamster/orgs","repos_url":"https://api.github.com/users/nmhamster/repos","events_url":"https://api.github.com/users/nmhamster/events{/privacy}","received_events_url":"https://api.github.com/users/nmhamster/received_events","type":"User","site_admin":false},"created_at":"2016-07-06T21:50:57Z","updated_at":"2016-07-06T21:50:57Z","body":"@nickm319 can I get the dump please?"}}
{"actor":{"display_login":"nmhamster"}}