【发布时间】:2018-01-07 05:28:04
【问题描述】:
有没有办法实现自定义类型限定符(类似于 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
}
我想这样做是因为我想确保在特定线程上调用的函数只调用实时安全函数。由于许多应用程序需要硬实时安全线程,因此在编译时有某种方法来检测锁将保证我们不会发生许多难以检测的运行时错误。
【问题讨论】:
-
给语言添加新的关键字,没有没有机会(除非你能说服委员会)。您也许可以使用宏。
-
我想你可能对此感兴趣:Metaclasses: Thoughts on generative C++
-
也许你可以把实时安全的函数声明放在特定的头文件中?
-
是this 你在找什么?访问器类可能很容易解决问题。
标签: c++ compile-time qualifiers