C++ 如何防止在编译时调用多个方法?
C++ how to prevent invoking a method more than one in Compile-time?
我有一个方法,我想强制用户在编译时最后一次调用它。
目前我有一个正确的实现,但它对运行时执行很有用。
有没有一种干净的方法可以在编译时检查这个问题(只需调用一次)?
static void set_logging_type(LOG_TYPE type)
{
static bool select_type_done{false};
if (!select_type_done)
{
log_type = type;
select_type_done = true;
return;
}
else
{
throw std::runtime_error("logging type is selected before!");
}
}
提前致谢。
Is there a clean way to checking this problem (just one time calling) in compile-time?
没有
确定set_logging_type()
被调用了多少次(或是否被调用)等同于halting problem,因此不可判定(通常)。
我有一个方法,我想强制用户在编译时最后一次调用它。 目前我有一个正确的实现,但它对运行时执行很有用。
有没有一种干净的方法可以在编译时检查这个问题(只需调用一次)?
static void set_logging_type(LOG_TYPE type)
{
static bool select_type_done{false};
if (!select_type_done)
{
log_type = type;
select_type_done = true;
return;
}
else
{
throw std::runtime_error("logging type is selected before!");
}
}
提前致谢。
Is there a clean way to checking this problem (just one time calling) in compile-time?
没有
确定set_logging_type()
被调用了多少次(或是否被调用)等同于halting problem,因此不可判定(通常)。