digitalmars.D.learn - porperty problem..
- BLS (37/37) Jun 28 2010 Hi I have a forward reference pb in conjunction with @property.
- Simen kjaeraas (11/25) Jun 28 2010 No line number? If so, file it in bugzilla. You might also want to file
- Steven Schveighoffer (5/42) Jun 28 2010 Shouldn't this be
- Ellery Newcomer (2/8) Jun 28 2010 auto functions?
- Steven Schveighoffer (7/19) Jun 28 2010 I wasn't aware that @property implies auto. I guess that makes sense, b...
- Ellery Newcomer (4/24) Jun 28 2010 There are a bunch of modifiers that do.
- BLS (19/22) Jun 28 2010 Hm, this snippet does not compile :
- Simen kjaeraas (5/16) Jun 28 2010 Maybe it's because you haven't added string to the setter? Just grasping
- BLS (60/64) Jun 28 2010 Hi Simen, yes, thats the prob. I just have not found the @property
- BLS (6/8) Jun 28 2010 Ouch, you are right.. Interesting enough that @property nextServer() {
- BLS (27/30) Jun 28 2010 ok moving the inner Server class (see prev. msg) in front of
- Rory McGuire (2/39) Jun 28 2010 Only place I've seen @property docs is in TDPL
- Steven Schveighoffer (4/7) Jun 28 2010 http://www.digitalmars.com/d/2.0/function.html#property-functions
- BLS (2/4) Jun 28 2010 Makes sense :) thanks
Hi I have a forward reference pb in conjunction with property. Err msg is : forward refrence to inferred return type of function call s1.servername. any ideas ? beside, where are the property docs ? thanks, bjoern final class LoadBalancer { private static LoadBalancer lb; private Server[] servers; static this() { synchronized lb = new LoadBalancer; } private this() { Server s1 = new Server(); s1.servername = "Server 1"; // ERROR servers ~= s1; } public static LoadBalancer getLoadBalancer() { return lb; } property nextServer() { return servers[0]; } class Server { private string _name, _id; property servername(string name) { _name = name; } property servername() { return _name; } } }
Jun 28 2010
BLS <windevguy hotmail.de> wrote:Hi I have a forward reference pb in conjunction with property. Err msg is : forward refrence to inferred return type of function call s1.servername. any ideas ?No line number? If so, file it in bugzilla. You might also want to file a bug for the forward reference problems.beside, where are the property docs ?No idea. This:property nextServer() { return servers[0]; }Needs to be property Server nextServer(). I don't know for sure, but I believe property does not cause type inference. => property void servername(string name)property servername(string name) { _name = name; }=> property string servername()property servername() { return _name; }-- Simen
Jun 28 2010
On Mon, 28 Jun 2010 16:37:06 -0400, BLS <windevguy hotmail.de> wrote:Hi I have a forward reference pb in conjunction with property. Err msg is : forward refrence to inferred return type of function call s1.servername. any ideas ? beside, where are the property docs ? thanks, bjoern final class LoadBalancer { private static LoadBalancer lb; private Server[] servers; static this() { synchronized lb = new LoadBalancer; } private this() { Server s1 = new Server(); s1.servername = "Server 1"; // ERROR servers ~= s1; } public static LoadBalancer getLoadBalancer() { return lb; } property nextServer() {Shouldn't this be property Server nextServer() { ???return servers[0]; } class Server { private string _name, _id; property servername(string name) { _name = name; } property servername() { return _name; } } }-Steve
Jun 28 2010
On 06/28/2010 03:47 PM, Steven Schveighoffer wrote:On Mon, 28 Jun 2010 16:37:06 -0400, BLS <windevguy hotmail.de> wrote:auto functions?property nextServer() {Shouldn't this be property Server nextServer() { ???
Jun 28 2010
On Mon, 28 Jun 2010 16:55:01 -0400, Ellery Newcomer <ellery-newcomer utulsa.edu> wrote:On 06/28/2010 03:47 PM, Steven Schveighoffer wrote:I wasn't aware that property implies auto. I guess that makes sense, but I didn't consider it anything but a hint to the compiler about how it could be called, not that did anything with the type. But I guess it's similar to static... -SteveOn Mon, 28 Jun 2010 16:37:06 -0400, BLS <windevguy hotmail.de> wrote:auto functions?property nextServer() {Shouldn't this be property Server nextServer() { ???
Jun 28 2010
On 06/28/2010 03:58 PM, Steven Schveighoffer wrote:On Mon, 28 Jun 2010 16:55:01 -0400, Ellery Newcomer <ellery-newcomer utulsa.edu> wrote:There are a bunch of modifiers that do. protection modifiers and maybe align and a few others don't, but pretty much everything else doesOn 06/28/2010 03:47 PM, Steven Schveighoffer wrote:I wasn't aware that property implies auto. I guess that makes sense, but I didn't consider it anything but a hint to the compiler about how it could be called, not that did anything with the type. But I guess it's similar to static... -SteveOn Mon, 28 Jun 2010 16:37:06 -0400, BLS <windevguy hotmail.de> wrote:auto functions?property nextServer() {Shouldn't this be property Server nextServer() { ???
Jun 28 2010
On 28/06/2010 22:58, Steven Schveighoffer wrote:I wasn't aware that property implies auto. I guess that makes sense, but I didn't consider it anything but a hint to the compiler about how it could be called, not that did anything with the type.Hm, this snippet does not compile : class Server { private string _name, _id; property servername(string name) { _name = name; } property string servername() { return _name; } } remove string from property and it works. On the other hand .. property Server nextServer() { return servers[0]; } compiles fine ! Guess we need the official documents... Bjoern
Jun 28 2010
BLS <windevguy hotmail.de> wrote:Hm, this snippet does not compile : class Server { private string _name, _id; property servername(string name) { _name = name; } property string servername() { return _name; } } remove string from property and it works.Maybe it's because you haven't added string to the setter? Just grasping at straws here. -- Simen
Jun 28 2010
On 29/06/2010 00:07, Simen kjaeraas wrote:Maybe it's because you haven't added string to the setter? Just grasping at straws here. -- SimenHi Simen, yes, thats the prob. I just have not found the property docs.. thanks for all the help.. This snippet works now as expected.. D properties are just fine. Bjoern import std.stdio; import std.random; void main(string[] args) { LoadBalancer b1 = LoadBalancer.getLoadBalancer(); LoadBalancer b2 = LoadBalancer.getLoadBalancer(); LoadBalancer b3 = LoadBalancer.getLoadBalancer(); // Confirm these are the same instance if (b1 == b2 && b2 == b3 ) { writeln("Same instance\n"); } // Next, load 15 requests for a server for (int i = 0; i < 15; i++) { string serverName = b1.nextServer.servername; writeln("Dispatch request to: " ~ serverName); } } // D2 thread safe ?????? singleton final class LoadBalancer { private static LoadBalancer lb; private Server[] servers; static this() { synchronized lb = new LoadBalancer; } private this() { Server s1 = new Server(); s1.servername = "Server 1"; s1.id = ""; Server s2 = new Server(); s2.servername = "Server 2"; servers ~= s1; servers ~= s2; } public static LoadBalancer getLoadBalancer() { return lb; } property { Server nextServer() { return servers[ uniform(0, servers.length) ]; } } // inner class class Server { private string _name, _id; property { string servername(string sn) { return _name = sn; } string servername() { return _name; } string id(string id) { return _id = id; } string id() { return _id; } } } }
Jun 28 2010
On 28/06/2010 22:47, Steven Schveighoffer wrote:houldn't this be property Server nextServer() {Ouch, you are right.. Interesting enough that property nextServer() { return ...} compiles without giving any error message.. Anyway it seems to be a forward reference bug. moving the inner Server() class in front of LoadBalancer eliminates the error msg. bjoern
Jun 28 2010
On 28/06/2010 22:37, BLS wrote:forward refrence to inferred return type of function call s1.servername. any ideas ? beside, where are the property docs ? thanks, bjoernok moving the inner Server class (see prev. msg) in front of LoadBalancer works.. seems to be a forward reference bug. class Server { private string _name, _id; property servername(string name) { _name = name; } property servername() { return _name; } } final class LoadBalancer { private static LoadBalancer lb; private Server[] servers; static this() { synchronized lb = new LoadBalancer; } private this() { Server s1 = new Server(); s1.servername = "Server 1"; // NO PROBLEM } ... }
Jun 28 2010
On Mon, 28 Jun 2010 22:37:06 +0200, BLS <windevguy hotmail.de> wrote:Hi I have a forward reference pb in conjunction with property. Err msg is : forward refrence to inferred return type of function call s1.servername. any ideas ? beside, where are the property docs ? thanks, bjoern final class LoadBalancer { private static LoadBalancer lb; private Server[] servers; static this() { synchronized lb = new LoadBalancer; } private this() { Server s1 = new Server(); s1.servername = "Server 1"; // ERROR servers ~= s1; } public static LoadBalancer getLoadBalancer() { return lb; } property nextServer() { return servers[0]; } class Server { private string _name, _id; property servername(string name) { _name = name; } property servername() { return _name; } } }Only place I've seen property docs is in TDPL
Jun 28 2010
On Mon, 28 Jun 2010 16:55:44 -0400, Rory McGuire <rmcguire neonova.co.za> wrote:On Mon, 28 Jun 2010 22:37:06 +0200, BLS <windevguy hotmail.de> wrote:http://www.digitalmars.com/d/2.0/function.html#property-functions -Stevebeside, where are the property docs ?Only place I've seen property docs is in TDPL
Jun 28 2010
On 28/06/2010 23:00, Steven Schveighoffer wrote:http://www.digitalmars.com/d/2.0/function.html#property-functions -SteveMakes sense :) thanks
Jun 28 2010