{"action":"created","issue":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/2447","repository_url":"https://api.github.com/repos/RobotLocomotion/drake","labels_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/2447/labels{/name}","comments_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/2447/comments","events_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/2447/events","html_url":"https://github.com/RobotLocomotion/drake/pull/2447","id":156615160,"number":2447,"title":"Add cxx_inl documentation, style exception, and example code","user":{"login":"jwnimmer-tri","id":17596505,"avatar_url":"https://avatars.githubusercontent.com/u/17596505?v=3","gravatar_id":"","url":"https://api.github.com/users/jwnimmer-tri","html_url":"https://github.com/jwnimmer-tri","followers_url":"https://api.github.com/users/jwnimmer-tri/followers","following_url":"https://api.github.com/users/jwnimmer-tri/following{/other_user}","gists_url":"https://api.github.com/users/jwnimmer-tri/gists{/gist_id}","starred_url":"https://api.github.com/users/jwnimmer-tri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwnimmer-tri/subscriptions","organizations_url":"https://api.github.com/users/jwnimmer-tri/orgs","repos_url":"https://api.github.com/users/jwnimmer-tri/repos","events_url":"https://api.github.com/users/jwnimmer-tri/events{/privacy}","received_events_url":"https://api.github.com/users/jwnimmer-tri/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2016-05-24T21:36:06Z","updated_at":"2016-05-25T13:47:48Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/RobotLocomotion/drake/pulls/2447","html_url":"https://github.com/RobotLocomotion/drake/pull/2447","diff_url":"https://github.com/RobotLocomotion/drake/pull/2447.diff","patch_url":"https://github.com/RobotLocomotion/drake/pull/2447.patch"},"body":"This is intended to be a beachhead for many more `*-inl.h` files in PRs to come.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"35\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/robotlocomotion/drake/2447)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/comments/221581324","html_url":"https://github.com/RobotLocomotion/drake/pull/2447#issuecomment-221581324","issue_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/2447","id":221581324,"user":{"login":"ggould-tri","id":17596413,"avatar_url":"https://avatars.githubusercontent.com/u/17596413?v=3","gravatar_id":"","url":"https://api.github.com/users/ggould-tri","html_url":"https://github.com/ggould-tri","followers_url":"https://api.github.com/users/ggould-tri/followers","following_url":"https://api.github.com/users/ggould-tri/following{/other_user}","gists_url":"https://api.github.com/users/ggould-tri/gists{/gist_id}","starred_url":"https://api.github.com/users/ggould-tri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ggould-tri/subscriptions","organizations_url":"https://api.github.com/users/ggould-tri/orgs","repos_url":"https://api.github.com/users/ggould-tri/repos","events_url":"https://api.github.com/users/ggould-tri/events{/privacy}","received_events_url":"https://api.github.com/users/ggould-tri/received_events","type":"User","site_admin":false},"created_at":"2016-05-25T13:47:48Z","updated_at":"2016-05-25T13:47:48Z","body":"I take it from @sherm1 's comment that folks view the instantiation macro as a normal default feature of the `inl.h` pattern; this is new to me, and wasn't present on some recent codebases I've worked on.  If there is a common convention, that should definitely win out over my personal distastes.\r\n\r\nI do want to push back a little bit though on this bit: \"failure to instantiate some ingredient won't necessarily cause an error until someone (an end user perhaps) actually attempts to employ that ingredient and gets a link error.\"  While the macro makes the 'instantiate some functions and not others' issue less likely (alas for function-level templating!) the general phenomenon of failure-to-instantiate (or more often, failure-to-instantiate-the-exact-right-type, failure-to-catch-an-intermediate-const, failure-to-instantiate-with-the-locally-mandatory-windows-dllexport-macro, etc.) will occur with or without the macro, and indeed the macro makes it less obvious how a developer should rectify the problem since a grep for the explicit instantiation will find no results and most IDEs will not traverse macros.\r\n\r\nOn the whole though if the instantiation macro dance is a common practice, I will not stand in its way."}}
{"actor":{"display_login":"ggould-tri"}}