#include <stdexcept>
using namespace std;

struct Foo
{
    unsigned small_value;
};

class SmallValue
{
    unsigned value;
public:
    SmallValue(unsigned x=0)
    {
        if(x>100) throw invalid_argument("");
        value = x;
    }
};
struct Bar
{
    SmallValue small_value;
};

template<typename T>
void same_syntax()
{
    T x;
    x.small_value = 11;
}

int main()
{
    same_syntax<Foo>();
    same_syntax<Bar>();
}