-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Closed
Labels
enhancementSomething can be improvedSomething can be improvedfixedSomething works now, yay!Something works now, yay!
Description
Currently there are (at least) 4 special functions that use unconditional abort/terminate to express that, they are not supposed to be called at runtime, but have to be defined for some reasons:
List
<functional>:
_Func_impl(_no_alloc)::_Target_type when !_HAS_STATIC_RTTI:
Line 756 in f51733c
| _CSTD abort(); |
Line 817 in f51733c
| _CSTD abort(); |
<future>:_Fake_no_copy_callable_adapter's copy constructor:Line 1416 in f51733c
| _STD terminate(); // Very Bad Things |
<xutility>:projected(_Projected_impl)::operator *:Line 887 in f51733c
| _CSTD abort(); |
It's desirable to make them distinct from common noreturn functions, which are to be called to get noreturn behavior purposefully. Further, I think it's also desirable to do this in a unified way. Some questions are:
- Are the intents of these
abort/terminateexactly indentical(Nothing more thanshould not be called at runtime)? - Is
_Fake_no_copy_callable_adapter's usage ofterminatereplaceable withabort? - Is it desirable to replace direct usage of
abortwith a specific utility(like a_MACRO()), to express the intent more clearly? - Is
"abort"preferrable behavior in these conditions? Are there other candidates for it?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementSomething can be improvedSomething can be improvedfixedSomething works now, yay!Something works now, yay!