Boolean literals

From cppreference.com
< cpp‎ | language
 
 
C++ language
General topics
Flow control
Conditional execution statements
if
Iteration statements (loops)
for
range-for (C++11)
Jump statements
Functions
Function declaration
Lambda function expression
inline specifier
Dynamic exception specifications (until C++17*)
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
explicit (C++11)
static

Special member functions
Templates
Miscellaneous
 
 

Syntax

true (1)
false (2)

Explanation

The Boolean literals are the keywords true and false. They are prvalues of type bool.

Notes

See Integral conversions for implicit conversions from bool to other types and boolean conversions for the implicit conversions from other types to bool.

Keywords

false, true

Example

#include <iostream>
 
int main()
{
    std::cout << std::boolalpha
              << true << '\n'
              << false << '\n'
              << std::noboolalpha
              << true << '\n'
              << false << '\n';
}

Output:

true
false
1
0

References

  • C++23 standard (ISO/IEC 14882:2024):
  • 5.13.6 Boolean literals [lex.bool]
  • C++20 standard (ISO/IEC 14882:2020):
  • 5.13.6 Boolean literals [lex.bool]
  • C++17 standard (ISO/IEC 14882:2017):
  • 5.13.6 Boolean literals [lex.bool]
  • C++14 standard (ISO/IEC 14882:2014):
  • 2.13.6 Boolean literals [lex.bool]
  • C++11 standard (ISO/IEC 14882:2011):
  • 2.13.6 Boolean literals [lex.bool]
  • C++98 standard (ISO/IEC 14882:1998):
  • 2.13.5 Boolean literals [lex.bool]

See also

C documentation for Predefined Boolean constants