| ▲ | 3836293648 7 months ago |
| Types are only nicer on the left when it isn't also annotated with all the other static constexpr [[nodiscard]] nonsense. And left types are actually greppable seperately from variable declarations. Having both left and right types is stupid, but as a whole right types are easier to deal with |
|
| ▲ | winocm 7 months ago | parent [-] |
| I learned of a cute side effect when one puts the function name on its own line, like above. In BSD of yore and modern contemporaries, one could often perform `grep '^function'` and end up finding the source file quite easily. I think it also makes using ctags(1) a bit easier too, but not entirely sure on that bit. |
| |
| ▲ | Iwan-Zotow 7 months ago | parent [-] | | you could grep `grep '^auto function'` with the same efforts | | |
| ▲ | 3836293648 7 months ago | parent [-] | | No, that clashes with variable declarations. Sure, you could have a naming scheme that doesn't have that issue, but that doesn't help with library code. | | |
| ▲ | winocm 7 months ago | parent [-] | | Pretty much. Here's some declarations from an ancient UNIX (remember, UNIX(R) is a registered trademark of "The Open Group") ctags file to help show how that type of scheme works: ISDOT rm.c /^#define ISDOT(a) ((a)[0] == '.' && (!(a)[1] || (a)/
Mrm rm.c /^main(argc, argv)$/
PASS rm.c /^#define PASS(byte) { \\$/
check rm.c /^check(path, name, sp)$/
checkdot rm.c /^checkdot(argv)$/
rm_file rm.c /^rm_file(argv)$/
rm_overwrite rm.c /^rm_overwrite(file, sbp)$/
rm_tree rm.c /^rm_tree(argv)$/
usage rm.c /^usage()$/
Side note: https://unix.org/trademark.html |
|
|
|