libzeug
libzeug copied to clipboard
reduce template nesting in reflectionzeug (MSVC throws c4503 on warning level 1)
reflectionzeug reaches decorated names of length > 4096 characters (i guess this is due to template nesting)... :smile:. the latest msvc compiler throws large number of C4503 for this (http://msdn.microsoft.com/en-us/library/074af4b6.aspx). My suggestion: either follow the MS instructions and wrap some templates in structs (perhaps using can help here too?) or just reduce the need this heavy nesting of templates (aka refactoring).
An example for 4096 characters (spaces ignored):
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis quis libero aliquet, porttitor sapien sed, mollis dui. Cras quam lectus, ullamcorper a ipsum hendrerit, pellentesque tincidunt elit. Nam libero nisl, consectetur eu purus et, rhoncus viverra metus. Ut mauris dui, tincidunt quis elit viverra, fringilla volutpat turpis. Maecenas pharetra elit ac tincidunt pulvinar. Suspendisse nulla sem, tempus quis malesuada nec, luctus non eros. Vestibulum gravida, neque nec tincidunt mollis, ipsum eros dapibus quam, sed elementum orci magna ut erat. Quisque rutrum, ligula quis tempus sollicitudin, purus dolor pellentesque lorem, ut aliquam metus orci id dolor. Proin ornare tempus turpis, ac sodales magna tristique vel. Aenean sollicitudin libero eleifend, blandit augue mattis, viverra dolor. In tristique malesuada egestas. Duis eget nunc interdum mi euismod auctor et ut justo. Aenean ornare lacus sit amet odio tempus consequat. Vestibulum in quam urna. Praesent auctor pellentesque enim a auctor. Integer varius eu libero id venenatis. Phasellus accumsan felis non elit porttitor mollis. Curabitur in faucibus augue. Sed mollis urna eros, pulvinar sollicitudin metus congue eget. Ut sagittis varius nunc sit amet aliquam. Phasellus a dignissim libero. Vestibulum a dui nec enim consectetur mattis in et sem. Ut at dapibus erat. Sed pellentesque, arcu eu porta tincidunt, odio erat molestie sapien, molestie finibus augue diam ut ante. Cras sit amet mauris eu est egestas varius iaculis ac magna. Vivamus et posuere neque, ac aliquet ex. Fusce pulvinar nibh orci. Curabitur ut placerat orci. Maecenas eu tincidunt diam. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam quam nisl, consectetur id aliquet sed, tincidunt at odio. Aenean non lacinia leo. Fusce elementum lacus eget gravida vehicula. Donec sem mi, facilisis sed dui ac, tincidunt ornare sapien. Etiam feugiat mollis ornare. Praesent vestibulum rhoncus leo, quis porta ante blandit eu. Nulla aliquet orci finibus elit vestibulum suscipit. Vivamus eu nisl a orci bibendum accumsan. Etiam at neque lorem. In vel dolor tellus. Sed sollicitudin magna sit amet tortor vehicula posuere. Aliquam erat volutpat. Cras magna sapien, pulvinar quis ultricies ut, malesuada efficitur ipsum. Nullam pellentesque aliquam condimentum. Sed in porttitor magna, non gravida arcu. In aliquet pellentesque nunc. Sed posuere laoreet ex, quis tristique turpis accumsan non. Duis lacinia auctor mi, ut congue purus consequat sollicitudin. Nulla facilisis est purus, eget malesuada sem interdum vitae. Sed ante diam, bibendum id purus ac, sollicitudin interdum velit. Nunc ut imperdiet enim, in pellentesque enim. Suspendisse sit amet quam gravida, finibus urna sit amet, sodales nisi. Vivamus turpis neque, tempus a felis fringilla, aliquam tempus erat. Maecenas massa diam, imperdiet non efficitur ultricies, iaculis efficitur diam. Sed interdum id diam non finibus. Nam quis mi eget arcu dignissim gravida id eget sapien. Vivamus erat diam, euismod viverra velit at, euismod consequat diam. Cras vel odio sed enim molestie gravida. Quisque eu nibh ultrices, consequat lacus quis, bibendum erat. Phasellus mattis finibus posuere. Nam interdum, metus non aliquet dapibus, est eros tincidunt nibh, eget dictum eros lacus eu est. Aliquam sit amet viverra odio. Maecenas dapibus vitae neque eget rhoncus. Praesent non viverra nisi, eu facilisis erat. Nam a maximus purus. Proin varius accumsan varius. Phasellus sed elit risus. Fusce vulputate id nunc id egestas. In ut felis bibendum, aliquam dolor sed, placerat ex. Donec nulla risus, consequat sit amet tristique nec, commodo ac lorem. Nullam a egestas mauris. Fusce dignissim orci vitae elementum blandit. Phasellus fringilla vehicula lacus, at mattis orci. Aliquam erat volutpat. Integer risus orci, pharetra vel arcu vel, elementum tempor urna. Mauris porta ligula felis, quis imperdiet sapien semper scelerisque. Duis interdum turpis et velit rhoncus, et placerat velit semper. Nullam tristique orci commodo aliquet varius. Cras sit amet sodales sem, a laoreet nulla. Pellentesque cras. Etiam at neque lorem. In vel dolor tellus. Sed sollicitudin magna sit amet tortor vehicula posuere. Aliquam erat volutpat. Cras magna sapien, pulvinar quis ultricies ut, malesuada efficitur ipsum. Nullam pellentesque aliquam condimentum. Sed in porttitor magna, non gravida arcu. In aliquet pellentesque nunc. Sed posuere laoreet ex, quis tristique turpis accumsan non. Duis lacinia auctor mi, ut congue purus consequat sollicitudin. Nulla facilisis est purus, eget malesuada sem interdum vitae. Sed ante diam, bibendum id purus ac, sollicitudin interdum velit. Nunc ut imperdiet enim, in pellentesque enim. Suspendisse sit amet quam gravida, finibus urna sit amet, sodales nisi. Vivamus turpis neque, tempus.
A major refactoring for reflectionzeug is already planned. If I have a little bit of time, we can start that in the beginning of next year. Let's not make up too many separated issues in the meantime.
I think this issue remains relevant even with a complete restructuring of reflectionzeug, as we should strive for an architecture that satisfies the 4096 character maximum easily.
Sure, it does. I just do not want to have work done on any of these separate issues instead of starting a refactoring.
I can't think of any place where this could happen. Can you give an example?