{"action":"created","comment":{"url":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls/comments/50619016","id":50619016,"diff_hunk":"@@ -0,0 +1,192 @@\n+/*\n+ * ctor_dtor.hpp\n+ *\n+ *  Created on: 19.10.2015\n+ *      Author: Klemens\n+ */\n+\n+#ifndef INCLUDE_BOOST_DLL_DETAIL_CTOR_DTOR_HPP_\n+#define INCLUDE_BOOST_DLL_DETAIL_CTOR_DTOR_HPP_\n+\n+#include <boost/config.hpp>\n+#include <boost/function.hpp>\n+#include <boost/dll/detail/mem_fn_cast.hpp>\n+\n+#if defined(BOOST_MSVC) || defined(BOOST_MSVC_VER)\n+#include <boost/dll/detail/demangling/msvc.hpp>\n+#else\n+#include <boost/dll/detail/demangling/itanium.hpp>\n+#endif\n+\n+namespace boost\n+{\n+namespace dll\n+{\n+\n+namespace detail\n+{\n+\n+template<typename Signature>\n+struct ctor_t {};\n+\n+template<typename Class, typename ...Args>\n+struct ctor_t<Class(Args...)>\n+{\n+\ttypedef void(Class::*mem_fn)(Args...) ;\n+\ttypedef Class*(*pln_fn)(Args...) ;\n+\ttypedef boost::function<void(Class * const, Args...)> standard;\n+\ttypedef boost::function<Class * (Args...)> allocating;\n+\n+};\n+\n+}\n+\n+template<typename Signature>\n+struct constructor\n+{\n+\ttypedef BOOST_DEDUCED_TYPENAME detail::ctor_t<Signature>::standard   standard_t;\n+\ttypedef BOOST_DEDUCED_TYPENAME detail::ctor_t<Signature>::allocating allocating_t;\n+\n+\tconst standard_t standard;\n+\tconst allocating_t allocating;\n+\n+\tbool has_allocating() const { return allocating; }\n+\n+\tbool is_empty() const { return !allocating; }\n+\toperator bool() const { return allocating; }\n+\tconstructor() = delete;\n+\tconstructor(const constructor &) = default;\n+\n+\tconstructor(const standard_t & standard)\n+\t\t\t\t: standard(standard) {}\n+\n+\tconstructor(const standard_t & standard, const allocating_t & allocating )\n+\t\t\t\t: standard(standard), allocating(allocating) {}\n+\n+};\n+\n+template<typename Class>\n+struct destructor\n+{\n+\ttypedef boost::function<void(Class* const)> type;\n+\n+\tconst type standard;\n+\tconst type deleting;\n+\n+\tbool has_deleting() const { return deleting; }\n+\n+\tbool is_empty() const { return !deleting; }\n+\toperator bool() const { return deleting; }\n+\tdestructor() = delete;\n+\tdestructor(const destructor &) = default;\n+\n+\tdestructor(const type & standard)","path":"include/boost/dll/detail/ctor_dtor.hpp","position":83,"original_position":83,"commit_id":"9ff57e7a47210bd8d52285433cdc1a21de0dacf8","original_commit_id":"9ff57e7a47210bd8d52285433cdc1a21de0dacf8","user":{"login":"apolukhin","id":1700098,"avatar_url":"https://avatars.githubusercontent.com/u/1700098?v=3","gravatar_id":"","url":"https://api.github.com/users/apolukhin","html_url":"https://github.com/apolukhin","followers_url":"https://api.github.com/users/apolukhin/followers","following_url":"https://api.github.com/users/apolukhin/following{/other_user}","gists_url":"https://api.github.com/users/apolukhin/gists{/gist_id}","starred_url":"https://api.github.com/users/apolukhin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apolukhin/subscriptions","organizations_url":"https://api.github.com/users/apolukhin/orgs","repos_url":"https://api.github.com/users/apolukhin/repos","events_url":"https://api.github.com/users/apolukhin/events{/privacy}","received_events_url":"https://api.github.com/users/apolukhin/received_events","type":"User","site_admin":false},"body":"`explicit destructor(const type & standard)`","created_at":"2016-01-23T10:54:12Z","updated_at":"2016-01-23T10:54:12Z","html_url":"https://github.com/apolukhin/Boost.DLL/pull/17#discussion_r50619016","pull_request_url":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls/17","_links":{"self":{"href":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls/comments/50619016"},"html":{"href":"https://github.com/apolukhin/Boost.DLL/pull/17#discussion_r50619016"},"pull_request":{"href":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls/17"}}},"pull_request":{"url":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls/17","id":56822596,"html_url":"https://github.com/apolukhin/Boost.DLL/pull/17","diff_url":"https://github.com/apolukhin/Boost.DLL/pull/17.diff","patch_url":"https://github.com/apolukhin/Boost.DLL/pull/17.patch","issue_url":"https://api.github.com/repos/apolukhin/Boost.DLL/issues/17","number":17,"state":"open","locked":false,"title":"Smart Library","user":{"login":"klemens-morgenstern","id":8020376,"avatar_url":"https://avatars.githubusercontent.com/u/8020376?v=3","gravatar_id":"","url":"https://api.github.com/users/klemens-morgenstern","html_url":"https://github.com/klemens-morgenstern","followers_url":"https://api.github.com/users/klemens-morgenstern/followers","following_url":"https://api.github.com/users/klemens-morgenstern/following{/other_user}","gists_url":"https://api.github.com/users/klemens-morgenstern/gists{/gist_id}","starred_url":"https://api.github.com/users/klemens-morgenstern/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/klemens-morgenstern/subscriptions","organizations_url":"https://api.github.com/users/klemens-morgenstern/orgs","repos_url":"https://api.github.com/users/klemens-morgenstern/repos","events_url":"https://api.github.com/users/klemens-morgenstern/events{/privacy}","received_events_url":"https://api.github.com/users/klemens-morgenstern/received_events","type":"User","site_admin":false},"body":"Ok, that went faster then expected.\r\n\r\nSo the tests work locally with MSVC 14.0 and Gcc 5.2.\r\nIt would be very helpful if you could look over this, even though there's no documentation provided (yet). If you think the design would basically work I'll start writing documentation. I think the two tests will probably show enough of the way it works.\r\n\r\nI do however have a problem to set up the build system so it works correclty with travis, so that still fails.","created_at":"2016-01-21T22:56:36Z","updated_at":"2016-01-23T10:54:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f45c3a522dbeebf50fc410fd0a9cd4b86b21a497","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls/17/commits","review_comments_url":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls/17/comments","review_comment_url":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls/comments{/number}","comments_url":"https://api.github.com/repos/apolukhin/Boost.DLL/issues/17/comments","statuses_url":"https://api.github.com/repos/apolukhin/Boost.DLL/statuses/9ff57e7a47210bd8d52285433cdc1a21de0dacf8","head":{"label":"klemens-morgenstern:develop","ref":"develop","sha":"9ff57e7a47210bd8d52285433cdc1a21de0dacf8","user":{"login":"klemens-morgenstern","id":8020376,"avatar_url":"https://avatars.githubusercontent.com/u/8020376?v=3","gravatar_id":"","url":"https://api.github.com/users/klemens-morgenstern","html_url":"https://github.com/klemens-morgenstern","followers_url":"https://api.github.com/users/klemens-morgenstern/followers","following_url":"https://api.github.com/users/klemens-morgenstern/following{/other_user}","gists_url":"https://api.github.com/users/klemens-morgenstern/gists{/gist_id}","starred_url":"https://api.github.com/users/klemens-morgenstern/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/klemens-morgenstern/subscriptions","organizations_url":"https://api.github.com/users/klemens-morgenstern/orgs","repos_url":"https://api.github.com/users/klemens-morgenstern/repos","events_url":"https://api.github.com/users/klemens-morgenstern/events{/privacy}","received_events_url":"https://api.github.com/users/klemens-morgenstern/received_events","type":"User","site_admin":false},"repo":{"id":43506305,"name":"Boost.DLL","full_name":"klemens-morgenstern/Boost.DLL","owner":{"login":"klemens-morgenstern","id":8020376,"avatar_url":"https://avatars.githubusercontent.com/u/8020376?v=3","gravatar_id":"","url":"https://api.github.com/users/klemens-morgenstern","html_url":"https://github.com/klemens-morgenstern","followers_url":"https://api.github.com/users/klemens-morgenstern/followers","following_url":"https://api.github.com/users/klemens-morgenstern/following{/other_user}","gists_url":"https://api.github.com/users/klemens-morgenstern/gists{/gist_id}","starred_url":"https://api.github.com/users/klemens-morgenstern/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/klemens-morgenstern/subscriptions","organizations_url":"https://api.github.com/users/klemens-morgenstern/orgs","repos_url":"https://api.github.com/users/klemens-morgenstern/repos","events_url":"https://api.github.com/users/klemens-morgenstern/events{/privacy}","received_events_url":"https://api.github.com/users/klemens-morgenstern/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/klemens-morgenstern/Boost.DLL","description":"Library for comfortable work with DLL and DSO","fork":true,"url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL","forks_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/forks","keys_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/keys{/key_id}","collaborators_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/teams","hooks_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/hooks","issue_events_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/issues/events{/number}","events_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/events","assignees_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/assignees{/user}","branches_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/branches{/branch}","tags_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/tags","blobs_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/git/refs{/sha}","trees_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/git/trees{/sha}","statuses_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/statuses/{sha}","languages_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/languages","stargazers_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/stargazers","contributors_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/contributors","subscribers_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/subscribers","subscription_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/subscription","commits_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/commits{/sha}","git_commits_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/git/commits{/sha}","comments_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/comments{/number}","issue_comment_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/issues/comments{/number}","contents_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/contents/{+path}","compare_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/compare/{base}...{head}","merges_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/merges","archive_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/downloads","issues_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/issues{/number}","pulls_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/pulls{/number}","milestones_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/milestones{/number}","notifications_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/labels{/name}","releases_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/releases{/id}","deployments_url":"https://api.github.com/repos/klemens-morgenstern/Boost.DLL/deployments","created_at":"2015-10-01T16:03:53Z","updated_at":"2015-10-01T16:03:54Z","pushed_at":"2016-01-22T07:29:09Z","git_url":"git://github.com/klemens-morgenstern/Boost.DLL.git","ssh_url":"git@github.com:klemens-morgenstern/Boost.DLL.git","clone_url":"https://github.com/klemens-morgenstern/Boost.DLL.git","svn_url":"https://github.com/klemens-morgenstern/Boost.DLL","homepage":null,"size":1894,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"apolukhin:develop","ref":"develop","sha":"aa82c1f6e6b3a1ec059c90307d24785ce5e5e658","user":{"login":"apolukhin","id":1700098,"avatar_url":"https://avatars.githubusercontent.com/u/1700098?v=3","gravatar_id":"","url":"https://api.github.com/users/apolukhin","html_url":"https://github.com/apolukhin","followers_url":"https://api.github.com/users/apolukhin/followers","following_url":"https://api.github.com/users/apolukhin/following{/other_user}","gists_url":"https://api.github.com/users/apolukhin/gists{/gist_id}","starred_url":"https://api.github.com/users/apolukhin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apolukhin/subscriptions","organizations_url":"https://api.github.com/users/apolukhin/orgs","repos_url":"https://api.github.com/users/apolukhin/repos","events_url":"https://api.github.com/users/apolukhin/events{/privacy}","received_events_url":"https://api.github.com/users/apolukhin/received_events","type":"User","site_admin":false},"repo":{"id":22644101,"name":"Boost.DLL","full_name":"apolukhin/Boost.DLL","owner":{"login":"apolukhin","id":1700098,"avatar_url":"https://avatars.githubusercontent.com/u/1700098?v=3","gravatar_id":"","url":"https://api.github.com/users/apolukhin","html_url":"https://github.com/apolukhin","followers_url":"https://api.github.com/users/apolukhin/followers","following_url":"https://api.github.com/users/apolukhin/following{/other_user}","gists_url":"https://api.github.com/users/apolukhin/gists{/gist_id}","starred_url":"https://api.github.com/users/apolukhin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apolukhin/subscriptions","organizations_url":"https://api.github.com/users/apolukhin/orgs","repos_url":"https://api.github.com/users/apolukhin/repos","events_url":"https://api.github.com/users/apolukhin/events{/privacy}","received_events_url":"https://api.github.com/users/apolukhin/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/apolukhin/Boost.DLL","description":"Library for comfortable work with DLL and DSO","fork":false,"url":"https://api.github.com/repos/apolukhin/Boost.DLL","forks_url":"https://api.github.com/repos/apolukhin/Boost.DLL/forks","keys_url":"https://api.github.com/repos/apolukhin/Boost.DLL/keys{/key_id}","collaborators_url":"https://api.github.com/repos/apolukhin/Boost.DLL/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/apolukhin/Boost.DLL/teams","hooks_url":"https://api.github.com/repos/apolukhin/Boost.DLL/hooks","issue_events_url":"https://api.github.com/repos/apolukhin/Boost.DLL/issues/events{/number}","events_url":"https://api.github.com/repos/apolukhin/Boost.DLL/events","assignees_url":"https://api.github.com/repos/apolukhin/Boost.DLL/assignees{/user}","branches_url":"https://api.github.com/repos/apolukhin/Boost.DLL/branches{/branch}","tags_url":"https://api.github.com/repos/apolukhin/Boost.DLL/tags","blobs_url":"https://api.github.com/repos/apolukhin/Boost.DLL/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/apolukhin/Boost.DLL/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/apolukhin/Boost.DLL/git/refs{/sha}","trees_url":"https://api.github.com/repos/apolukhin/Boost.DLL/git/trees{/sha}","statuses_url":"https://api.github.com/repos/apolukhin/Boost.DLL/statuses/{sha}","languages_url":"https://api.github.com/repos/apolukhin/Boost.DLL/languages","stargazers_url":"https://api.github.com/repos/apolukhin/Boost.DLL/stargazers","contributors_url":"https://api.github.com/repos/apolukhin/Boost.DLL/contributors","subscribers_url":"https://api.github.com/repos/apolukhin/Boost.DLL/subscribers","subscription_url":"https://api.github.com/repos/apolukhin/Boost.DLL/subscription","commits_url":"https://api.github.com/repos/apolukhin/Boost.DLL/commits{/sha}","git_commits_url":"https://api.github.com/repos/apolukhin/Boost.DLL/git/commits{/sha}","comments_url":"https://api.github.com/repos/apolukhin/Boost.DLL/comments{/number}","issue_comment_url":"https://api.github.com/repos/apolukhin/Boost.DLL/issues/comments{/number}","contents_url":"https://api.github.com/repos/apolukhin/Boost.DLL/contents/{+path}","compare_url":"https://api.github.com/repos/apolukhin/Boost.DLL/compare/{base}...{head}","merges_url":"https://api.github.com/repos/apolukhin/Boost.DLL/merges","archive_url":"https://api.github.com/repos/apolukhin/Boost.DLL/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/apolukhin/Boost.DLL/downloads","issues_url":"https://api.github.com/repos/apolukhin/Boost.DLL/issues{/number}","pulls_url":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls{/number}","milestones_url":"https://api.github.com/repos/apolukhin/Boost.DLL/milestones{/number}","notifications_url":"https://api.github.com/repos/apolukhin/Boost.DLL/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/apolukhin/Boost.DLL/labels{/name}","releases_url":"https://api.github.com/repos/apolukhin/Boost.DLL/releases{/id}","deployments_url":"https://api.github.com/repos/apolukhin/Boost.DLL/deployments","created_at":"2014-08-05T13:17:12Z","updated_at":"2016-01-13T20:28:24Z","pushed_at":"2016-01-21T23:14:42Z","git_url":"git://github.com/apolukhin/Boost.DLL.git","ssh_url":"git@github.com:apolukhin/Boost.DLL.git","clone_url":"https://github.com/apolukhin/Boost.DLL.git","svn_url":"https://github.com/apolukhin/Boost.DLL","homepage":null,"size":2049,"stargazers_count":46,"watchers_count":46,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":16,"mirror_url":null,"open_issues_count":2,"forks":16,"open_issues":2,"watchers":46,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls/17"},"html":{"href":"https://github.com/apolukhin/Boost.DLL/pull/17"},"issue":{"href":"https://api.github.com/repos/apolukhin/Boost.DLL/issues/17"},"comments":{"href":"https://api.github.com/repos/apolukhin/Boost.DLL/issues/17/comments"},"review_comments":{"href":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls/17/comments"},"review_comment":{"href":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/apolukhin/Boost.DLL/pulls/17/commits"},"statuses":{"href":"https://api.github.com/repos/apolukhin/Boost.DLL/statuses/9ff57e7a47210bd8d52285433cdc1a21de0dacf8"}}}}