The Basics
The basics talk about the former kind of exceptions thrown, and when to use std::any.
We'll cover the following...
In C++14
there weren’t many options for holding variable types in a variable. You could use void*
,
of course, but this wasn’t safe. void*
is just a raw pointer, and you have to manage the whole object
lifetime and protect it from casting to a different type.
Potentially, void*
could be wrapped in a class with some type discriminator.
Press + to interact
class MyAny{void* _value;TypeInfo _typeInfo;};
Making Type-Safe
As you see, we have some basic form of the type, but there’s a bit of coding required to make sure MyAny
is type-safe. ...