{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/GSL/issues/135","labels_url":"https://api.github.com/repos/Microsoft/GSL/issues/135/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/GSL/issues/135/comments","events_url":"https://api.github.com/repos/Microsoft/GSL/issues/135/events","html_url":"https://github.com/Microsoft/GSL/issues/135","id":110635387,"number":135,"title":"array_view not possible with incomplete Classes","user":{"login":"nolange","id":7605849,"avatar_url":"https://avatars.githubusercontent.com/u/7605849?v=3","gravatar_id":"","url":"https://api.github.com/users/nolange","html_url":"https://github.com/nolange","followers_url":"https://api.github.com/users/nolange/followers","following_url":"https://api.github.com/users/nolange/following{/other_user}","gists_url":"https://api.github.com/users/nolange/gists{/gist_id}","starred_url":"https://api.github.com/users/nolange/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nolange/subscriptions","organizations_url":"https://api.github.com/users/nolange/orgs","repos_url":"https://api.github.com/users/nolange/repos","events_url":"https://api.github.com/users/nolange/events{/privacy}","received_events_url":"https://api.github.com/users/nolange/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":24,"created_at":"2015-10-09T10:56:27Z","updated_at":"2015-10-09T21:15:37Z","closed_at":null,"body":"Hello,\r\n\r\nI use a small simple class that takes a pointer and a size for wrapping normal arrays, quite the same what array_view is designed to solve in a much more generic fashion.\r\nI found a drawback compared to using a simple class, and that is that array_view does not work with incomplete classes.\r\nI dont know if its possible to fix this via templates specialization and sfinae voodoo, but would be really nice if this use-case is covered aswell\r\n\r\n```c++\r\n#include <array_view.h>\r\nclass CIncomplete;\r\n\r\nvoid foo(gsl::array_view<CIncomplete> s); // OK\r\ngsl::array_view<CIncomplete> s; // Not OK (says clang 3.6 and gcc 5.1 )\r\n```"},"comment":{"url":"https://api.github.com/repos/Microsoft/GSL/issues/comments/146987758","html_url":"https://github.com/Microsoft/GSL/issues/135#issuecomment-146987758","issue_url":"https://api.github.com/repos/Microsoft/GSL/issues/135","id":146987758,"user":{"login":"gdr-at-ms","id":11031650,"avatar_url":"https://avatars.githubusercontent.com/u/11031650?v=3","gravatar_id":"","url":"https://api.github.com/users/gdr-at-ms","html_url":"https://github.com/gdr-at-ms","followers_url":"https://api.github.com/users/gdr-at-ms/followers","following_url":"https://api.github.com/users/gdr-at-ms/following{/other_user}","gists_url":"https://api.github.com/users/gdr-at-ms/gists{/gist_id}","starred_url":"https://api.github.com/users/gdr-at-ms/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gdr-at-ms/subscriptions","organizations_url":"https://api.github.com/users/gdr-at-ms/orgs","repos_url":"https://api.github.com/users/gdr-at-ms/repos","events_url":"https://api.github.com/users/gdr-at-ms/events{/privacy}","received_events_url":"https://api.github.com/users/gdr-at-ms/received_events","type":"User","site_admin":false},"created_at":"2015-10-09T21:15:37Z","updated_at":"2015-10-09T21:15:37Z","body":"@nolange \r\nYou want the interface to be subservient to the implementation.  That is backward."}}