{"action":"opened","issue":{"url":"https://api.github.com/repos/nzbget/nzbget/issues/143","labels_url":"https://api.github.com/repos/nzbget/nzbget/issues/143/labels{/name}","comments_url":"https://api.github.com/repos/nzbget/nzbget/issues/143/comments","events_url":"https://api.github.com/repos/nzbget/nzbget/issues/143/events","html_url":"https://github.com/nzbget/nzbget/issues/143","id":124662647,"number":143,"title":"Store objects directly in containers","user":{"login":"hugbug","id":3368402,"avatar_url":"https://avatars.githubusercontent.com/u/3368402?v=3","gravatar_id":"","url":"https://api.github.com/users/hugbug","html_url":"https://github.com/hugbug","followers_url":"https://api.github.com/users/hugbug/followers","following_url":"https://api.github.com/users/hugbug/following{/other_user}","gists_url":"https://api.github.com/users/hugbug/gists{/gist_id}","starred_url":"https://api.github.com/users/hugbug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hugbug/subscriptions","organizations_url":"https://api.github.com/users/hugbug/orgs","repos_url":"https://api.github.com/users/hugbug/repos","events_url":"https://api.github.com/users/hugbug/events{/privacy}","received_events_url":"https://api.github.com/users/hugbug/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nzbget/nzbget/labels/refactoring","name":"refactoring","color":"5319e7"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/nzbget/nzbget/milestones/4","html_url":"https://github.com/nzbget/nzbget/milestones/Modern%20C++","labels_url":"https://api.github.com/repos/nzbget/nzbget/milestones/4/labels","id":1369015,"number":4,"title":"Modern C++","description":"Upgrade the code base to C++11/C++14.\r\nFor more info see #88.","creator":{"login":"hugbug","id":3368402,"avatar_url":"https://avatars.githubusercontent.com/u/3368402?v=3","gravatar_id":"","url":"https://api.github.com/users/hugbug","html_url":"https://github.com/hugbug","followers_url":"https://api.github.com/users/hugbug/followers","following_url":"https://api.github.com/users/hugbug/following{/other_user}","gists_url":"https://api.github.com/users/hugbug/gists{/gist_id}","starred_url":"https://api.github.com/users/hugbug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hugbug/subscriptions","organizations_url":"https://api.github.com/users/hugbug/orgs","repos_url":"https://api.github.com/users/hugbug/repos","events_url":"https://api.github.com/users/hugbug/events{/privacy}","received_events_url":"https://api.github.com/users/hugbug/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":10,"state":"open","created_at":"2015-10-21T20:06:47Z","updated_at":"2016-01-03T18:12:31Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2016-01-03T18:12:31Z","updated_at":"2016-01-03T18:12:31Z","closed_at":null,"body":"For intro see #88.\r\n\r\nContainers in old code usually store pointers to objects. Where appropriate we should replace the pointers with actual objects, considering the preserved performance provided by move semantics.\r\n\r\nThe advantages of storing objects instead of pointers are:\r\n- eliminating the need of destructors (to delete objects) since containers delete objects automatically;\r\n- less memory allocations (when using `emplace`-functons);\r\n- reduction of indirection levels is good for performance.\r\n\r\nOne special case: replace `char*` in containers with `CString`."}}