{"action":"created","issue":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/5749","repository_url":"https://api.github.com/repos/RobotLocomotion/drake","labels_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/5749/labels{/name}","comments_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/5749/comments","events_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/5749/events","html_url":"https://github.com/RobotLocomotion/drake/pull/5749","id":219954294,"number":5749,"title":"Removed the superfluous l-value generator","user":{"login":"SeanCurtis-TRI","id":22159799,"avatar_url":"https://avatars0.githubusercontent.com/u/22159799?v=3","gravatar_id":"","url":"https://api.github.com/users/SeanCurtis-TRI","html_url":"https://github.com/SeanCurtis-TRI","followers_url":"https://api.github.com/users/SeanCurtis-TRI/followers","following_url":"https://api.github.com/users/SeanCurtis-TRI/following{/other_user}","gists_url":"https://api.github.com/users/SeanCurtis-TRI/gists{/gist_id}","starred_url":"https://api.github.com/users/SeanCurtis-TRI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SeanCurtis-TRI/subscriptions","organizations_url":"https://api.github.com/users/SeanCurtis-TRI/orgs","repos_url":"https://api.github.com/users/SeanCurtis-TRI/repos","events_url":"https://api.github.com/users/SeanCurtis-TRI/events{/privacy}","received_events_url":"https://api.github.com/users/SeanCurtis-TRI/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"david-german-tri","id":17437069,"avatar_url":"https://avatars1.githubusercontent.com/u/17437069?v=3","gravatar_id":"","url":"https://api.github.com/users/david-german-tri","html_url":"https://github.com/david-german-tri","followers_url":"https://api.github.com/users/david-german-tri/followers","following_url":"https://api.github.com/users/david-german-tri/following{/other_user}","gists_url":"https://api.github.com/users/david-german-tri/gists{/gist_id}","starred_url":"https://api.github.com/users/david-german-tri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/david-german-tri/subscriptions","organizations_url":"https://api.github.com/users/david-german-tri/orgs","repos_url":"https://api.github.com/users/david-german-tri/repos","events_url":"https://api.github.com/users/david-german-tri/events{/privacy}","received_events_url":"https://api.github.com/users/david-german-tri/received_events","type":"User","site_admin":false},"assignees":[{"login":"sherm1","id":4088016,"avatar_url":"https://avatars2.githubusercontent.com/u/4088016?v=3","gravatar_id":"","url":"https://api.github.com/users/sherm1","html_url":"https://github.com/sherm1","followers_url":"https://api.github.com/users/sherm1/followers","following_url":"https://api.github.com/users/sherm1/following{/other_user}","gists_url":"https://api.github.com/users/sherm1/gists{/gist_id}","starred_url":"https://api.github.com/users/sherm1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sherm1/subscriptions","organizations_url":"https://api.github.com/users/sherm1/orgs","repos_url":"https://api.github.com/users/sherm1/repos","events_url":"https://api.github.com/users/sherm1/events{/privacy}","received_events_url":"https://api.github.com/users/sherm1/received_events","type":"User","site_admin":false},{"login":"david-german-tri","id":17437069,"avatar_url":"https://avatars1.githubusercontent.com/u/17437069?v=3","gravatar_id":"","url":"https://api.github.com/users/david-german-tri","html_url":"https://github.com/david-german-tri","followers_url":"https://api.github.com/users/david-german-tri/followers","following_url":"https://api.github.com/users/david-german-tri/following{/other_user}","gists_url":"https://api.github.com/users/david-german-tri/gists{/gist_id}","starred_url":"https://api.github.com/users/david-german-tri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/david-german-tri/subscriptions","organizations_url":"https://api.github.com/users/david-german-tri/orgs","repos_url":"https://api.github.com/users/david-german-tri/repos","events_url":"https://api.github.com/users/david-german-tri/events{/privacy}","received_events_url":"https://api.github.com/users/david-german-tri/received_events","type":"User","site_admin":false}],"milestone":null,"comments":2,"created_at":"2017-04-06T16:22:04Z","updated_at":"2017-04-06T17:08:35Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/RobotLocomotion/drake/pulls/5749","html_url":"https://github.com/RobotLocomotion/drake/pull/5749","diff_url":"https://github.com/RobotLocomotion/drake/pull/5749.diff","patch_url":"https://github.com/RobotLocomotion/drake/pull/5749.patch"},"body":"In solving another SFINAE problem, I realized that these tests are overly complex in their structure. We've introduced the `GenerateLValue` struct that isn't actually necessary; `std::declval` provides all the functionality we need.\r\n\r\n1) In two cases (index and identifier tests) r-values are fine (`declval<T>()` has type `T&&`).\r\n2) In the inertia tests, we do require l-values, becase we're doing in-place operations (e.g., `*=`). However, `declval<T&>()` has type `T& &&` which collapses to `T&`.  In short, the rvalue reference of an lvalue reference *is* an lvalue reference.  \r\n\r\nSo, we simplify the voodoo using fewer arbitrary constructs and rely more directly on built-in C++ functionality.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/robotlocomotion/drake/5749)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/comments/292240999","html_url":"https://github.com/RobotLocomotion/drake/pull/5749#issuecomment-292240999","issue_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/5749","id":292240999,"user":{"login":"david-german-tri","id":17437069,"avatar_url":"https://avatars1.githubusercontent.com/u/17437069?v=3","gravatar_id":"","url":"https://api.github.com/users/david-german-tri","html_url":"https://github.com/david-german-tri","followers_url":"https://api.github.com/users/david-german-tri/followers","following_url":"https://api.github.com/users/david-german-tri/following{/other_user}","gists_url":"https://api.github.com/users/david-german-tri/gists{/gist_id}","starred_url":"https://api.github.com/users/david-german-tri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/david-german-tri/subscriptions","organizations_url":"https://api.github.com/users/david-german-tri/orgs","repos_url":"https://api.github.com/users/david-german-tri/repos","events_url":"https://api.github.com/users/david-german-tri/events{/privacy}","received_events_url":"https://api.github.com/users/david-german-tri/received_events","type":"User","site_admin":false},"created_at":"2017-04-06T17:08:35Z","updated_at":"2017-04-06T17:08:35Z","body":"<img class=\"emoji\" title=\":lgtm:\" alt=\":lgtm:\" align=\"absmiddle\" src=\"https://reviewable.io/lgtm.png\" height=\"20\" width=\"61\"/> cool!\n\n---\n\nReviewed 3 of 3 files at r1.\nReview status: all files reviewed at latest revision, 2 unresolved discussions.\n\n---\n\n\n\n*Comments from [Reviewable](https://reviewable.io:443/reviews/robotlocomotion/drake/5749#-:-Kh3EHe3i_SaSV1MUqUR:b-84whef)*\n<!-- Sent from Reviewable.io -->\n"}}
{"actor":{"display_login":"david-german-tri"}}