In the second version, drawableList is a type, not a variable, so the rest of the code doesn't compile.
Note that in both versions you're using a std::list instead of a std::vector, which penalizes your performance since you're using pointers. Always use std::vector to store pointers.