You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Vladimír Vondruš
02a0960d12
Convert all argument / return SFINAE into template argument SFINAE.
...
Similarly as done in Aug 2024 in Corrade. When these were a part of the
function signature, they ended up being encoded into the exported
symbol. There are still cases of StridedArrayView slice() having
enable_if in the signature, which amounts to about 18 kB symbols in all
libMagnum*-d.so libraries, but apart from that this is the state before:
$ strings libMagnum*-d.so | grep enable_if | grep -v slice | wc -c
29591
And this is after. All of those are coming from STL, thus from
old or deprecated APIs that still use std::vector, std::tuple and such,
and from the few std::sort() uses.
$ strings libMagnum*-d.so | grep enable_if | grep -v slice | wc -c
4103
In a non-deprecated build it's just this, which is a 10x reduction.
Can't really do much about these maybe exceút for implementing my own
swap() specializations (sigh?), but I think it's fine.
$ strings libMagnum*-d.so | grep enable_if | grep -v slice | wc -c
2904
I also made it consistently use
typename std::enable_if<..., int>::type = 0
instead of
class = typename std::enable_if<...>::type
because the former works correctly also in presence of overloads and
having it used consistently everywhere makes it easier to grep & change
later. All SFINAE is now also excluded from Doxygen output, because it
doesn't make much sense there. It's better to just explain the
restriction in words than with this nasty hack.
1 year ago
..
Implementation
Convert all argument / return SFINAE into template argument SFINAE.
1 year ago
Test
Here we go again.
1 year ago
Assert.h
Here we go again.
1 year ago
Buffer.cpp
Here we go again.
1 year ago
Buffer.h
Here we go again.
1 year ago
BufferCreateInfo.h
Here we go again.
1 year ago
CMakeLists.txt
Here we go again.
1 year ago
CommandBuffer.cpp
Here we go again.
1 year ago
CommandBuffer.h
Here we go again.
1 year ago
CommandPool.cpp
Here we go again.
1 year ago
CommandPool.h
Here we go again.
1 year ago
CommandPoolCreateInfo.h
Here we go again.
1 year ago
ComputePipelineCreateInfo.h
Here we go again.
1 year ago
DescriptorPool.cpp
Here we go again.
1 year ago
DescriptorPool.h
Here we go again.
1 year ago
DescriptorPoolCreateInfo.h
Here we go again.
1 year ago
DescriptorSet.cpp
Here we go again.
1 year ago
DescriptorSet.h
Here we go again.
1 year ago
DescriptorSetLayout.cpp
Here we go again.
1 year ago
DescriptorSetLayout.h
Here we go again.
1 year ago
DescriptorSetLayoutCreateInfo.h
Here we go again.
1 year ago
DescriptorType.cpp
Here we go again.
1 year ago
DescriptorType.h
Here we go again.
1 year ago
Device.cpp
Here we go again.
1 year ago
Device.h
Here we go again.
1 year ago
DeviceCreateInfo.h
Here we go again.
1 year ago
DeviceFeatures.cpp
Remove Doxygen workarounds from *.cpp files.
1 year ago
DeviceFeatures.h
Here we go again.
1 year ago
DeviceProperties.cpp
Here we go again.
1 year ago
DeviceProperties.h
Here we go again.
1 year ago
Enums.cpp
Here we go again.
1 year ago
Enums.h
Here we go again.
1 year ago
ExtensionProperties.cpp
Here we go again.
1 year ago
ExtensionProperties.h
Here we go again.
1 year ago
Extensions.cpp
Here we go again.
1 year ago
Extensions.h
Convert all argument / return SFINAE into template argument SFINAE.
1 year ago
Fence.cpp
Here we go again.
1 year ago
Fence.h
Here we go again.
1 year ago
FenceCreateInfo.h
Here we go again.
1 year ago
Framebuffer.cpp
Here we go again.
1 year ago
Framebuffer.h
Here we go again.
1 year ago
FramebufferCreateInfo.h
Here we go again.
1 year ago
Handle.cpp
Here we go again.
1 year ago
Handle.h
Here we go again.
1 year ago
Image.cpp
Here we go again.
1 year ago
Image.h
Here we go again.
1 year ago
ImageCreateInfo.h
Here we go again.
1 year ago
ImageView.cpp
Here we go again.
1 year ago
ImageView.h
Here we go again.
1 year ago
ImageViewCreateInfo.h
Here we go again.
1 year ago
Instance.cpp
Here we go again.
1 year ago
Instance.h
Here we go again.
1 year ago
InstanceCreateInfo.h
Here we go again.
1 year ago
Integration.h
Here we go again.
1 year ago
LayerProperties.cpp
Here we go again.
1 year ago
LayerProperties.h
Here we go again.
1 year ago
Memory.cpp
Here we go again.
1 year ago
Memory.h
Here we go again.
1 year ago
MemoryAllocateInfo.h
Here we go again.
1 year ago
Mesh.cpp
Here we go again.
1 year ago
Mesh.h
Here we go again.
1 year ago
MeshLayout.cpp
Here we go again.
1 year ago
MeshLayout.h
Here we go again.
1 year ago
Pipeline.cpp
Here we go again.
1 year ago
Pipeline.h
Here we go again.
1 year ago
PipelineLayout.cpp
Here we go again.
1 year ago
PipelineLayout.h
Here we go again.
1 year ago
PipelineLayoutCreateInfo.h
Here we go again.
1 year ago
PixelFormat.cpp
Here we go again.
1 year ago
PixelFormat.h
Here we go again.
1 year ago
Queue.cpp
Here we go again.
1 year ago
Queue.h
Here we go again.
1 year ago
RasterizationPipelineCreateInfo.h
Here we go again.
1 year ago
RenderPass.cpp
Here we go again.
1 year ago
RenderPass.h
Here we go again.
1 year ago
RenderPassCreateInfo.h
Here we go again.
1 year ago
Result.cpp
Here we go again.
1 year ago
Result.h
Here we go again.
1 year ago
Sampler.cpp
Here we go again.
1 year ago
Sampler.h
Here we go again.
1 year ago
SamplerCreateInfo.h
Here we go again.
1 year ago
Shader.cpp
Here we go again.
1 year ago
Shader.h
Here we go again.
1 year ago
ShaderCreateInfo.h
Here we go again.
1 year ago
ShaderSet.cpp
Here we go again.
1 year ago
ShaderSet.h
Here we go again.
1 year ago
TypeTraits.h
Here we go again.
1 year ago
Version.cpp
Here we go again.
1 year ago
Version.h
Here we go again.
1 year ago
VertexFormat.cpp
Remove Doxygen workarounds from *.cpp files.
1 year ago
VertexFormat.h
Vk: implemented a Mesh wrapper.
5 years ago
Vk.h
Here we go again.
1 year ago
Vulkan.h
Here we go again.
1 year ago
VulkanTester.cpp
Here we go again.
1 year ago
VulkanTester.h
Here we go again.
1 year ago
visibility.h
Here we go again.
1 year ago
vk-info.cpp
Here we go again.
1 year ago