{"action":"created","issue":{"url":"https://api.github.com/repos/cpprefjp/site/issues/357","repository_url":"https://api.github.com/repos/cpprefjp/site","labels_url":"https://api.github.com/repos/cpprefjp/site/issues/357/labels{/name}","comments_url":"https://api.github.com/repos/cpprefjp/site/issues/357/comments","events_url":"https://api.github.com/repos/cpprefjp/site/issues/357/events","html_url":"https://github.com/cpprefjp/site/issues/357","id":142316130,"number":357,"title":"C++11 extern template: 実行ファイルサイズ、リンク時最適化への言及について","user":{"login":"k-satoda","id":1337204,"avatar_url":"https://avatars.githubusercontent.com/u/1337204?v=3","gravatar_id":"","url":"https://api.github.com/users/k-satoda","html_url":"https://github.com/k-satoda","followers_url":"https://api.github.com/users/k-satoda/followers","following_url":"https://api.github.com/users/k-satoda/following{/other_user}","gists_url":"https://api.github.com/users/k-satoda/gists{/gist_id}","starred_url":"https://api.github.com/users/k-satoda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k-satoda/subscriptions","organizations_url":"https://api.github.com/users/k-satoda/orgs","repos_url":"https://api.github.com/users/k-satoda/repos","events_url":"https://api.github.com/users/k-satoda/events{/privacy}","received_events_url":"https://api.github.com/users/k-satoda/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/cpprefjp/site/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":{"login":"faithandbrave","id":240038,"avatar_url":"https://avatars.githubusercontent.com/u/240038?v=3","gravatar_id":"","url":"https://api.github.com/users/faithandbrave","html_url":"https://github.com/faithandbrave","followers_url":"https://api.github.com/users/faithandbrave/followers","following_url":"https://api.github.com/users/faithandbrave/following{/other_user}","gists_url":"https://api.github.com/users/faithandbrave/gists{/gist_id}","starred_url":"https://api.github.com/users/faithandbrave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/faithandbrave/subscriptions","organizations_url":"https://api.github.com/users/faithandbrave/orgs","repos_url":"https://api.github.com/users/faithandbrave/repos","events_url":"https://api.github.com/users/faithandbrave/events{/privacy}","received_events_url":"https://api.github.com/users/faithandbrave/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2016-03-21T11:07:12Z","updated_at":"2016-03-21T14:41:55Z","closed_at":null,"body":"https://github.com/cpprefjp/site/blob/904776446e00b1abbf5f71cfa70a9499fe136fb1/lang/cpp11/extern_template.md\r\n> これを使用することによって、複数の翻訳単位で同じテンプレートの\r\n> インスタンス化が行われることを抑制できる。それによって、コンパイル速度が\r\n> 向上すること、および実行ファイルのサイズが膨れ上がるのを抑える効果が期待\r\n> できる。\r\n\r\nテンプレート実体によるバイナリはリンク時にひとつにまとめる必要がある\r\nので、実行ファイルに残るバイナリのサイズが  extern template の使用で変わる\r\nことはなく、ここの「実行ファイルのサイズ」は「各翻訳単位に対応する\r\nオブジェクトファイルのサイズ」の間違いかと思います。\r\n（これは N1987 の Introduction でも確認できます。）\r\n\r\nただ、備考で以下のような言及もあります。\r\n> バイナリサイズの肥大化については、コンパイラの「リンク時最適化\r\n> (Link Time Optimization, LTO)」によっても抑制を期待できる。\r\n\r\nここの「バイナリサイズ」が実行ファイルサイズのことを言っているのか、\r\nオブジェクトファイルサイズのことを言っているのか、わかりません。また、\r\nどちらにしても extern template とはあまり関係無いように思います。\r\n（ N1987 でもリンク時最適化についての言及は見当たりませんでした。）\r\n\r\nもし実行ファイルサイズのことであれば先に挙げた点を修正するにあたって\r\nいっしょに削除しちゃえばいいと思いますが、それで大丈夫でしょうか？\r\n\r\nやっぱり言及しておいたほうがいいということであれば、 extern template と\r\nリンク時最適化との関係、あるいはリンク時最適化とバイナリサイズ\r\n（オブジェクトファイルサイズ？）との関係について情報をください。\r\n"},"comment":{"url":"https://api.github.com/repos/cpprefjp/site/issues/comments/199320113","html_url":"https://github.com/cpprefjp/site/issues/357#issuecomment-199320113","issue_url":"https://api.github.com/repos/cpprefjp/site/issues/357","id":199320113,"user":{"login":"faithandbrave","id":240038,"avatar_url":"https://avatars.githubusercontent.com/u/240038?v=3","gravatar_id":"","url":"https://api.github.com/users/faithandbrave","html_url":"https://github.com/faithandbrave","followers_url":"https://api.github.com/users/faithandbrave/followers","following_url":"https://api.github.com/users/faithandbrave/following{/other_user}","gists_url":"https://api.github.com/users/faithandbrave/gists{/gist_id}","starred_url":"https://api.github.com/users/faithandbrave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/faithandbrave/subscriptions","organizations_url":"https://api.github.com/users/faithandbrave/orgs","repos_url":"https://api.github.com/users/faithandbrave/repos","events_url":"https://api.github.com/users/faithandbrave/events{/privacy}","received_events_url":"https://api.github.com/users/faithandbrave/received_events","type":"User","site_admin":false},"created_at":"2016-03-21T14:41:55Z","updated_at":"2016-03-21T14:41:55Z","body":"すいません、勘違いでした。修正お願いします。リンク時最適化の文章も削除していただいて大丈夫です。"}}