This makes me sad.
| C++26 feature | Paper(s) | GCC libstdc++ | Clang libc++ | MSVC STL | Apple Clang* |
|---|---|---|---|---|---|
| Runtime format strings (FTM) | P2918R2 | 14 | 18 | ?????? | 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