{"action":"created","issue":{"url":"https://api.github.com/repos/Nagarei/DxLibEx/issues/69","repository_url":"https://api.github.com/repos/Nagarei/DxLibEx","labels_url":"https://api.github.com/repos/Nagarei/DxLibEx/issues/69/labels{/name}","comments_url":"https://api.github.com/repos/Nagarei/DxLibEx/issues/69/comments","events_url":"https://api.github.com/repos/Nagarei/DxLibEx/issues/69/events","html_url":"https://github.com/Nagarei/DxLibEx/pull/69","id":154694560,"number":69,"title":"pragma once が混じってた","user":{"login":"soukouki","id":17077205,"avatar_url":"https://avatars.githubusercontent.com/u/17077205?v=3","gravatar_id":"","url":"https://api.github.com/users/soukouki","html_url":"https://github.com/soukouki","followers_url":"https://api.github.com/users/soukouki/followers","following_url":"https://api.github.com/users/soukouki/following{/other_user}","gists_url":"https://api.github.com/users/soukouki/gists{/gist_id}","starred_url":"https://api.github.com/users/soukouki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/soukouki/subscriptions","organizations_url":"https://api.github.com/users/soukouki/orgs","repos_url":"https://api.github.com/users/soukouki/repos","events_url":"https://api.github.com/users/soukouki/events{/privacy}","received_events_url":"https://api.github.com/users/soukouki/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-05-13T11:50:36Z","updated_at":"2016-05-13T13:02:57Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Nagarei/DxLibEx/pulls/69","html_url":"https://github.com/Nagarei/DxLibEx/pull/69","diff_url":"https://github.com/Nagarei/DxLibEx/pull/69.diff","patch_url":"https://github.com/Nagarei/DxLibEx/pull/69.patch"},"body":"マージコミットが混ざってるんですけど直し方がわからない。"},"comment":{"url":"https://api.github.com/repos/Nagarei/DxLibEx/issues/comments/219036429","html_url":"https://github.com/Nagarei/DxLibEx/pull/69#issuecomment-219036429","issue_url":"https://api.github.com/repos/Nagarei/DxLibEx/issues/69","id":219036429,"user":{"login":"yumetodo","id":10869046,"avatar_url":"https://avatars.githubusercontent.com/u/10869046?v=3","gravatar_id":"","url":"https://api.github.com/users/yumetodo","html_url":"https://github.com/yumetodo","followers_url":"https://api.github.com/users/yumetodo/followers","following_url":"https://api.github.com/users/yumetodo/following{/other_user}","gists_url":"https://api.github.com/users/yumetodo/gists{/gist_id}","starred_url":"https://api.github.com/users/yumetodo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yumetodo/subscriptions","organizations_url":"https://api.github.com/users/yumetodo/orgs","repos_url":"https://api.github.com/users/yumetodo/repos","events_url":"https://api.github.com/users/yumetodo/events{/privacy}","received_events_url":"https://api.github.com/users/yumetodo/received_events","type":"User","site_admin":false},"created_at":"2016-05-13T13:02:57Z","updated_at":"2016-05-13T13:02:57Z","body":"@soukouki \r\n**しないと思います**。C++標準化委員会は、プリプロセッサマクロ全廃に向かっています。#incudeはimportという新機能を追加して置き換えるという提案が前に出ていましたし、MSはこの機能を推しているようです。\r\n\r\n>http://cpplover.blogspot.jp/2014/11/2014-10-pre-urbanac-n4210-n4219.html\r\n>[[PDF] N4214: A Module System for C++ (Revision 2)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4214.pdf)\r\n> 40年前のコピペ技術である#inludeにかわるモジュール機能の提案。\r\n\r\n>現在、C++が使っているコンパイルとリンクモデルは、C言語から受け継いだものである。各翻訳単位は、他の翻訳単位のことを一切知らずに処理される。翻訳単位を超えるには、名前リンケージ（シンボル名）を使う。名前に対応する定義はひとつだけでなければならない（ODR）。\r\n\r\n>翻訳単位の外に見える名前である外部名を、手動によるコピペで管理することを防ぐために、我々は40年前の技術である自動コピペ技術、プリプロセッサーによるヘッダーファイルを未だに使っている。これは、コンパイラーからみれば、コピペである。\r\n\r\n>ヘッダーファイルの中身はマクロによって書き換わってしまうおそれがあり、誤りの元である。\r\n\r\n>変数や関数の宣言ぐらいしか書かれていなかった昔のC言語ならば、まだ十分に耐えられたのだが、モダンなC++では、ヘッダーファイルには実行されるコードが記述されている。コンパイラーは翻訳単位ごとに重複した内容を処理しなければならず、現代のC++のコンパイル時間の増大の原因になっている。\r\n\r\n>この論文では、C++に近代的なコンポーネント化をもたらすための機能、モジュールの設計を考案している。 \r\n\r\nまたC++標準化委員会の過去の提案を追うと\r\n[[PDF] N1736 : Modules in C++ (Revision 1)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1736.pdf)\r\n[[PDF] N1778 : Modules in C++ (Revision 1)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1778.pdf)\r\n[[PDF] N1964 : Modules in C++ (Revision 3)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1964.pdf)\r\n[[PDF] N2073 : Modules in C++ (Revision 4)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2073.pdf)\r\n[[PDF] N2316 : Modules in C++ (Revision 5)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2316.pdf)\r\n[[PDF] N3347 : Modules in C++ (Revision 6)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3347.pdf)\r\n[[PDF] N4047: A Module System for C++](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4047.pdf)\r\n[[PDF] N4214: A Module System for C++ (Revision 2)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4214.pdf)\r\n[[PDF] N4465 : A Module System for C++ (Revision 3) ](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4465.pdf)\r\n[[PDF] N4466 : Wording for Modules ](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4466.pdf)\r\nN4467 : C++ Modules: Directions and Issues\r\n[[PDF] P0142R0 : A Module System for C++ (Revision 4) ](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0142r0.pdf)\r\n[[PDF] P0143R0 : Wording for Modules ](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0143r0.pdf)\r\n[[PDF] P0143R1 : Wording for Modules ](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0143r1.pdf)\r\n[[PDF] P0273R0 : Proposed modules changes from implementation and deployment experience ](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0273r0.pdf)\r\n[[PDF] P0143R2 : Wording for Modules ](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0143r2.pdf)\r\n\r\nまた\r\nhttps://isocpp.org/std/status\r\nを見ると\r\n![wg21-timeline](https://isocpp.org/files/img/wg21-timeline.png)\r\n主な議題に入っていますね。"}}