4#include "Stroika/Foundation/StroikaPreComp.h"
12using namespace Stroika::Foundation::Common::StdCompat;
30 struct OnlyBasicLockable_ {
35 struct LockableButNotTimed_ {
43static_assert (BasicLockable<mutex> and BasicLockable<recursive_mutex> and BasicLockable<timed_mutex> and BasicLockable<shared_mutex> and
44 BasicLockable<unique_lock<mutex>>);
45static_assert (Lockable<mutex> and Lockable<recursive_mutex> and Lockable<timed_mutex> and Lockable<shared_mutex>);
46static_assert (TimedLockable<timed_mutex> and TimedLockable<recursive_timed_mutex>);
47static_assert (TimedMutex<timed_mutex> and TimedMutex<recursive_timed_mutex>);
53static_assert (BasicLockable<OnlyBasicLockable_> and not Lockable<OnlyBasicLockable_>);
54static_assert (Lockable<LockableButNotTimed_> and not TimedLockable<LockableButNotTimed_>);
57static_assert (not BasicLockable<int> and not TimedMutex<int>);