#include <experimental/optional>
#include <vector>
#include <algorithm>
#include <iostream>
template < typename t>
using optional = std:: experimental :: fundamentals_v1 :: optional < t> ;
int main( )
{
auto nullopt = std:: experimental :: fundamentals_v1 :: nullopt ;
std:: size_t nResults = 10 ;
std:: vector < optional< std:: size_t > > sizes( nResults, nullopt) ;
sizes[ 4 ] = 400 ;
sizes[ 7 ] = 500 ;
for ( std:: size_t i = 0 ; i < sizes.size ( ) ; ++ i)
{
if ( sizes[ i] )
std:: cout << "size at index " << i << ": " << * sizes[ i] ;
else
std:: cout << "no size computed at index " << i;
std:: cout << "\n " ;
}
}
I2luY2x1ZGUgPGV4cGVyaW1lbnRhbC9vcHRpb25hbD4KCiNpbmNsdWRlIDx2ZWN0b3I+CgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKI2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8dHlwZW5hbWUgdD4KdXNpbmcgb3B0aW9uYWwgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6ZnVuZGFtZW50YWxzX3YxOjpvcHRpb25hbDx0PjsKCmludCBtYWluKCkKewoJYXV0byBudWxsb3B0ID0gc3RkOjpleHBlcmltZW50YWw6OmZ1bmRhbWVudGFsc192MTo6bnVsbG9wdDsKCQoJc3RkOjpzaXplX3QgblJlc3VsdHMgPSAxMDsKCXN0ZDo6dmVjdG9yPG9wdGlvbmFsPHN0ZDo6c2l6ZV90PiA+IHNpemVzKG5SZXN1bHRzLCBudWxsb3B0KTsKCQoJc2l6ZXNbNF0gPSA0MDA7CglzaXplc1s3XSA9IDUwMDsKCQoJZm9yKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZXMuc2l6ZSgpOyArK2kpCgl7CgkJaWYoc2l6ZXNbaV0pCgkJCXN0ZDo6Y291dDw8ICJzaXplIGF0IGluZGV4ICIgPDwgaSA8PCAiOiAiIDw8ICpzaXplc1tpXTsKCQllbHNlCgkJCXN0ZDo6Y291dDw8ICJubyBzaXplIGNvbXB1dGVkIGF0IGluZGV4ICIgPDwgaTsKCQlzdGQ6OmNvdXQ8PCAiXG4iOwoJfQp9