以constexpr和不使用constexpr的形式运行函数

我有一个生成伪随机数的类。

我需要在constexpr函数中运行伪随机数生成器函数(我需要在编译时生成伪随机数生成器函数)以及在运行时

它工作完美,但是我想知道是否有某种方法可以执行以下操作:

我想要一个生成数字的函数,并且我可以告诉我在编译或运行时是否想要它。那是因为如果我写了两个不同的代码,我必须重写两次相同的代码,这使得使用起来不太直观

我已经考虑过使用这样的定义:

#ifdef COMPILETIME
int constexpr function();
#else
int function();
#endif

但所有定义都是全局的。每当我想遍历代码时,我都无法取消定义并重新定义它们

有什么方法可以实现这一目标,还是我永远注定要使用2个单独的功能?

评论