Thanks for reaching out.
MSVC prints decorated (mangled) symbols, and with linker optimizations like identical COMDAT folding (ICF) the reported name can be internal or folded and not resemble your source function. This happens a lot with templates, where multiple instantiations can compile to identical code. Temporarily build with /OPT:NOICF (and if needed /OPT:NOREF) to get clearer symbols while you diagnose. Use undname.exe to demangle, and enable /VERBOSE or /MAP for more link diagnostics. The fix is usually to make the template definition visible in the TU that uses it (move definitions into the header or explicitly instantiate required types), and ensure the object/library with the definition is actually linked. References: Microsoft docs on LNK2019 and decorated names; linker /OPT optimizations; Raymond Chen’s write‑up on ICF and why debuggers show confusing functions.
Let me know if the issue persists after following these steps. I’ll be happy to assist further if needed.
If the issue has been resolved, Kindly mark the provided solution as "Accept Answer", so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.