是否可以从 cpp 模块导出 constexpr 函数指针?

Should it be possible to export a constexpr function pointer from a cpp module?

我正在尝试从 cpp 模块导出 constexpr 函数指针,但是 Visual Studio(16.9.0 预览版 4.0)给我一个内部编译器错误。当我删除第二个 constexpr 时,一切正常。我是否在尝试做一些不允许的事情?

export module MyModule;

constexpr int twice(int x)
{
    return x * 2;
}

export namespace my
{
    constexpr int (*func)(int) = &twice;
}

这段代码是有效的:大概 MSVC 被与 const 变量关联的默认 internal 链接混淆了,但这不适用于 exported变量。 (它根本不应该应用于可导入的模块单元,因为允许多次包含命名常量的历史原因在那里不适用。我可能会提出一个问题。)