C ++如何防止在编译时调用一个以上的方法?

问题描述 投票:1回答:1

我有一个方法,我想强迫用户在编译时最后调用它。当前,我有一个正确的实现,但是对于运行时执行很有用。

是否有一种干净的方法可以在编译时检查此问题(只需一次调用)?

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!");
    }
}

提前感谢。

c++ g++ compile-time error-checking
1个回答
0
投票

是否有一种干净的方法可以在编译时检查此问题(只需一次调用)?

编号

确定set_logging_type()被调用多少次(或根本不被调用)等效于halting problem,因此不确定(通常)。

© www.soinside.com 2019 - 2024. All rights reserved.