Managed C++ does not support automatic properties. You should manually declare a backing field and the accessors:
private: String* _internalSomeValue;
public:
__property String* get_SomeValue() { return _internalSomeValue; }
__property void set_SomeValue(String *value) { _internalSomeValue = value; }
C++/CLI supports automatic properties with a very simple syntax:
public: property String^ SomeValue;
Update (reply to comment):
In C++/CLI, you cannot control the accessibility of each accessor method separately when you use the automatic property syntax. You need to define the backing field and the methods yourself:
private: String^ field;
property String^ SomeValue {
public: String^ get() { return field; }
private: void set(String^ value) { field = value; }
}