ultimatepp/tutorial/CoreTutorial/Any.cpp
cxl 6c22e727de New Core Tutorial
git-svn-id: svn://ultimatepp.org/upp/trunk@10538 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2016-12-12 10:08:40 +00:00

26 lines
No EOL
607 B
C++

#include "Tutorial.h"
void AnyTutorial()
{
/// .`Any`
/// `Any` is a container that can contain none or one element of %any% type. `Any::Is`
/// method matches exact type ignoring class hierarchies (unlike `One::Is`). You can use
/// `Get` to retrieve a reference to the instance stored:
for(int pass = 0; pass < 2; pass++) {
Any x;
if(pass)
x.Create<String>() = "Hello!";
else
x.Create<Color>() = Blue();
if(x.Is<String>())
LOG("Any is now String: " << x.Get<String>());
if(x.Is<Color>())
LOG("Any is now Color: " << x.Get<Color>());
}
///
}