Hi, Mike! Awesome tut, I have one question: on 3:23 you created copy-constructor in private section of "factory" class, but what is the difference with explicit restriction on copy constructor on next line: FactoryGameObjects(const& FactoryGameObjects o) = delete;
Indeed -- copy & paste error without actually testing (just in the 'discussion' or 'sketch' portion of the video). I'd need to think a bit about a use case for a parameter in a destructor -- perhaps for control flow on how you'd like to perform deletion for instance -- but the mechanism may not work as well as 'defer' or 'scope(exit)' in other languages.
Hi Mike, great video! Could we have not used the reference count of the shared pointers to tell us how many active objects there are? Or maybe the reference count of the weak ptr associated with the shared ptr ? Thanks! auto ptr1 = std::make_shared(10); { auto ptr2 = ptr1; std::cout
We can utilize use_count to tell how many times the pointer is referenced in a single-threaded environment (keep in mind, multithreading will otherwise not make this or 'expired' reliable)
Is the wrapper the best approach for this problem? Could you store them in a container that gets created with the constructer and push back the shared_ptr when the CreateObject function is called? Then you could use the size function from that container?
Hi, Mike!
Awesome tut, I have one question: on 3:23 you created copy-constructor in private section of "factory" class, but what is the difference with explicit restriction on copy constructor on next line:
FactoryGameObjects(const& FactoryGameObjects o) = delete;
Effectively the same idea -- one is the pre c++11 way of avoiding copies, and 'delete' is the C++11 and beyond way of doing things.
I spotted your case in one of SDL examples(file or asset handler maybe) , so this question appeared in my mind.
@@heyheyheyhoev419 Ah great! :)
@9:35 can't we delete by overloading the delete operator? something like:
void operator delete(void* memory){ free(memory);}
Could certainly do something like that to track allocations.
11:34 , I think that destructor should not have any parameter list!
Indeed -- copy & paste error without actually testing (just in the 'discussion' or 'sketch' portion of the video). I'd need to think a bit about a use case for a parameter in a destructor -- perhaps for control flow on how you'd like to perform deletion for instance -- but the mechanism may not work as well as 'defer' or 'scope(exit)' in other languages.
Hi Mike, great video! Could we have not used the reference count of the shared pointers to tell us how many active objects there are? Or maybe the reference count of the weak ptr associated with the shared ptr ? Thanks!
auto ptr1 = std::make_shared(10);
{
auto ptr2 = ptr1;
std::cout
We can utilize use_count to tell how many times the pointer is referenced in a single-threaded environment (keep in mind, multithreading will otherwise not make this or 'expired' reliable)
can you explain how to further code the fragment with adapter?
At some point I'll cover some other patterns like adapter in this series.
Is the wrapper the best approach for this problem? Could you store them in a container that gets created with the constructer and push back the shared_ptr when the CreateObject function is called? Then you could use the size function from that container?
Could also use a container to count the number of objects created. I think I would improve the above by using an atomic to keep count at the least.