Parse int from #define C++ [duplicate] - c++

This question already has answers here:
C++ string to enum
(13 answers)
How to easily map c++ enums to strings
(23 answers)
Closed 1 year ago.
Assume the following code:
#define GL_DEPTH_TEST 0x0B71
std::string shader_args = "GL_DEPTH_TEST";
I want to run something like
glEnable(shader_args);
//Draw stuff
glDisable(shader_args);
I have tried std::atoi(shader_args) but it returns 0 instead of 0x0B71

Related

How does int[int*] work in cpp? what is it's output? [duplicate]

This question already has answers here:
C++ array[index] vs index[array] [duplicate]
(4 answers)
is int[pointer-to-array] in the C++ - standard? [duplicate]
(3 answers)
Closed 2 years ago.
int a[5]={1,2,3,4,5};
int*p=a;
cout<<4[p];
return 0;
can anyone please tell me how it is giving output 5. i know it is 5 because it is the 4th element in the array. but why is 4[p] giving the output!

What do square brackets mean in this C++ statement? [duplicate]

This question already has answers here:
What is a lambda expression in C++11?
(10 answers)
Strange bracket-parentheses notation in C++, looking somewhat like a for each loop
(3 answers)
What does "[ this ]" mean in C++
(1 answer)
Closed 2 years ago.
I'm going through Wt web framework tutorial, in one example they initialize a variable this way:
auto greet = [this]{
greeting_->setText("Hello there, " + nameEdit_->text());
};
What does square brackets mean in this type of initialization?

Vector of vectors to array of arrays [duplicate]

This question already has answers here:
How to convert vector to array
(10 answers)
C++ vector<vector<double> > to double **
(3 answers)
Closed 4 years ago.
I have a variable std::vector<std::vector<float>> I want to pass this variable to a function which accepts array of array of float **float. I was wondering if there is any way to do this?

3d std::array in c++ [duplicate]

This question already has answers here:
C++11: Correct std::array initialization?
(5 answers)
Why can't simple initialize (with braces) 2D std::array? [duplicate]
(1 answer)
Closed 5 years ago.
I am early in c++. I want to define an 3d std::array in c++. when i define bellow array:
std::array<std::array<std::array<double,3>,4>, 4> DownSide = {
{{0,0.51,0.35},{0,0.51,0.35},{0,0.51,0.35},{0,0.51,0.35}},
{{0,0.51,0.35},{0,0.51,0.35},{0,0.51,0.35},{0,0.51,0.35}},
{{0,0.51,0.35},{0,0.51,0.35},{0,0.51,0.35},{0,0.51,0.35}},
{{0,0.51,0.35},{0,0.51,0.35},{0,0.51,0.35},{0,0.51,0.35}}
};
I see this error:
error: too many initializers for ‘std::array<std::array<std::array<double, 3ul>, 4ul>, 4ul>’
};
I googled this error find i mistak in numer brackets, but i dont know and find how must i write them.
How must i do?

How to token paste a number? [duplicate]

This question already has answers here:
How can I concatenate twice with the C preprocessor and expand a macro as in "arg ## _ ## MACRO"?
(3 answers)
Closed 7 years ago.
I have to create objects dynamically. So for that I have the following:
#define timerID(num) timerID_##num
This results in as timerID_num instead of say timerID_1.
Can someone let me know how to do this?
Check following code snippet:
#define f(g,g2) g##g2
void main()
{
int timerID_1 = 12;
printf("%d",f(timerID_,1));
}
This will concatenate to timerID_1. I printed the value just for debug.