{"action":"created","comment":{"url":"https://api.github.com/repos/boostorg/fusion/pulls/comments/41215000","id":41215000,"diff_hunk":"@@ -13,8 +13,145 @@\n ///////////////////////////////////////////////////////////////////////////////\n // Without variadics, we will use the PP version\n ///////////////////////////////////////////////////////////////////////////////\n+#if !defined(BOOST_FUSION_HAS_VARIADIC_SET)\n # include <boost/fusion/container/set/detail/cpp03/set.hpp>\n+#else\n \n+///////////////////////////////////////////////////////////////////////////////\n+// C++11 interface\n+///////////////////////////////////////////////////////////////////////////////\n+#include <boost/fusion/support/detail/access.hpp>\n+#include <boost/fusion/support/sequence_base.hpp>\n+#include <boost/fusion/support/category_of.hpp>\n+#include <boost/fusion/container/vector/vector.hpp>\n+#include <boost/fusion/container/set/detail/begin_impl.hpp>\n+#include <boost/fusion/container/set/detail/end_impl.hpp>\n+#include <boost/fusion/container/set/detail/value_of_impl.hpp>\n+#include <boost/fusion/container/set/detail/deref_data_impl.hpp>\n+#include <boost/fusion/container/set/detail/deref_impl.hpp>\n+#include <boost/fusion/container/set/detail/key_of_impl.hpp>\n+#include <boost/fusion/container/set/detail/value_of_data_impl.hpp>\n+#include <boost/mpl/identity.hpp>\n+#include <boost/mpl/bool.hpp>\n+\n+namespace boost { namespace fusion\n+{\n+    struct fusion_sequence_tag;\n+\n+    template <>\n+    struct set<> : sequence_base<set<> >\n+    {\n+        struct category : forward_traversal_tag, associative_tag {};\n+\n+        typedef set_tag fusion_tag;\n+        typedef fusion_sequence_tag tag; // this gets picked up by MPL\n+        typedef mpl::false_ is_view;\n+\n+        typedef vector<> storage_type;\n+\n+        typedef storage_type::size size;\n+\n+        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED\n+        set()\n+            : data() {}\n+\n+        template <typename Sequence>\n+        BOOST_FUSION_GPU_ENABLED\n+        set(Sequence const& rhs)\n+            : data(rhs) {}\n+\n+        template <typename T>\n+        BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED\n+        set&\n+        operator=(T const& rhs)\n+        {\n+            data = rhs;\n+            return *this;\n+        }\n+\n+        BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED\n+        storage_type& get_data() { return data; }\n+        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED\n+        storage_type const& get_data() const { return data; }\n+\n+    private:\n+        storage_type data;\n+    };\n+\n+    template <typename ...T>\n+    struct set : sequence_base<set<T...> >\n+    {\n+        struct category : forward_traversal_tag, associative_tag {};\n+\n+        typedef set_tag fusion_tag;\n+        typedef fusion_sequence_tag tag; // this gets picked up by MPL\n+        typedef mpl::false_ is_view;\n+\n+        typedef vector<T...> storage_type;\n+\n+        typedef typename storage_type::size size;\n+\n+        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED\n+        set()\n+            : data() {}\n+\n+        template <typename Sequence>","path":"include/boost/fusion/container/set/set.hpp","position":93,"original_position":93,"commit_id":"d512378f4ebee8f891717b8f5c4bcd8f0e9e3ce9","original_commit_id":"d512378f4ebee8f891717b8f5c4bcd8f0e9e3ce9","user":{"login":"djowel","id":568094,"avatar_url":"https://avatars.githubusercontent.com/u/568094?v=3","gravatar_id":"","url":"https://api.github.com/users/djowel","html_url":"https://github.com/djowel","followers_url":"https://api.github.com/users/djowel/followers","following_url":"https://api.github.com/users/djowel/following{/other_user}","gists_url":"https://api.github.com/users/djowel/gists{/gist_id}","starred_url":"https://api.github.com/users/djowel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djowel/subscriptions","organizations_url":"https://api.github.com/users/djowel/orgs","repos_url":"https://api.github.com/users/djowel/repos","events_url":"https://api.github.com/users/djowel/events{/privacy}","received_events_url":"https://api.github.com/users/djowel/received_events","type":"User","site_admin":false},"body":"+1 on requiring variadics and r-value references for fusion::set cpp11","created_at":"2015-10-06T00:30:40Z","updated_at":"2015-10-06T00:30:40Z","html_url":"https://github.com/boostorg/fusion/pull/105#discussion_r41215000","pull_request_url":"https://api.github.com/repos/boostorg/fusion/pulls/105","_links":{"self":{"href":"https://api.github.com/repos/boostorg/fusion/pulls/comments/41215000"},"html":{"href":"https://github.com/boostorg/fusion/pull/105#discussion_r41215000"},"pull_request":{"href":"https://api.github.com/repos/boostorg/fusion/pulls/105"}}},"pull_request":{"url":"https://api.github.com/repos/boostorg/fusion/pulls/105","id":46220891,"html_url":"https://github.com/boostorg/fusion/pull/105","diff_url":"https://github.com/boostorg/fusion/pull/105.diff","patch_url":"https://github.com/boostorg/fusion/pull/105.patch","issue_url":"https://api.github.com/repos/boostorg/fusion/issues/105","number":105,"state":"open","locked":false,"title":"Merge variadics into develop.","user":{"login":"Flast","id":322915,"avatar_url":"https://avatars.githubusercontent.com/u/322915?v=3","gravatar_id":"","url":"https://api.github.com/users/Flast","html_url":"https://github.com/Flast","followers_url":"https://api.github.com/users/Flast/followers","following_url":"https://api.github.com/users/Flast/following{/other_user}","gists_url":"https://api.github.com/users/Flast/gists{/gist_id}","starred_url":"https://api.github.com/users/Flast/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Flast/subscriptions","organizations_url":"https://api.github.com/users/Flast/orgs","repos_url":"https://api.github.com/users/Flast/repos","events_url":"https://api.github.com/users/Flast/events{/privacy}","received_events_url":"https://api.github.com/users/Flast/received_events","type":"User","site_admin":false},"body":"I think it is good time to merge variadics into develop and sieve regressions.","created_at":"2015-09-28T23:31:21Z","updated_at":"2015-10-06T00:30:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ffc1976cd2b7ae3cae3be8b141ee22dc208a1e23","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/boostorg/fusion/pulls/105/commits","review_comments_url":"https://api.github.com/repos/boostorg/fusion/pulls/105/comments","review_comment_url":"https://api.github.com/repos/boostorg/fusion/pulls/comments{/number}","comments_url":"https://api.github.com/repos/boostorg/fusion/issues/105/comments","statuses_url":"https://api.github.com/repos/boostorg/fusion/statuses/d512378f4ebee8f891717b8f5c4bcd8f0e9e3ce9","head":{"label":"boostorg:variadics","ref":"variadics","sha":"d512378f4ebee8f891717b8f5c4bcd8f0e9e3ce9","user":{"login":"boostorg","id":3170529,"avatar_url":"https://avatars.githubusercontent.com/u/3170529?v=3","gravatar_id":"","url":"https://api.github.com/users/boostorg","html_url":"https://github.com/boostorg","followers_url":"https://api.github.com/users/boostorg/followers","following_url":"https://api.github.com/users/boostorg/following{/other_user}","gists_url":"https://api.github.com/users/boostorg/gists{/gist_id}","starred_url":"https://api.github.com/users/boostorg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boostorg/subscriptions","organizations_url":"https://api.github.com/users/boostorg/orgs","repos_url":"https://api.github.com/users/boostorg/repos","events_url":"https://api.github.com/users/boostorg/events{/privacy}","received_events_url":"https://api.github.com/users/boostorg/received_events","type":"Organization","site_admin":false},"repo":{"id":7589969,"name":"fusion","full_name":"boostorg/fusion","owner":{"login":"boostorg","id":3170529,"avatar_url":"https://avatars.githubusercontent.com/u/3170529?v=3","gravatar_id":"","url":"https://api.github.com/users/boostorg","html_url":"https://github.com/boostorg","followers_url":"https://api.github.com/users/boostorg/followers","following_url":"https://api.github.com/users/boostorg/following{/other_user}","gists_url":"https://api.github.com/users/boostorg/gists{/gist_id}","starred_url":"https://api.github.com/users/boostorg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boostorg/subscriptions","organizations_url":"https://api.github.com/users/boostorg/orgs","repos_url":"https://api.github.com/users/boostorg/repos","events_url":"https://api.github.com/users/boostorg/events{/privacy}","received_events_url":"https://api.github.com/users/boostorg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/boostorg/fusion","description":"Boost.org fusion module","fork":false,"url":"https://api.github.com/repos/boostorg/fusion","forks_url":"https://api.github.com/repos/boostorg/fusion/forks","keys_url":"https://api.github.com/repos/boostorg/fusion/keys{/key_id}","collaborators_url":"https://api.github.com/repos/boostorg/fusion/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/boostorg/fusion/teams","hooks_url":"https://api.github.com/repos/boostorg/fusion/hooks","issue_events_url":"https://api.github.com/repos/boostorg/fusion/issues/events{/number}","events_url":"https://api.github.com/repos/boostorg/fusion/events","assignees_url":"https://api.github.com/repos/boostorg/fusion/assignees{/user}","branches_url":"https://api.github.com/repos/boostorg/fusion/branches{/branch}","tags_url":"https://api.github.com/repos/boostorg/fusion/tags","blobs_url":"https://api.github.com/repos/boostorg/fusion/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/boostorg/fusion/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/boostorg/fusion/git/refs{/sha}","trees_url":"https://api.github.com/repos/boostorg/fusion/git/trees{/sha}","statuses_url":"https://api.github.com/repos/boostorg/fusion/statuses/{sha}","languages_url":"https://api.github.com/repos/boostorg/fusion/languages","stargazers_url":"https://api.github.com/repos/boostorg/fusion/stargazers","contributors_url":"https://api.github.com/repos/boostorg/fusion/contributors","subscribers_url":"https://api.github.com/repos/boostorg/fusion/subscribers","subscription_url":"https://api.github.com/repos/boostorg/fusion/subscription","commits_url":"https://api.github.com/repos/boostorg/fusion/commits{/sha}","git_commits_url":"https://api.github.com/repos/boostorg/fusion/git/commits{/sha}","comments_url":"https://api.github.com/repos/boostorg/fusion/comments{/number}","issue_comment_url":"https://api.github.com/repos/boostorg/fusion/issues/comments{/number}","contents_url":"https://api.github.com/repos/boostorg/fusion/contents/{+path}","compare_url":"https://api.github.com/repos/boostorg/fusion/compare/{base}...{head}","merges_url":"https://api.github.com/repos/boostorg/fusion/merges","archive_url":"https://api.github.com/repos/boostorg/fusion/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/boostorg/fusion/downloads","issues_url":"https://api.github.com/repos/boostorg/fusion/issues{/number}","pulls_url":"https://api.github.com/repos/boostorg/fusion/pulls{/number}","milestones_url":"https://api.github.com/repos/boostorg/fusion/milestones{/number}","notifications_url":"https://api.github.com/repos/boostorg/fusion/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/boostorg/fusion/labels{/name}","releases_url":"https://api.github.com/repos/boostorg/fusion/releases{/id}","created_at":"2013-01-13T15:59:07Z","updated_at":"2015-10-05T07:59:17Z","pushed_at":"2015-10-05T19:48:07Z","git_url":"git://github.com/boostorg/fusion.git","ssh_url":"git@github.com:boostorg/fusion.git","clone_url":"https://github.com/boostorg/fusion.git","svn_url":"https://github.com/boostorg/fusion","homepage":"http://boost.org/libs/fusion","size":22090,"stargazers_count":13,"watchers_count":13,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"open_issues_count":2,"forks":20,"open_issues":2,"watchers":13,"default_branch":"master"}},"base":{"label":"boostorg:develop","ref":"develop","sha":"d2f8ee9f323bad5408868f33bc6ff2c7bc46d0dd","user":{"login":"boostorg","id":3170529,"avatar_url":"https://avatars.githubusercontent.com/u/3170529?v=3","gravatar_id":"","url":"https://api.github.com/users/boostorg","html_url":"https://github.com/boostorg","followers_url":"https://api.github.com/users/boostorg/followers","following_url":"https://api.github.com/users/boostorg/following{/other_user}","gists_url":"https://api.github.com/users/boostorg/gists{/gist_id}","starred_url":"https://api.github.com/users/boostorg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boostorg/subscriptions","organizations_url":"https://api.github.com/users/boostorg/orgs","repos_url":"https://api.github.com/users/boostorg/repos","events_url":"https://api.github.com/users/boostorg/events{/privacy}","received_events_url":"https://api.github.com/users/boostorg/received_events","type":"Organization","site_admin":false},"repo":{"id":7589969,"name":"fusion","full_name":"boostorg/fusion","owner":{"login":"boostorg","id":3170529,"avatar_url":"https://avatars.githubusercontent.com/u/3170529?v=3","gravatar_id":"","url":"https://api.github.com/users/boostorg","html_url":"https://github.com/boostorg","followers_url":"https://api.github.com/users/boostorg/followers","following_url":"https://api.github.com/users/boostorg/following{/other_user}","gists_url":"https://api.github.com/users/boostorg/gists{/gist_id}","starred_url":"https://api.github.com/users/boostorg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boostorg/subscriptions","organizations_url":"https://api.github.com/users/boostorg/orgs","repos_url":"https://api.github.com/users/boostorg/repos","events_url":"https://api.github.com/users/boostorg/events{/privacy}","received_events_url":"https://api.github.com/users/boostorg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/boostorg/fusion","description":"Boost.org fusion module","fork":false,"url":"https://api.github.com/repos/boostorg/fusion","forks_url":"https://api.github.com/repos/boostorg/fusion/forks","keys_url":"https://api.github.com/repos/boostorg/fusion/keys{/key_id}","collaborators_url":"https://api.github.com/repos/boostorg/fusion/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/boostorg/fusion/teams","hooks_url":"https://api.github.com/repos/boostorg/fusion/hooks","issue_events_url":"https://api.github.com/repos/boostorg/fusion/issues/events{/number}","events_url":"https://api.github.com/repos/boostorg/fusion/events","assignees_url":"https://api.github.com/repos/boostorg/fusion/assignees{/user}","branches_url":"https://api.github.com/repos/boostorg/fusion/branches{/branch}","tags_url":"https://api.github.com/repos/boostorg/fusion/tags","blobs_url":"https://api.github.com/repos/boostorg/fusion/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/boostorg/fusion/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/boostorg/fusion/git/refs{/sha}","trees_url":"https://api.github.com/repos/boostorg/fusion/git/trees{/sha}","statuses_url":"https://api.github.com/repos/boostorg/fusion/statuses/{sha}","languages_url":"https://api.github.com/repos/boostorg/fusion/languages","stargazers_url":"https://api.github.com/repos/boostorg/fusion/stargazers","contributors_url":"https://api.github.com/repos/boostorg/fusion/contributors","subscribers_url":"https://api.github.com/repos/boostorg/fusion/subscribers","subscription_url":"https://api.github.com/repos/boostorg/fusion/subscription","commits_url":"https://api.github.com/repos/boostorg/fusion/commits{/sha}","git_commits_url":"https://api.github.com/repos/boostorg/fusion/git/commits{/sha}","comments_url":"https://api.github.com/repos/boostorg/fusion/comments{/number}","issue_comment_url":"https://api.github.com/repos/boostorg/fusion/issues/comments{/number}","contents_url":"https://api.github.com/repos/boostorg/fusion/contents/{+path}","compare_url":"https://api.github.com/repos/boostorg/fusion/compare/{base}...{head}","merges_url":"https://api.github.com/repos/boostorg/fusion/merges","archive_url":"https://api.github.com/repos/boostorg/fusion/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/boostorg/fusion/downloads","issues_url":"https://api.github.com/repos/boostorg/fusion/issues{/number}","pulls_url":"https://api.github.com/repos/boostorg/fusion/pulls{/number}","milestones_url":"https://api.github.com/repos/boostorg/fusion/milestones{/number}","notifications_url":"https://api.github.com/repos/boostorg/fusion/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/boostorg/fusion/labels{/name}","releases_url":"https://api.github.com/repos/boostorg/fusion/releases{/id}","created_at":"2013-01-13T15:59:07Z","updated_at":"2015-10-05T07:59:17Z","pushed_at":"2015-10-05T19:48:07Z","git_url":"git://github.com/boostorg/fusion.git","ssh_url":"git@github.com:boostorg/fusion.git","clone_url":"https://github.com/boostorg/fusion.git","svn_url":"https://github.com/boostorg/fusion","homepage":"http://boost.org/libs/fusion","size":22090,"stargazers_count":13,"watchers_count":13,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"open_issues_count":2,"forks":20,"open_issues":2,"watchers":13,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/boostorg/fusion/pulls/105"},"html":{"href":"https://github.com/boostorg/fusion/pull/105"},"issue":{"href":"https://api.github.com/repos/boostorg/fusion/issues/105"},"comments":{"href":"https://api.github.com/repos/boostorg/fusion/issues/105/comments"},"review_comments":{"href":"https://api.github.com/repos/boostorg/fusion/pulls/105/comments"},"review_comment":{"href":"https://api.github.com/repos/boostorg/fusion/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/boostorg/fusion/pulls/105/commits"},"statuses":{"href":"https://api.github.com/repos/boostorg/fusion/statuses/d512378f4ebee8f891717b8f5c4bcd8f0e9e3ce9"}}}}