diff --git a/docs/generators/c.md b/docs/generators/c.md
index 29df6b2096e2..448cf98b4bfa 100644
--- a/docs/generators/c.md
+++ b/docs/generators/c.md
@@ -56,41 +56,109 @@ These options may be applied as additional-properties (cli) or configOptions (pl
_noreturn
_static_assert
_thread_local
+alignas
+alignof
+and
+and_eq
+asm
+atomic_cancel
+atomic_commit
+atomic_noexcept
auto
+bitand
+bitor
+bool
break
case
+catch
char
+char16_t
+char32_t
+char8_t
+class
+co_await
+co_return
+co_yield
+compl
+concept
const
+const_cast
+consteval
+constexpr
+constinit
continue
+decltype
default
+delete
do
double
+dynamic_cast
else
enum
+explicit
+export
extern
+false
+final
float
for
+friend
goto
if
inline
int
long
+mutable
+namespace
+new
+noexcept
+not
+not_eq
+nullptr
+operator
+or
+or_eq
+override
+private
+protected
+public
+reflexpr
register
+reinterpret_cast
remove
+requires
restrict
return
short
signed
sizeof
static
+static_assert
+static_cast
struct
switch
+synchronized
+template
+this
+thread_local
+throw
+transaction_safe
+transaction_safe_dynamic
+true
+try
typedef
+typeid
+typename
union
unsigned
+using
+virtual
void
volatile
+wchar_t
while
+xor
+xor_eq
## FEATURE SET
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CLibcurlClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CLibcurlClientCodegen.java
index f64d2d99d3fa..dbc59ae281cc 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CLibcurlClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CLibcurlClientCodegen.java
@@ -143,7 +143,111 @@ public CLibcurlClientCodegen() {
"_Imaginary",
"_Noreturn",
"_Static_assert",
- "_Thread_local")
+ "_Thread_local",
+
+ // cpp reserved keywords
+ // ref: https://en.cppreference.com/w/cpp/keyword
+ "alignas",
+ "alignof",
+ "and",
+ "and_eq",
+ "asm",
+ "atomic_cancel",
+ "atomic_commit",
+ "atomic_noexcept",
+ //"auto",
+ "bitand",
+ "bitor",
+ "bool",
+ //"break",
+ //"case",
+ "catch",
+ //"char",
+ "char8_t",
+ "char16_t",
+ "char32_t",
+ "class",
+ "compl",
+ "concept",
+ //"const",
+ "consteval",
+ "constexpr",
+ "constinit",
+ "const_cast",
+ //"continue",
+ "co_await",
+ "co_return",
+ "co_yield",
+ "decltype",
+ //"default",
+ "delete",
+ //"do",
+ //"double",
+ "dynamic_cast",
+ //"else",
+ //"enum",
+ "explicit",
+ "export",
+ //"extern",
+ "false",
+ //"float",
+ //"for",
+ "friend",
+ //"goto",
+ //"if",
+ //"inline",
+ //"int",
+ //"long",
+ "mutable",
+ "namespace",
+ "new",
+ "noexcept",
+ "not",
+ "not_eq",
+ "nullptr",
+ "operator",
+ "or",
+ "or_eq",
+ "private",
+ "protected",
+ "public",
+ "reflexpr",
+ //"register",
+ "reinterpret_cast",
+ "requires",
+ //"return",
+ //"short",
+ //"signed",
+ //"sizeof",
+ //"static",
+ "static_assert",
+ "static_cast",
+ //"struct",
+ //"switch",
+ "synchronized",
+ "template",
+ "this",
+ "thread_local",
+ "throw",
+ "true",
+ "try",
+ //"typedef",
+ "typeid",
+ "typename",
+ //"union",
+ //"unsigned",
+ "using",
+ "virtual",
+ //"void",
+ //"volatile",
+ "wchar_t",
+ //"while",
+ "xor",
+ "xor_eq",
+ "final",
+ "override",
+ "transaction_safe",
+ "transaction_safe_dynamic")
);
instantiationTypes.clear();