Есть ли способ реализовать спецификатор настраиваемого типа (аналогично const)? Я хотел бы только разрешить вызовы функций функциям, имеющим правильную квалификацию, в пределах функций с одинаковой квалификацией.
Скажем, я бы:
void allowedFunction();
void disallowedFunction();
//Only allowed to call allowed functions.
void foo()
{
allowedFunction();
disallowedFunction(); //Cause compile time error
}
//Is allowed to call any function it wants.
void bar()
{
allowedFunction();
disallowedFunction(); //No error
}
Причина, по которой я хотел бы сделать это, - это то, что я хочу, чтобы функции, вызываемые в определенном потоке, вызывали только функции, гарантирующие в реальном времени. Поскольку для многих приложений требуются жесткие потоки в режиме реального времени, некоторые способы обнаружения блокировок во время компиляции гарантируют нам, что многие трудно обнаружить ошибки времени выполнения не могут произойти.