{"action":"created","issue":{"url":"https://api.github.com/repos/boostorg/geometry/issues/306","labels_url":"https://api.github.com/repos/boostorg/geometry/issues/306/labels{/name}","comments_url":"https://api.github.com/repos/boostorg/geometry/issues/306/comments","events_url":"https://api.github.com/repos/boostorg/geometry/issues/306/events","html_url":"https://github.com/boostorg/geometry/pull/306","id":86144417,"number":306,"title":"Replace BOOST_ASSERT with BOOST_GEOMETRY_ASSERT","user":{"login":"awulkiew","id":1226951,"avatar_url":"https://avatars.githubusercontent.com/u/1226951?v=3","gravatar_id":"","url":"https://api.github.com/users/awulkiew","html_url":"https://github.com/awulkiew","followers_url":"https://api.github.com/users/awulkiew/followers","following_url":"https://api.github.com/users/awulkiew/following{/other_user}","gists_url":"https://api.github.com/users/awulkiew/gists{/gist_id}","starred_url":"https://api.github.com/users/awulkiew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awulkiew/subscriptions","organizations_url":"https://api.github.com/users/awulkiew/orgs","repos_url":"https://api.github.com/users/awulkiew/repos","events_url":"https://api.github.com/users/awulkiew/events{/privacy}","received_events_url":"https://api.github.com/users/awulkiew/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-06-08T11:50:14Z","updated_at":"2015-06-08T17:23:41Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/boostorg/geometry/pulls/306","html_url":"https://github.com/boostorg/geometry/pull/306","diff_url":"https://github.com/boostorg/geometry/pull/306.diff","patch_url":"https://github.com/boostorg/geometry/pull/306.patch"},"body":"This allows to implement user-defined assertion failure handling mechanism specifically for Boost.Geometry assertions, e.g. to replace it with exception throw and/or logging or custom terminate, etc. The implementation is similar to the one in Boost.Assert so interested users should be familiar with it."},"comment":{"url":"https://api.github.com/repos/boostorg/geometry/issues/comments/110082700","html_url":"https://github.com/boostorg/geometry/pull/306#issuecomment-110082700","issue_url":"https://api.github.com/repos/boostorg/geometry/issues/306","id":110082700,"user":{"login":"awulkiew","id":1226951,"avatar_url":"https://avatars.githubusercontent.com/u/1226951?v=3","gravatar_id":"","url":"https://api.github.com/users/awulkiew","html_url":"https://github.com/awulkiew","followers_url":"https://api.github.com/users/awulkiew/followers","following_url":"https://api.github.com/users/awulkiew/following{/other_user}","gists_url":"https://api.github.com/users/awulkiew/gists{/gist_id}","starred_url":"https://api.github.com/users/awulkiew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awulkiew/subscriptions","organizations_url":"https://api.github.com/users/awulkiew/orgs","repos_url":"https://api.github.com/users/awulkiew/repos","events_url":"https://api.github.com/users/awulkiew/events{/privacy}","received_events_url":"https://api.github.com/users/awulkiew/received_events","type":"User","site_admin":false},"created_at":"2015-06-08T17:23:41Z","updated_at":"2015-06-08T17:23:41Z","body":"@mkaravel I think that if a function definition was defined as inline function in the same file that includes Boost.Geometry headers then the function would be inlined. And AFAIU the forward declaration is here in order to generate an error message during the linking phase.\r\n\r\nWe could of course always assume that the required functions were declared before the `core/asert.hpp` header was included however this could be confusing and less flexible. Since now the user could define the handler function in a separate unit.\r\n\r\nAnother alternative would be to define the macros only if they were not defined before. But I don't consider it as being safe enough.\r\n\r\nOf course I'll create a test throwing exceptions."}}