diff options
Diffstat (limited to 'man3/_Generic.3')
-rw-r--r-- | man3/_Generic.3 | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/man3/_Generic.3 b/man3/_Generic.3 deleted file mode 100644 index b9bb026..0000000 --- a/man3/_Generic.3 +++ /dev/null @@ -1,64 +0,0 @@ -.\" Copyright (C) 2022 Alejandro Colomar <alx@kernel.org> -.\" -.\" SPDX-License-Identifier: Linux-man-pages-copyleft -.\" -.TH _Generic 3 2023-10-31 "Linux man-pages 6.7" -.SH NAME -_Generic \- type-generic selection -.SH SYNOPSIS -.nf -.BR _Generic( \fIexpression\fP ", type1: " e1 ", " "... /*" \ -", default: " "e */" ); -.fi -.SH DESCRIPTION -.BR _Generic () -evaluates the path of code under the type selector -that is compatible with the type of the controlling -.IR expression , -or -.B default: -if no type is compatible. -.P -.I expression -is not evaluated. -.P -This is especially useful for writing type-generic macros, -that will behave differently depending on the type of the argument. -.SH STANDARDS -C11. -.SH HISTORY -C11. -.SH EXAMPLES -The following program demonstrates how to write -a replacement for the standard -.BR imaxabs (3) -function, which being a function can't really provide what it promises: -seamlessly upgrading to the widest available type. -.IP -.\" SRC BEGIN (_Generic.c) -.EX -#include <stdint.h> -#include <stdio.h> -#include <stdlib.h> -\& -#define my_imaxabs _Generic(INTMAX_C(0), \e - long: labs, \e - long long: llabs \e -/* long long long: lllabs */ \e -) -\& -int -main(void) -{ - off_t a; -\& - a = \-42; - printf("imaxabs(%jd) == %jd\en", (intmax_t) a, my_imaxabs(a)); - printf("&imaxabs == %p\en", &my_imaxabs); - printf("&labs == %p\en", &labs); - printf("&llabs == %p\en", &llabs); -\& - exit(EXIT_SUCCESS); -} -.EE -.\" SRC END |