首页 > 解决方案 > 如果在 constexpr 函数之前调用非 constexpr 函数会发生什么

问题描述

在我的课程中,在 constexpr 函数之前调用了一个非 constexpr 函数。第一个不能是 constexpr 因为它是一个 API 调用,但我希望在编译时评估第二个。

class MyClass
{
...
int m_val = 0;
constepxr void changeval(int newval) { this.m_val = newval; }
...
MyClass()
{
if(WriteProcessMemory(...)
{
this->changeval(12);
}
}

那么在这种情况下会发生什么?changeval 会被评估两次吗?完全没有被击中吗?是否跳过了包括 WPM 调用在内的整个代码块?

标签: c++

解决方案


推荐阅读