summaryrefslogtreecommitdiffstats
path: root/man3/_Generic.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/_Generic.3')
-rw-r--r--man3/_Generic.364
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