Operator overloading
aarti_pl
aarti at interia.pl
Wed Dec 24 15:06:31 PST 2008
dennis luehring pisze:
>> It is possible and it works :-)
>> But with operator overloading it is so much more readable, than
>> without it.
>>
>> Creating queries at runtime is quite common:
>>
>> age = 20;
>> string query = "Select name, surname FROM persons WHERE age = " +
>> to!(string)(age);
>
> that is not object + operator based - your flexibilty here comes from
> your string and the "runtime" interpretation of the sql semantic in your
> database ...
>
> if you need an additional "LIKE" based on an codition you need to
> rebuild your object/operator concatination in complete:
>
> if( gui.checkbox == true )
> {
> SELECT a from b
> }
> else
> {
> SELECT a from b WHERE c LIKE '% ~ C ~ %'
> }
>
>> Compile time checking of SQLs will not be enough for any bigger program.
>> How would you insert your data into database? INSERT needs values
>> which are taken e.g. from GUI and completely unknown at compile-time.
>
> why is a value that comes from an gui not compile-time?
> not the value is what you need - its the type (when we talk about type
> safetyness)
>
> how does vector-array get into Don's Blade strings? and why do i get
> compile-time errors when using the wrong type inside of the string?
>
> and you can't even speak of type-safetyness when using only strings in
> your database communication - how can be your results typesafe
> (i don't like string[string] results-set) because the safetiness is
> programatical
>
>> BTW. In recent release Boost team added a whole brand new library for
>> domain specific languages embedded languages called Proto. I think
>> that it means that there is quite a big need for such features. E.g.
>> for mocking frameworks which will also profit from extended DSL
>> sublanguages support in programming languages.
>
> you should read into the details of using mixins - they are much much
> more flexible than you think (not just boring strings) - and with the
> base feature-set of D something like mock wouldn't even exist
> and what the boost guys to is to get around c++ base feature-set to
> express new thing with c++
>
> @Ary does syntax coloring and smart auto-completen help while writing
> spirit based parsers? the complete meaning of ( * - \ ... is different
> to "normal" code
>
> btw: don syntaxtree is also an great example of using mixins
> http://www.dsource.org/projects/mathextra/browser/trunk/blade/SyntaxTree.d
While I see your points here, there are still arguments against mixins.
Please see my answer to Don's post.
BR
Marcin
(aarti_pl)
More information about the Digitalmars-d
mailing list