|
@ -0,0 +1,27 @@ |
|
|
|
|
|
This page will go over some of the common questions new users of raylib have when using C++. |
|
|
|
|
|
|
|
|
|
|
|
# How do I use raylib with C++? |
|
|
|
|
|
|
|
|
|
|
|
raylib works with C++ in the exact same way it does with the C language. You can use raylib from C++ with no special modifications or build steps. Simply include raylib for your compiler and platform in the exact same way you do for C. raylib is fully compatible with both C and C++. |
|
|
|
|
|
|
|
|
|
|
|
# Do I have to use `raylib-cpp` to use raylib with C++? |
|
|
|
|
|
|
|
|
|
|
|
No, `raylib-cpp` is not required to use raylib with C++. `raylib-cpp` is an optional wrapper that sits on top of the regular C raylib in order to provide object oriented access to raylib. `raylib-cpp` still calls the same C raylib in the end. |
|
|
|
|
|
|
|
|
|
|
|
# How can I fix C [compound-literals](https://gcc.gnu.org/onlinedocs/gcc/Compound-Literals.html) related errors? |
|
|
|
|
|
|
|
|
|
|
|
You can get the folllowing error when building raylib examples in C++ in C++: |
|
|
|
|
|
|
|
|
|
|
|
> `A parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax` |
|
|
|
|
|
|
|
|
|
|
|
This type of structure initialization `(Vector3){ 1.0f, 2.0f, 3.0f }` is called a compound literal and is not supported by C++. Some C++ compilers are strict and will not allow it. This code can be converted to brace initialization in C++ by simply removing the parentheses around the type. Changing the code to `Vector3{ 1.0f, 2.0f, 3.0f }` will fix the error. |
|
|
|
|
|
|
|
|
|
|
|
This change needs to be made for code that is pulled from the raylib C examples. |
|
|
|
|
|
|
|
|
|
|
|
# How can I draw my string? |
|
|
|
|
|
|
|
|
|
|
|
`DrawText()` takes a `const char *text`, but I have a `std::string` in C++; `std::string` has a method named `c_str()`, this will return the `const char *str` stored in the string, use it as the argument for any C function that takes a `const char *text`. Example: |
|
|
|
|
|
|
|
|
|
|
|
```cpp |
|
|
|
|
|
DrawText(my_string.c_str(),0,0,20,RED); |
|
|
|
|
|
``` |