I have this C++ code in one of my programming books:
WNDCLASSEX wndClass = { 0 };
wndClass.cbSize = sizeof(WNDCLASSEX);
wndClass.style = CS_HREDRAW | CS_VREDRAW;
What does the single pipe do in C++ windows programming?
I have this C++ code in one of my programming books:
WNDCLASSEX wndClass = { 0 };
wndClass.cbSize = sizeof(WNDCLASSEX);
wndClass.style = CS_HREDRAW | CS_VREDRAW;
What does the single pipe do in C++ windows programming?
Bitwise OR operator. It will set all bits true that are true in either of both values provided.
For example CS_HREDRAW
could be 1 and CS_VREDRAW
could be 2. Then it's very simple to check if they are set by using the bitwise AND operator &
:
#define CS_HREDRAW 1
#define CS_VREDRAW 2
#define CS_ANOTHERSTYLE 4
unsigned int style = CS_HREDRAW | CS_VREDRAW;
if(style & CS_HREDRAW){
/* CS_HREDRAW set */
}
if(style & CS_VREDRAW){
/* CS_VREDRAW set */
}
if(style & CS_ANOTHERSTYLE){
/* CS_ANOTHERSTYLE set */
}
See also:
b00010101 | b00101010
will return b00111111
. –
Nonjoinder In C++20, it can also be the pipe operator of range adaptor closure objects. I.e. chaining together operations on ranges. Read more about it here: https://en.cppreference.com/w/cpp/ranges#Range_adaptor_closure_objects
|
is called bitwise OR operator.
||
is called logical OR operator.
It's a bitwise OR operator. For instance,
if( 1 | 2 == 3) {
std::cout << "Woohoo!" << std::endl;
}
will print Woohoo!
.
© 2022 - 2024 — McMap. All rights reserved.