{"action":"created","comment":{"url":"https://api.github.com/repos/ericniebler/range-v3/pulls/comments/29264176","id":29264176,"diff_hunk":"@@ -0,0 +1,203 @@\n+// Range v3 library\n+//\n+//  Copyright Eric Niebler 2014\n+//\n+//  Use, modification and distribution is subject to the\n+//  Boost Software License, Version 1.0. (See accompanying\n+//  file LICENSE_1_0.txt or copy at\n+//  http://www.boost.org/LICENSE_1_0.txt)\n+//\n+// Project home: https://github.com/ericniebler/range-v3\n+//\n+// The implementation of reverse_iterator has been adapted from libc++\n+// (http://libcxx.llvm.org).\n+//\n+//===----------------------------------------------------------------------===//\n+//\n+//                     The LLVM Compiler Infrastructure\n+//\n+// This file is dual licensed under the MIT and the University of Illinois Open\n+// Source Licenses. See LICENSE.TXT for details.\n+//\n+//===----------------------------------------------------------------------===//\n+\n+#ifndef RANGES_V3_UTILITY_REVERSE_ITERATOR_HPP\n+#define RANGES_V3_UTILITY_REVERSE_ITERATOR_HPP\n+\n+#include <range/v3/utility/addressof.hpp>\n+#include <range/v3/utility/iterator_concepts.hpp>\n+#include <range/v3/utility/iterator_traits.hpp>\n+\n+namespace ranges {\n+    inline namespace v3 {\n+\n+        template <typename It>\n+        class reverse_iterator\n+        {\n+\n+            static_assert(Iterator<It>{},\n+                          \"reverse_iterator requires a model of Iterator\");\n+            static_assert(BidirectionalIterator<It>{},\n+                          \"reverse_iterator requires a model of BidirectionalIterator\");\n+\n+          public:\n+            using iterator_category = typename std::iterator_traits<It>::iterator_category;\n+            using value_type = typename std::iterator_traits<It>::value_type;\n+            using difference_type = typename std::iterator_traits<It>::difference_type;\n+            using pointer = typename std::iterator_traits<It>::pointer;\n+            using reference = typename std::iterator_traits<It>::reference;\n+            using iterator_type = It;\n+          protected:\n+            It current;\n+          public:\n+            RANGES_CXX14_CONSTEXPR reverse_iterator() : current() {}\n+            RANGES_CXX14_CONSTEXPR\n+            explicit reverse_iterator(iterator_type other)\n+              : current(std::move(other))\n+            {}\n+            template <typename U>\n+            RANGES_CXX14_CONSTEXPR\n+            reverse_iterator(reverse_iterator<U> const& u)\n+              : current(u.base())\n+            {}\n+            RANGES_CXX14_CONSTEXPR iterator_type base() const\n+            {\n+                return current;\n+            }\n+            RANGES_CXX14_CONSTEXPR reference operator*() const\n+            {\n+                iterator_type tmp(current);\n+                return *--tmp;\n+           }\n+           RANGES_CXX14_CONSTEXPR pointer operator->() const\n+           {\n+                return ranges::addressof(operator*());\n+           }\n+           RANGES_CXX14_CONSTEXPR reverse_iterator& operator++()\n+           {\n+               --current;\n+               return *this;\n+           }\n+           RANGES_CXX14_CONSTEXPR reverse_iterator operator++(int)\n+           {\n+               reverse_iterator tmp(*this);\n+               --current;\n+               return tmp;\n+           }\n+           RANGES_CXX14_CONSTEXPR reverse_iterator& operator--()\n+           {\n+               ++current;\n+               return *this;\n+           }\n+           RANGES_CXX14_CONSTEXPR reverse_iterator operator--(int)\n+           {\n+               reverse_iterator tmp(*this);\n+               ++current;\n+               return tmp;\n+           }\n+           CONCEPT_REQUIRES(RandomAccessIterator<iterator_type>{})\n+           RANGES_CXX14_CONSTEXPR\n+           reverse_iterator operator+ (difference_type n) const\n+           {\n+               return reverse_iterator(current - n);\n+           }\n+           CONCEPT_REQUIRES(RandomAccessIterator<iterator_type>{})\n+           RANGES_CXX14_CONSTEXPR\n+           reverse_iterator& operator+=(difference_type n)\n+           {\n+               current -= n;\n+               return *this;\n+           }\n+           CONCEPT_REQUIRES(RandomAccessIterator<iterator_type>{})\n+           RANGES_CXX14_CONSTEXPR\n+           reverse_iterator operator-(difference_type n) const {\n+               return reverse_iterator(current + n);\n+           }\n+           RANGES_CXX14_CONSTEXPR reverse_iterator& operator-=(difference_type n)\n+           {\n+               current += n;\n+               return *this;\n+           }\n+           CONCEPT_REQUIRES(RandomAccessIterator<iterator_type>{})\n+           RANGES_CXX14_CONSTEXPR reference operator[](difference_type n) const\n+           {\n+               return *(*this + n);\n+           }\n+        };\n+\n+        template <typename It1, typename It2>\n+        RANGES_CXX14_CONSTEXPR\n+        bool\n+        operator==(const reverse_iterator<It1>& x, const reverse_iterator<It2>& y)\n+        {\n+            return x.base() == y.base();\n+        }\n+\n+        template <typename It1, typename It2>\n+        RANGES_CXX14_CONSTEXPR\n+        bool\n+        operator<(const reverse_iterator<It1>& x, const reverse_iterator<It2>& y)\n+        {\n+            return x.base() > y.base();\n+        }\n+\n+        template <typename It1, typename It2>\n+        RANGES_CXX14_CONSTEXPR\n+        bool\n+        operator!=(const reverse_iterator<It1>& x, const reverse_iterator<It2>& y)\n+        {\n+            return x.base() != y.base();\n+        }\n+\n+        template <typename It1, typename It2>\n+        RANGES_CXX14_CONSTEXPR\n+        bool\n+        operator>(const reverse_iterator<It1>& x, const reverse_iterator<It2>& y)\n+        {\n+            return x.base() < y.base();\n+        }\n+\n+        template <typename It1, typename It2>\n+        RANGES_CXX14_CONSTEXPR\n+        bool\n+        operator>=(const reverse_iterator<It1>& x, const reverse_iterator<It2>& y)\n+        {\n+            return x.base() <= y.base();\n+        }\n+\n+        template <typename It1, typename It2>\n+        RANGES_CXX14_CONSTEXPR\n+        bool\n+        operator<=(const reverse_iterator<It1>& x, const reverse_iterator<It2>& y)\n+        {\n+            return x.base() >= y.base();\n+        }\n+\n+        template <typename It1, typename It2,\n+                  CONCEPT_REQUIRES_(RandomAccessIterator<It1>{} &&\n+                                    RandomAccessIterator<It2>{})>\n+        RANGES_CXX14_CONSTEXPR\n+        iterator_difference_t<It1>\n+        operator-(const reverse_iterator<It1>& x, const reverse_iterator<It2>& y)\n+        {\n+            return y.base() - x.base();\n+        }\n+\n+        template <typename It, CONCEPT_REQUIRES_(RandomAccessIterator<It>{})>\n+        RANGES_CXX14_CONSTEXPR\n+        reverse_iterator<It>\n+        operator+(iterator_difference_t<reverse_iterator<It>> n, const reverse_iterator<It>& x)\n+        {\n+            return reverse_iterator<It>(x.base() - n);\n+        }\n+\n+        template <typename It, CONCEPT_REQUIRES_(BidirectionalIterator<It>{})>\n+        RANGES_CXX14_CONSTEXPR\n+        reverse_iterator<It> make_reverse_iterator(It i)\n+        {\n+            return reverse_iterator<It>(i);\n+        }\n+\n+    }  // namespace v3\n+}  // namespace ranges\n+#endif  // RANGES_V3_UTILITY_REVERSE_ITERATOR_HPP","path":"include/range/v3/utility/reverse_iterator.hpp","position":203,"original_position":203,"commit_id":"9afa159520c87be70d3c717b6619b8583ee310a0","original_commit_id":"9afa159520c87be70d3c717b6619b8583ee310a0","user":{"login":"ericniebler","id":225757,"avatar_url":"https://avatars.githubusercontent.com/u/225757?v=3","gravatar_id":"","url":"https://api.github.com/users/ericniebler","html_url":"https://github.com/ericniebler","followers_url":"https://api.github.com/users/ericniebler/followers","following_url":"https://api.github.com/users/ericniebler/following{/other_user}","gists_url":"https://api.github.com/users/ericniebler/gists{/gist_id}","starred_url":"https://api.github.com/users/ericniebler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ericniebler/subscriptions","organizations_url":"https://api.github.com/users/ericniebler/orgs","repos_url":"https://api.github.com/users/ericniebler/repos","events_url":"https://api.github.com/users/ericniebler/events{/privacy}","received_events_url":"https://api.github.com/users/ericniebler/received_events","type":"User","site_admin":false},"body":"Ah. If you remove `operator->` then you can nuke the weird `ranges::addressof`. Cool.","created_at":"2015-04-28T17:03:52Z","updated_at":"2015-04-28T17:03:52Z","html_url":"https://github.com/ericniebler/range-v3/pull/139#discussion_r29264176","pull_request_url":"https://api.github.com/repos/ericniebler/range-v3/pulls/139","_links":{"self":{"href":"https://api.github.com/repos/ericniebler/range-v3/pulls/comments/29264176"},"html":{"href":"https://github.com/ericniebler/range-v3/pull/139#discussion_r29264176"},"pull_request":{"href":"https://api.github.com/repos/ericniebler/range-v3/pulls/139"}}},"pull_request":{"url":"https://api.github.com/repos/ericniebler/range-v3/pulls/139","id":34277282,"html_url":"https://github.com/ericniebler/range-v3/pull/139","diff_url":"https://github.com/ericniebler/range-v3/pull/139.diff","patch_url":"https://github.com/ericniebler/range-v3/pull/139.patch","issue_url":"https://api.github.com/repos/ericniebler/range-v3/issues/139","number":139,"state":"open","locked":false,"title":"enable relaxed constexpr in core","user":{"login":"gnzlbg","id":904614,"avatar_url":"https://avatars.githubusercontent.com/u/904614?v=3","gravatar_id":"","url":"https://api.github.com/users/gnzlbg","html_url":"https://github.com/gnzlbg","followers_url":"https://api.github.com/users/gnzlbg/followers","following_url":"https://api.github.com/users/gnzlbg/following{/other_user}","gists_url":"https://api.github.com/users/gnzlbg/gists{/gist_id}","starred_url":"https://api.github.com/users/gnzlbg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gnzlbg/subscriptions","organizations_url":"https://api.github.com/users/gnzlbg/orgs","repos_url":"https://api.github.com/users/gnzlbg/repos","events_url":"https://api.github.com/users/gnzlbg/events{/privacy}","received_events_url":"https://api.github.com/users/gnzlbg/received_events","type":"User","site_admin":false},"body":"- adds constexpr to:\r\n  - begin, end, rbegin, rend, cbegin, cend, crbegin, crend\r\n    - note: i've hijacked ADL for C-arrays and initializer lists in ranges::rbegin/rend/crbegin/crend \r\n      because std::rbegin/rend/crbegin/crend are not constexpr (while std::begin/std::end are...). \r\n        - a constexpr reverse_iterator is added to utility to make this work.\r\n  - advance, next, prev, distance, iter_size, swap, indirect_swap\r\n    - note 1: i've hijacked std::advance for pointers since it is not constexpr\r\n    - note 2: for the test iterators I have to define advance overloads that forward\r\n      to range-v3 ones. I think it would be better to allow customizing advance's implementation\r\n      via a different name (e.g. advance_customization_point), and not import std::advance at all. \r\n    - note 3: std::swap is not constexpr so it is not imported any more. I've adapted libc++ \r\n      implementation instead.\r\n  - front, back, empty, size, at\r\n\r\n- adds constexpr tests to test/constexpr_core.cpp\r\n   - test iterators are constexpr\r\n   - array, C-Arrays, and std::initializer_lists are tested. view::iota tests can be added in the future.\r\n\r\n- adds utilities: array, reverse_iterator, address_of\r\n  - note 1: array is used only for testing but is useful on its own. It uses some algorithms \r\n    that are not constexpr yet (I left those functions marked as constexpr tho).\r\n  - note 2: the address_of utility is used already, but it will also be useful later\r\n    when relaxed constexpr support is added to variant.\r\n- fix: missing include in front/back.hpp\r\n- fix: bug with std::rbegin for initializer_list\r\n  - maybe importing rbegin/rend should be removed, since i've hijacked them anyways.\r\n- fix: remove c++1y test for view::join, it is already tested in C++14 mode.","created_at":"2015-04-28T15:12:42Z","updated_at":"2015-04-28T17:03:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0e486b3f474cac830c42886c1ae8db50472119bc","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ericniebler/range-v3/pulls/139/commits","review_comments_url":"https://api.github.com/repos/ericniebler/range-v3/pulls/139/comments","review_comment_url":"https://api.github.com/repos/ericniebler/range-v3/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ericniebler/range-v3/issues/139/comments","statuses_url":"https://api.github.com/repos/ericniebler/range-v3/statuses/9afa159520c87be70d3c717b6619b8583ee310a0","head":{"label":"gnzlbg:core_cxx14","ref":"core_cxx14","sha":"9afa159520c87be70d3c717b6619b8583ee310a0","user":{"login":"gnzlbg","id":904614,"avatar_url":"https://avatars.githubusercontent.com/u/904614?v=3","gravatar_id":"","url":"https://api.github.com/users/gnzlbg","html_url":"https://github.com/gnzlbg","followers_url":"https://api.github.com/users/gnzlbg/followers","following_url":"https://api.github.com/users/gnzlbg/following{/other_user}","gists_url":"https://api.github.com/users/gnzlbg/gists{/gist_id}","starred_url":"https://api.github.com/users/gnzlbg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gnzlbg/subscriptions","organizations_url":"https://api.github.com/users/gnzlbg/orgs","repos_url":"https://api.github.com/users/gnzlbg/repos","events_url":"https://api.github.com/users/gnzlbg/events{/privacy}","received_events_url":"https://api.github.com/users/gnzlbg/received_events","type":"User","site_admin":false},"repo":{"id":33306276,"name":"range-v3","full_name":"gnzlbg/range-v3","owner":{"login":"gnzlbg","id":904614,"avatar_url":"https://avatars.githubusercontent.com/u/904614?v=3","gravatar_id":"","url":"https://api.github.com/users/gnzlbg","html_url":"https://github.com/gnzlbg","followers_url":"https://api.github.com/users/gnzlbg/followers","following_url":"https://api.github.com/users/gnzlbg/following{/other_user}","gists_url":"https://api.github.com/users/gnzlbg/gists{/gist_id}","starred_url":"https://api.github.com/users/gnzlbg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gnzlbg/subscriptions","organizations_url":"https://api.github.com/users/gnzlbg/orgs","repos_url":"https://api.github.com/users/gnzlbg/repos","events_url":"https://api.github.com/users/gnzlbg/events{/privacy}","received_events_url":"https://api.github.com/users/gnzlbg/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/gnzlbg/range-v3","description":"Experimental range library for C++11/14/17","fork":true,"url":"https://api.github.com/repos/gnzlbg/range-v3","forks_url":"https://api.github.com/repos/gnzlbg/range-v3/forks","keys_url":"https://api.github.com/repos/gnzlbg/range-v3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gnzlbg/range-v3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gnzlbg/range-v3/teams","hooks_url":"https://api.github.com/repos/gnzlbg/range-v3/hooks","issue_events_url":"https://api.github.com/repos/gnzlbg/range-v3/issues/events{/number}","events_url":"https://api.github.com/repos/gnzlbg/range-v3/events","assignees_url":"https://api.github.com/repos/gnzlbg/range-v3/assignees{/user}","branches_url":"https://api.github.com/repos/gnzlbg/range-v3/branches{/branch}","tags_url":"https://api.github.com/repos/gnzlbg/range-v3/tags","blobs_url":"https://api.github.com/repos/gnzlbg/range-v3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gnzlbg/range-v3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gnzlbg/range-v3/git/refs{/sha}","trees_url":"https://api.github.com/repos/gnzlbg/range-v3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gnzlbg/range-v3/statuses/{sha}","languages_url":"https://api.github.com/repos/gnzlbg/range-v3/languages","stargazers_url":"https://api.github.com/repos/gnzlbg/range-v3/stargazers","contributors_url":"https://api.github.com/repos/gnzlbg/range-v3/contributors","subscribers_url":"https://api.github.com/repos/gnzlbg/range-v3/subscribers","subscription_url":"https://api.github.com/repos/gnzlbg/range-v3/subscription","commits_url":"https://api.github.com/repos/gnzlbg/range-v3/commits{/sha}","git_commits_url":"https://api.github.com/repos/gnzlbg/range-v3/git/commits{/sha}","comments_url":"https://api.github.com/repos/gnzlbg/range-v3/comments{/number}","issue_comment_url":"https://api.github.com/repos/gnzlbg/range-v3/issues/comments{/number}","contents_url":"https://api.github.com/repos/gnzlbg/range-v3/contents/{+path}","compare_url":"https://api.github.com/repos/gnzlbg/range-v3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gnzlbg/range-v3/merges","archive_url":"https://api.github.com/repos/gnzlbg/range-v3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gnzlbg/range-v3/downloads","issues_url":"https://api.github.com/repos/gnzlbg/range-v3/issues{/number}","pulls_url":"https://api.github.com/repos/gnzlbg/range-v3/pulls{/number}","milestones_url":"https://api.github.com/repos/gnzlbg/range-v3/milestones{/number}","notifications_url":"https://api.github.com/repos/gnzlbg/range-v3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gnzlbg/range-v3/labels{/name}","releases_url":"https://api.github.com/repos/gnzlbg/range-v3/releases{/id}","created_at":"2015-04-02T11:54:21Z","updated_at":"2015-04-14T13:14:47Z","pushed_at":"2015-04-28T15:28:40Z","git_url":"git://github.com/gnzlbg/range-v3.git","ssh_url":"git@github.com:gnzlbg/range-v3.git","clone_url":"https://github.com/gnzlbg/range-v3.git","svn_url":"https://github.com/gnzlbg/range-v3","homepage":"","size":8937,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ericniebler:master","ref":"master","sha":"5e60f115f90cfd6bec84ba2b29133bce3e36447f","user":{"login":"ericniebler","id":225757,"avatar_url":"https://avatars.githubusercontent.com/u/225757?v=3","gravatar_id":"","url":"https://api.github.com/users/ericniebler","html_url":"https://github.com/ericniebler","followers_url":"https://api.github.com/users/ericniebler/followers","following_url":"https://api.github.com/users/ericniebler/following{/other_user}","gists_url":"https://api.github.com/users/ericniebler/gists{/gist_id}","starred_url":"https://api.github.com/users/ericniebler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ericniebler/subscriptions","organizations_url":"https://api.github.com/users/ericniebler/orgs","repos_url":"https://api.github.com/users/ericniebler/repos","events_url":"https://api.github.com/users/ericniebler/events{/privacy}","received_events_url":"https://api.github.com/users/ericniebler/received_events","type":"User","site_admin":false},"repo":{"id":14305727,"name":"range-v3","full_name":"ericniebler/range-v3","owner":{"login":"ericniebler","id":225757,"avatar_url":"https://avatars.githubusercontent.com/u/225757?v=3","gravatar_id":"","url":"https://api.github.com/users/ericniebler","html_url":"https://github.com/ericniebler","followers_url":"https://api.github.com/users/ericniebler/followers","following_url":"https://api.github.com/users/ericniebler/following{/other_user}","gists_url":"https://api.github.com/users/ericniebler/gists{/gist_id}","starred_url":"https://api.github.com/users/ericniebler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ericniebler/subscriptions","organizations_url":"https://api.github.com/users/ericniebler/orgs","repos_url":"https://api.github.com/users/ericniebler/repos","events_url":"https://api.github.com/users/ericniebler/events{/privacy}","received_events_url":"https://api.github.com/users/ericniebler/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ericniebler/range-v3","description":"Experimental range library for C++11/14/17","fork":false,"url":"https://api.github.com/repos/ericniebler/range-v3","forks_url":"https://api.github.com/repos/ericniebler/range-v3/forks","keys_url":"https://api.github.com/repos/ericniebler/range-v3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ericniebler/range-v3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ericniebler/range-v3/teams","hooks_url":"https://api.github.com/repos/ericniebler/range-v3/hooks","issue_events_url":"https://api.github.com/repos/ericniebler/range-v3/issues/events{/number}","events_url":"https://api.github.com/repos/ericniebler/range-v3/events","assignees_url":"https://api.github.com/repos/ericniebler/range-v3/assignees{/user}","branches_url":"https://api.github.com/repos/ericniebler/range-v3/branches{/branch}","tags_url":"https://api.github.com/repos/ericniebler/range-v3/tags","blobs_url":"https://api.github.com/repos/ericniebler/range-v3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ericniebler/range-v3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ericniebler/range-v3/git/refs{/sha}","trees_url":"https://api.github.com/repos/ericniebler/range-v3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ericniebler/range-v3/statuses/{sha}","languages_url":"https://api.github.com/repos/ericniebler/range-v3/languages","stargazers_url":"https://api.github.com/repos/ericniebler/range-v3/stargazers","contributors_url":"https://api.github.com/repos/ericniebler/range-v3/contributors","subscribers_url":"https://api.github.com/repos/ericniebler/range-v3/subscribers","subscription_url":"https://api.github.com/repos/ericniebler/range-v3/subscription","commits_url":"https://api.github.com/repos/ericniebler/range-v3/commits{/sha}","git_commits_url":"https://api.github.com/repos/ericniebler/range-v3/git/commits{/sha}","comments_url":"https://api.github.com/repos/ericniebler/range-v3/comments{/number}","issue_comment_url":"https://api.github.com/repos/ericniebler/range-v3/issues/comments{/number}","contents_url":"https://api.github.com/repos/ericniebler/range-v3/contents/{+path}","compare_url":"https://api.github.com/repos/ericniebler/range-v3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ericniebler/range-v3/merges","archive_url":"https://api.github.com/repos/ericniebler/range-v3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ericniebler/range-v3/downloads","issues_url":"https://api.github.com/repos/ericniebler/range-v3/issues{/number}","pulls_url":"https://api.github.com/repos/ericniebler/range-v3/pulls{/number}","milestones_url":"https://api.github.com/repos/ericniebler/range-v3/milestones{/number}","notifications_url":"https://api.github.com/repos/ericniebler/range-v3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ericniebler/range-v3/labels{/name}","releases_url":"https://api.github.com/repos/ericniebler/range-v3/releases{/id}","created_at":"2013-11-11T16:05:48Z","updated_at":"2015-04-28T05:38:57Z","pushed_at":"2015-04-28T15:28:40Z","git_url":"git://github.com/ericniebler/range-v3.git","ssh_url":"git@github.com:ericniebler/range-v3.git","clone_url":"https://github.com/ericniebler/range-v3.git","svn_url":"https://github.com/ericniebler/range-v3","homepage":"","size":11883,"stargazers_count":230,"watchers_count":230,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":35,"mirror_url":null,"open_issues_count":10,"forks":35,"open_issues":10,"watchers":230,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ericniebler/range-v3/pulls/139"},"html":{"href":"https://github.com/ericniebler/range-v3/pull/139"},"issue":{"href":"https://api.github.com/repos/ericniebler/range-v3/issues/139"},"comments":{"href":"https://api.github.com/repos/ericniebler/range-v3/issues/139/comments"},"review_comments":{"href":"https://api.github.com/repos/ericniebler/range-v3/pulls/139/comments"},"review_comment":{"href":"https://api.github.com/repos/ericniebler/range-v3/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ericniebler/range-v3/pulls/139/commits"},"statuses":{"href":"https://api.github.com/repos/ericniebler/range-v3/statuses/9afa159520c87be70d3c717b6619b8583ee310a0"}}}}