online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
/****************************************************************************** Welcome to GDB Online. GDB online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby, C#, VB, Perl, Swift, Prolog, Javascript, Pascal, HTML, CSS, JS Code, Compile, Run and Debug online from anywhere in world. cpp_template_const_vector_of_smart_ptrs_test_BEFORE Gabriel Staples www.ElectricRCAircraftGuy.com 10 May 2020 References: 1. https://stackoverflow.com/questions/61707217/no-matching-member-function-call-to-push-back-vector-of-shared-pointers/61707264#61707264 *******************************************************************************/ #include <cstdio> #include <iostream> #include <memory> #include <vector> template <typename T> class Container { private: // const std::vector<std::shared_ptr<T>> vec_; // does NOT work std::vector<std::shared_ptr<T>> vec_; // works! public: void append(std::shared_ptr<T> item) { vec_.push_back(std::move(item)); } void printElements() { for (int i = 0; i < vec_.size(); i++) { // Don't forget to dereference the pointer with `*` in order to // obtain the _contens of the pointer_ (ie: what it points to), // rather than the pointer (address) itself std::cout << *vec_[i] << std::endl; } } }; int main(int argc, char** argv) { std::unique_ptr<Container<std::string>> c = std::make_unique<Container<std::string>>(); c->append(std::make_shared<std::string>("hello")); c->append(std::make_shared<std::string>("world")); c->printElements(); return 0; } /* Output: hello world */

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue