3 ms·
Raw pointers can still be used for pass-by-reference without size. U do_something(std::vector<T> const *vec) { T item = (*vec)[1]; ...;
by JamesLeonis 9y ago
Raw pointers can still be used for pass-by-reference without size.
U do_something(std::vector<T> const *vec) {
T item = (*vec)[1];
...;
}
We can get away with this because the type `std::vector<T>` is known at compile time. It goes back to C and passing pointers of structs all over the place.
The const on the right side makes sure the compiler keeps the memory at the pointed location safe like the const used in your initial question.
- yuushi 9y agoSure, you can pass by pointer instead of reference, but the post also mentioned that they didn't use the STL (hence no std::vector) and I'm curious if that means they used a replacement library or something else.