It's probably just a parsing thing, have you tried: > ::NSLog(@"The value's amount is %d", (valueUser.value)->GetAmount()); ?
On 27/12/2009, at 11:20 , Tron Thomas wrote: > I'm running into a issue using STL/TR1 smart pointers with Objective-C++ > properties that I think is a bug, and I wanted to get some feedback before I > submitted any bug report. > > The following code: > > #import <Cocoa/Cocoa.h> > #import <tr1/memory> > > class Value > { > public: > explicit Value(int amount) : m_amount(amount){} > > int GetAmount() const { return m_amount; } > > private: > int m_amount; > }; > > typedef std::tr1::shared_ptr<Value> ValuePtr; > > @interface ValueUser : NSObject > { > @private > ValuePtr* _valuePtr; > } > - (id)initWithValue:(ValuePtr&)valuePtr; > @property ValuePtr value; > @end > > @implementation ValueUser > - (id)initWithValue:(ValuePtr&)valuePtr > { > self = [super init]; > _valuePtr = new ValuePtr(valuePtr); > return self; > } > > - (void)setValue:(ValuePtr)valuePtr > { > *_valuePtr = valuePtr; > } > > - (ValuePtr)value > { > return *_valuePtr; > } > > - (void)dealloc > { > delete _valuePtr; > [super dealloc]; > } > @end > > int main() > { > NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; > > ValuePtr valuePtr(new Value(42)); > ValueUser* valueUser = [[ValueUser alloc] initWithValue:valuePtr]; > > ::NSLog(@"The value's amount is %d", valueUser.value->GetAmount()); > > [valueUser release]; > > [pool release]; > > return 0; > } > > will produce these errors on the line in the main function containing the > NSLog call: > error: lvalue required as unary ‘&’ operand > error: base operand of ‘->’ has non-pointer type ‘ValuePtr’ > > If I replace the line with: > ::NSLog(@"The value's amount is %d", [valueUser value]->GetAmount()); > > Everything compiles successfully. What is the reason the '.' syntax will not > work in this instance? > > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/cocoa-dev/brian%40darknova.com > > This email sent to br...@darknova.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com