/
Ant010ff
/
ffpp
Обзор
Документация
Войти
/
Ant010ff
/
ffpp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
include/queueconcept.hpp
55 строк
1 KB
Ant010ff
Version 2.11.3.
08 авг 2026, 16:44
08 авг 2026, 16:44
fd187d3
Код
Авторство
О чём код?
/* This header is part of a Functional Flow Processing Primitives (FFPP) library, version 2.11.3. Official repository: https://gitlab.com/ant010ff/ffpp Licensed under the MIT License <http://opensource.org/licenses/MIT>. SPDX-License-Identifier: MIT Copyright (c) 2021 - 2026 Anton Nasonov <ant010fff @ gmail . com>. */ #ifndef FFPP_QUEUE_CONCEPT_HPP #define FFPP_QUEUE_CONCEPT_HPP namespace FFPP::Concepts { template<typename TPolicy> concept QueuePolicy = ResourcePolicy<typename TPolicy::ResourcePolicyT> && Lockable<typename TPolicy::LockableT> ; template<typename TQueue> concept Queue = QueuePolicy<typename TQueue::PolicyT> && requires { typename TQueue::PolicyT; typename TQueue::ResourcePolicyT; typename TQueue::ValueT; } && requires { TQueue::c_nInvalidLimit; } && requires { TQueue(); TQueue(size_t(1)); } && requires(TQueue* pQueue, typename TQueue::ValueT&& vEnqueue, bool bObligate) { { pQueue->Enqueue(std::move(vEnqueue), bObligate) } -> std::same_as<bool>; } && requires(TQueue* pQueue, typename TQueue::ValueT& vDequeued) { { pQueue->Dequeue(vDequeued) } -> std::same_as<bool>; } && requires(TQueue* pQueue, size_t nLimit) { { pQueue->Limit(nLimit) } -> std::same_as<size_t>; { pQueue->Limit() } -> std::same_as<size_t>; } && requires(TQueue* pQueue) { { pQueue->Size() } -> std::same_as<size_t>; { pQueue->Empty() } -> std::same_as<bool>; } ; }//FFPP::Concepts #endif//FFPP_QUEUE_CONCEPT_HPP