{"action":"created","issue":{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/1151","labels_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/1151/labels{/name}","comments_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/1151/comments","events_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/1151/events","html_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/1151","id":108894812,"number":1151,"title":"Close #1035 usage of boost::result_of","user":{"login":"Flamefire","id":309017,"avatar_url":"https://avatars.githubusercontent.com/u/309017?v=3","gravatar_id":"","url":"https://api.github.com/users/Flamefire","html_url":"https://github.com/Flamefire","followers_url":"https://api.github.com/users/Flamefire/followers","following_url":"https://api.github.com/users/Flamefire/following{/other_user}","gists_url":"https://api.github.com/users/Flamefire/gists{/gist_id}","starred_url":"https://api.github.com/users/Flamefire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Flamefire/subscriptions","organizations_url":"https://api.github.com/users/Flamefire/orgs","repos_url":"https://api.github.com/users/Flamefire/repos","events_url":"https://api.github.com/users/Flamefire/events{/privacy}","received_events_url":"https://api.github.com/users/Flamefire/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/labels/C++11%20compatibility","name":"C++11 compatibility","color":"fc8959"},{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/labels/libPMacc","name":"libPMacc","color":"fbca04"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/milestones/2","html_url":"https://github.com/ComputationalRadiationPhysics/picongpu/milestones/Open%20Beta","labels_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/milestones/2/labels","id":395839,"number":2,"title":"Open Beta","description":"Tasks to complete until the release of our open beta (version 0.1)\r\n\r\nThe [beta](https://en.wikipedia.org/wiki/Software_release_life_cycle#Beta) release shall be useful for *physicist* that used a Particle-in-Cell code *before*. Experience with *compiling libraries from source* and a *good Linux knowledge* is required for the initial installation.\r\n","creator":{"login":"ax3l","id":1353258,"avatar_url":"https://avatars.githubusercontent.com/u/1353258?v=3","gravatar_id":"","url":"https://api.github.com/users/ax3l","html_url":"https://github.com/ax3l","followers_url":"https://api.github.com/users/ax3l/followers","following_url":"https://api.github.com/users/ax3l/following{/other_user}","gists_url":"https://api.github.com/users/ax3l/gists{/gist_id}","starred_url":"https://api.github.com/users/ax3l/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ax3l/subscriptions","organizations_url":"https://api.github.com/users/ax3l/orgs","repos_url":"https://api.github.com/users/ax3l/repos","events_url":"https://api.github.com/users/ax3l/events{/privacy}","received_events_url":"https://api.github.com/users/ax3l/received_events","type":"User","site_admin":false},"open_issues":123,"closed_issues":943,"state":"open","created_at":"2013-08-06T16:38:57Z","updated_at":"2015-10-05T14:54:56Z","due_on":null,"closed_at":null},"comments":14,"created_at":"2015-09-29T15:29:10Z","updated_at":"2015-10-06T08:56:26Z","closed_at":"2015-09-30T13:15:51Z","pull_request":{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/1151","html_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/1151","diff_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/1151.diff","patch_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/1151.patch"},"body":"PMacc uses `boost::result_of` to get the return type of arbitrary functions from a couple of structs. For example it is used, to get the result of the []-operator.\r\nThis violates the standard protocol which specifies that the result<> template member type should return the return type of the ()-operator and therefore breaks once decltype() (C++11) can be used (which is then automatically chosen by boost) This makes compiling with C++11 impossible --> #1147\r\n\r\nThis PR adds a define that forces boost to keep that behaviour. Note that the related ` BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK` define cannot be used in **CUDA 7.0** due to a nvcc compiler bug ~~that should be fixed in the next CUDA release after 7.5 (according to NVIDIA)~~ (not in CUDA 6.5; fixed in CUDA 7.5).\r\n\r\nSource for boost::result_of: http://www.boost.org/doc/libs/1_59_0/libs/utility/utility.htm\r\n\r\nThis **requires** at least **boost 1.52**: http://www.boost.org/doc/libs/1_52_0/libs/utility/utility.htm\r\n\r\nCloses #1035 (for now)"},"comment":{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/comments/145789920","html_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/1151#issuecomment-145789920","issue_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/1151","id":145789920,"user":{"login":"Flamefire","id":309017,"avatar_url":"https://avatars.githubusercontent.com/u/309017?v=3","gravatar_id":"","url":"https://api.github.com/users/Flamefire","html_url":"https://github.com/Flamefire","followers_url":"https://api.github.com/users/Flamefire/followers","following_url":"https://api.github.com/users/Flamefire/following{/other_user}","gists_url":"https://api.github.com/users/Flamefire/gists{/gist_id}","starred_url":"https://api.github.com/users/Flamefire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Flamefire/subscriptions","organizations_url":"https://api.github.com/users/Flamefire/orgs","repos_url":"https://api.github.com/users/Flamefire/repos","events_url":"https://api.github.com/users/Flamefire/events{/privacy}","received_events_url":"https://api.github.com/users/Flamefire/received_events","type":"User","site_admin":false},"created_at":"2015-10-06T08:56:26Z","updated_at":"2015-10-06T08:56:26Z","body":"No. `decltype` itself works. It is only its use in a specific template that causes nvcc to mess up its lexer or parser: https://stackoverflow.com/questions/31969644/compilation-error-with-nvcc-and-c11-need-minimal-failing-example\r\nWhat happens is that this use of `decltype` causes nvcc to insert a token at a wrong position which results in invalid syntax.\r\nE.g. not using boost but using `decltype` in other occasions work. It also works, when boost is included first."}}