Hi: we have recently updated the Microsoft Visual C++ compiler to give an error if a template parameter is shadowed by a function parameter - previous versions of the compiler did not detect this error, which, in some cases led to a compiler crash. Unfortunately KTL is failing to build with the new compiler because it appears to reference an old (very old?) version of the Windows SDK (and hence the CRT). If we use a new compiler we are seeing the following error:
D:\CoreXTCache\Microsoft.WindowsAzure.DirectDrive.External.Windows.sdk.10.0.14296\inc\crt\wchar.h(642): error C7576: declaration of '_Size' shadows a template parameter
D:\CoreXTCache\Microsoft.WindowsAzure.DirectDrive.External.Windows.sdk.10.0.14296\inc\crt\wchar.h(642): note: see declaration of '_Size'
Hi: we have recently updated the Microsoft Visual C++ compiler to give an error if a template parameter is shadowed by a function parameter - previous versions of the compiler did not detect this error, which, in some cases led to a compiler crash. Unfortunately KTL is failing to build with the new compiler because it appears to reference an old (very old?) version of the Windows SDK (and hence the CRT). If we use a new compiler we are seeing the following error:
D:\CoreXTCache\Microsoft.WindowsAzure.DirectDrive.External.Windows.sdk.10.0.14296\inc\crt\wchar.h(642): error C7576: declaration of '_Size' shadows a template parameter D:\CoreXTCache\Microsoft.WindowsAzure.DirectDrive.External.Windows.sdk.10.0.14296\inc\crt\wchar.h(642): note: see declaration of '_Size'
This is due to this function declaration:
The definition of _cgetws_s should be:
and this is what newer versions of the SDK (and hence the Unified CRT) include.
Thanks Jonathan Caves