Crying on the Bleeding Edge

This makes me sad.

C++26 featurePaper(s)GCC libstdc++Clang libc++MSVC STLApple Clang*
Runtime format strings  (FTM)P2918R21418??????16.0.0

See also: Playing the strings: C++20 std::format: Compile-Time vs. Runtime)


This makes me sad.

vulcan_types.cpp

#include <vulkan/vulkan.h>
#include <memory>

int main()
{
    std::unique_ptr<VkBuffer_T> buffer;

    return 0;
}

clang++ -o vulkan_types vulkan_types.cpp

/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/unique_ptr.h:91:16: error: invalid application of 'sizeof' to an incomplete type 'VkBuffer_T'

g++ -o vulkan_types vulkan_types.cpp

/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/unique_ptr.h:91:23: error: invalid application of ‘sizeof’ to incomplete type ‘VkBuffer_T’

cl vulkan_types.cpp /Fe:vulkan_types.exe

C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.44.35207\include\memory(3308): error C2027: use of undefined type 'VkBuffer_T'
C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.44.35207\include\memory(3308): error C2338: static_assert failed: 'can't delete an incomplete type'
C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.44.35207\include\memory(3309): warning C4150: deletion of pointer to incomplete type 'VkBuffer_T'; no destructor called

See also: Vulkan Handle Macros


This makes me sad.

warning: importing an implementation partition unit in a module interface is not recommended. Names from A may not be reachable

See also: [Clang][Module] Miss definition of inline function in implementation partition units #101348

Leave a Reply

Your email address will not be published. Required fields are marked *