C++C++11C++14C++17C++20Introduction to C++Learn C++Syntax

Everything You Need To Know About Strongly Typed Enums In Modern C++

Everything You Need To Know About Strongly Typed Enums In Modern C++

Variable declaration is important in programming and there is an enumeration method that allows you to numerate/count variables easily. In C++, enumeration is very important and widely used in different syntaxes. Enumeration in C++ can be done with the enum keyword which can be used to create unscoped and scoped enumerations. C++11 and above has modern enumeration methods that can be easily used in a modern C++ Code Editor and compiler. In this post, we explain what strongly typed enums in C++ are and how to use them.

First of all, let’s learn what enumeration in C++ means, and which types of enumerations we can use.

What is enumeration and how to use enum C++?

An enumeration is used to declare constants in a range of values easily. It may include several explicitly named constants which are also called as enumerators. In C++, enumeration can be done with enum keyword which is also known as enum-key. enum can be used in two ways in C++. These are,

  • Unscoped enumeration
  • Scoped enumeration (strongly typed enums)

In this article we explain how to use scoped enumeration in C++, in other words strongly typed enums.

Learn how to use strongly typed enums in Modern C++


Scoped enumeration types were introduced with the C++11 standards. In this enumeration type, the enum keyword is used with a class or struct to declare a scoped enumeration type. Its fundamental type can be fixed, not fixed or can be used to specify the name and the type.

The scoped enumerations can be used in 3 different types of syntax, these are,

  1. enum syntax for the scoped enumeration type whose type is not fixed:

here is an example,

2. enum syntax for the scoped enumeration type whose type is fixed,

here is an example,

3. enum syntax for the scoped enumeration type which is used to specify the name and the type.,

here is an example,

Is there a simple example of how to use strongly typed enums in Modern C++?

Here is a simple example of strongly typed enums in Modern C++.

Is there a full example of how to declare and use strongly typed enums in Modern C++?

Here is a full example of strongly typed enums in Modern C++.

These are the simple scoped enumeration examples. In the unscoped enumeration, we don’t use struct or class as a scope for that enumeration. This is explained in another article in LearnCPlusPlus.org.

Everything You Need To Know About Strongly Typed Enums In Modern C++ The C++ Builder Logo

C++ Builder is the easiest and fastest C and C++ IDE for building simple or professional applications on the Windows, MacOS, iOS & Android operating systems. It is also easy for beginners to learn with its wide range of samples, tutorials, help files, and LSP support for code. RAD Studio’s C++ Builder version comes with the award-winning VCL framework for high-performance native Windows apps and the powerful FireMonkey (FMX) framework for cross-platform UIs.


Oh hi there 👋
It’s nice to meet you.

Sign up to receive awesome C++ content in your inbox, every day.

We don’t spam! Read our privacy policy for more info.


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial

Free C++Builder Community Edition

About author

Dr. Yilmaz Yoru has 35+ years of coding with more than 30+ programming languages, mostly C++ on Windows, Android, Mac-OS, iOS, Linux, and some other operating systems. He graduated and received his MSc and PhD degrees from the Department of Mechanical Engineering of Eskisehir Osmangazi University. He is the founder and CEO of ESENJA LLC Company. His interests are Programming, Thermodynamics, Fluid Mechanics, Artificial Intelligence, 2D & 3D Designs, and high-end innovations.
Related posts
C++C++11C++14C++17C++20Introduction to C++Learn C++

Learn Copy Constructors in C++ Classes

C++C++11C++14C++17Introduction to C++Learn C++Syntax

Learn How To Use Types Of Destructors In C++?

C++C++11C++14Learn C++Syntax

How To Convert u32string To A wstring In C++

C++C++11C++14C++17C++20Introduction to C++Learn C++

How To Learn The Move Constructors In Modern C++?