Julia's C++ is "comically unidiomatic", as said by Stefan Karpinski. Specifically, you do NOT have to worry about anything resembling
template metaprogramming
fancy containers
move semantics
gnarly object oriented shenanigans like inheritance and the like
To find a struct
try: grep "} jl_binding_t;"
.
We basically just call the C++ API with a few range based for loops and lambdas sprinkled here and there. Let's show some examples.
clang
and clangd
are NOT the same thing, nor are they bundled together. clangd
is closer to clippy
and it does not come preinstalled.
libstdc++
and libc++
are the stdlibs pulled in by gcc
and clang
, respectively, make sure to update both of them before proceeding.
If you want to compile a C++20 "Hello World like this one:
import <iostream>
int main() {
std::cout << "hello world" << std::endl;
}
I found the cpp reference
and clangd
extensions for VSCode to be crucial in navigating C++.
You should pass in the flags clang++ -std=c++20 test.cpp -o test
.