forked from Alepha/Alepha
Avoid type confusion in exceptions.
When creating these typedefs, if we use in-place declared types, we wind up with surprising aliasing of various types, via namespace exposure.
This commit is contained in:
@ -29,15 +29,18 @@ namespace Alepha::Hydrogen::Atomic ::detail:: Mailbox_m
|
||||
const bool debugPop= false or C::debug;
|
||||
}
|
||||
|
||||
|
||||
enum Mailbox_tag {};
|
||||
|
||||
inline namespace exports
|
||||
{
|
||||
template< typename > class Mailbox;
|
||||
|
||||
using MailboxFinishedException= synthetic_exception< struct finished_exception, FinishedException >;
|
||||
using MailboxFinishedException= synthetic_exception< Mailbox_tag, FinishedException >;
|
||||
using AnyTaggedMailboxFinishedException= AnyTagged< MailboxFinishedException >;
|
||||
template< typename tag > using TaggedMailboxFinishedException= Tagged< MailboxFinishedException, tag >;
|
||||
|
||||
using MailboxFinishedCondition= synthetic_exception< struct finished_exception, FinishedCondition, MailboxFinishedException >;
|
||||
using MailboxFinishedCondition= synthetic_exception< Mailbox_tag, FinishedCondition, MailboxFinishedException >;
|
||||
using AnyTaggedMailboxFinishedCondition= AnyTagged< MailboxFinishedCondition >;
|
||||
template< typename tag > using TaggedMailboxFinishedCondition= Tagged< MailboxFinishedCondition, tag >;
|
||||
}
|
||||
@ -74,12 +77,15 @@ namespace Alepha::Hydrogen::Atomic ::detail:: Mailbox_m
|
||||
template< typename Item >
|
||||
class exports::Mailbox
|
||||
{
|
||||
private:
|
||||
enum Finished_tag {};
|
||||
|
||||
public:
|
||||
using FinishedException= synthetic_exception< struct finished_exception, MailboxFinishedException >;
|
||||
using FinishedException= synthetic_exception< Finished_tag, MailboxFinishedException >;
|
||||
//using AnyTaggedFinishedException= AnyTagged< FinishedException >;
|
||||
//template< typename tag > using TaggedFinishedException= Tagged< FinishedException, tag >;
|
||||
|
||||
using FinishedCondition= synthetic_exception< struct finished_exception, MailboxFinishedCondition, FinishedException >;
|
||||
using FinishedCondition= synthetic_exception< Finished_tag, MailboxFinishedCondition, FinishedException >;
|
||||
//using AnyTaggedFinishedCondition= AnyTagged< FinishedCondition >;
|
||||
//template< typename tag > using TaggedFinishedCondition= Tagged< FinishedCondition, tag >;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user