A few minor differences:
When entering a fully functional character, such as foo::bar::fum(args)in the gdb shell, you need to start with a single quotation mark for gdb to recognize it and calculate the completion.
, . std::vector, std::map .
, ++, , , . , shared_ptr, , . .
, , readline, . ( "foo" ? ? ?)