Looking for practical examples of Soft/Weak pointers workflow with C++

I always see everyone encouraging to use these instead of hard references when working with assets. For example, I need to store a list of possible Textures for a Dynamic Material, pick one of them at runtime, load the asset and assign it.

However, I have yet to find a real example of this workflow with C++. Declaring the variable, assigning it, loading (sync/async), use the loaded asset…

Any help would be appreciated.