View Issue Details

IDProjectCategoryView StatusLast Update
0005132NoesisGUIUnrealpublic2026-07-16 16:43
ReporterJinFox Assigned To 
PrioritynormalSeveritymajor 
Status newResolutionopen 
Product VersionStudio_Beta 
Summary0005132: [Unreal] Noesis Math.h global E constant collides with Unreal static Method in ShaderPermutation.h using Unity build
Description

Hello,

Our project compiles with the C4459-as-error flag which prevents global scope symbols to be hidden.

It seems that there is a conflict due to the E constant declared in Math.h.
constexpr float E = 2.71828182845904523536028747135266249775724709369996f;

This is triggering an error with Unreal file ShaderPermutation.h as several static method are using E as parameter name in this file (such as static int32 ToDefineValue(Type E)).

A simple solution that I have implemented locally is to rename that constant to something more specific to prevent the conflict from happening by changing it by this line :
constexpr float EulerE = 2.71828182845904523536028747135266249775724709369996f;

Would that be something you would be willing to change in your source or should I keep my source change?
Thank you

PlatformAny

Activities

JinFox

JinFox

2026-07-16 14:57

reporter   ~0012420

As a note, it seems to be a convergence of issue of using unreal's Unity builds and this flag of warning as error. it's not just the E symbol causing the issue by itself

Issue History

Date Modified Username Field Change
2026-07-16 13:43 JinFox New Issue
2026-07-16 14:57 JinFox Note Added: 0012420
2026-07-16 16:43 JinFox Summary Noesis Math.h global E constant collides with Unreal static Method in ShaderPermutation.h => [Unreal] Noesis Math.h global E constant collides with Unreal static Method in ShaderPermutation.h using Unity build