Re: problem with template arguments deduction

2012-06-02 Thread Dmitry Olshansky
On 02.06.2012 11:30, Zhenya wrote: Куда отписать-то?) http://d.puremagic.com/issues/ -- Dmitry Olshansky

Re: problem with template arguments deduction

2012-06-02 Thread Zhenya
Куда отписать-то?)

Re: problem with template arguments deduction

2012-06-02 Thread Dmitry Olshansky
On 02.06.2012 11:23, Zhenya wrote: Дмитрий,не подскажите как я бы мог проверить не баг ли это? Как я и говорил отписать что это баг. Дальше это дело экспертов по компилятору ) Вот например последние что ты отипсывал, вполне катит для bug-репорта: (только сократи лишний "внешний" код) this d

Re: problem with template arguments deduction

2012-06-02 Thread Zhenya
Дмитрий,не подскажите как я бы мог проверить не баг ли это?

Re: problem with template arguments deduction

2012-06-01 Thread Zhenya
On Friday, 1 June 2012 at 12:53:16 UTC, Zhenya wrote: ну как же map, filter и тд работают ) ну передавай свой delegate как параметр времени компиляции через !(...) все будет ок ... нууу так не прикольно. А это часом не бага у DMD? кстати если я заменяю template bind(alias indeces) {

Re: problem with template arguments deduction

2012-06-01 Thread Dmitry Olshansky
On 01.06.2012 16:53, Zhenya wrote: ну как же map, filter и тд работают ) ну передавай свой delegate как параметр времени компиляции через !(...) все будет ок ... нууу так не прикольно. beats me. А это часом не бага у DMD? Ну их много, заполни репорт в http://d.puremagic.com/issues/ через

Re: problem with template arguments deduction

2012-06-01 Thread Zhenya
ну как же map, filter и тд работают ) ну передавай свой delegate как параметр времени компиляции через !(...) все будет ок ... нууу так не прикольно. А это часом не бага у DMD?

Re: problem with template arguments deduction

2012-06-01 Thread Zhenya
Да,на всякий случай,текущий исходник,который не компилится module main; import std.stdio; import std.typecons; import std.typetuple; import std.traits; template Erase(int k,TList...) { static if(k != 0) alias TypeTuple!(TList[0],Erase!(k-1,TList[1..$])) Erase; e

Re: problem with template arguments deduction

2012-06-01 Thread Dmitry Olshansky
On 01.06.2012 16:47, Zhenya wrote: On Friday, 1 June 2012 at 12:38:11 UTC, Dmitry Olshansky wrote: On 01.06.2012 15:47, Zhenya wrote: Error 3 Error: function expected before (), not bind(&checker,2,1,4) of type _error_ c:\users\zhenya\documents\visual studio 2010\Projects\D\ConsoleApp1\ConsoleA

Re: problem with template arguments deduction

2012-06-01 Thread Zhenya
On Friday, 1 June 2012 at 12:38:11 UTC, Dmitry Olshansky wrote: On 01.06.2012 15:47, Zhenya wrote: Error 3 Error: function expected before (), not bind(&checker,2,1,4) of type _error_ c:\users\zhenya\documents\visual studio 2010\Projects\D\ConsoleApp1\ConsoleApp1\main.d 98 Error 1 Error: templ

Re: problem with template arguments deduction

2012-06-01 Thread Dmitry Olshansky
On 01.06.2012 15:47, Zhenya wrote: Error 3 Error: function expected before (), not bind(&checker,2,1,4) of type _error_ c:\users\zhenya\documents\visual studio 2010\Projects\D\ConsoleApp1\ConsoleApp1\main.d 98 Error 1 Error: template instance bind!([0,2]) bind!([0,2]) does not match template dec

Re: problem with template arguments deduction

2012-06-01 Thread Zhenya
Error 3 Error: function expected before (), not bind(&checker,2,1,4) of type _error_ c:\users\zhenya\documents\visual studio 2010\Projects\D\ConsoleApp1\ConsoleApp1\main.d 98 Error 1 Error: template instance bind!([0,2]) bind!([0,2]) does not match template declaration bind(D,V...) c:\users

Re: problem with template arguments deduction

2012-06-01 Thread Dmitry Olshansky
On 01.06.2012 15:40, Zhenya wrote: On Friday, 1 June 2012 at 11:23:48 UTC, Dmitry Olshansky wrote: On 01.06.2012 15:16, Zhenya wrote: Но тогда почему при замене Bind -> bind вот этот код не компилируется? module main; import std.stdio; import std.typecons; import std.typetuple; import std.trai

Re: problem with template arguments deduction

2012-06-01 Thread Zhenya
On Friday, 1 June 2012 at 11:23:48 UTC, Dmitry Olshansky wrote: On 01.06.2012 15:16, Zhenya wrote: Но тогда почему при замене Bind -> bind вот этот код не компилируется? module main; import std.stdio; import std.typecons; import std.typetuple; import std.traits; template Erase(int k,TList...)

Re: problem with template arguments deduction

2012-06-01 Thread Dmitry Olshansky
On 01.06.2012 15:16, Zhenya wrote: Но тогда почему при замене Bind -> bind вот этот код не компилируется? module main; import std.stdio; import std.typecons; import std.typetuple; import std.traits; template Erase(int k,TList...) { static if(k != 0) alias TypeTuple!(TList[0],Erase!(k-1,TList[1.

Re: problem with template arguments deduction

2012-06-01 Thread Zhenya
Но тогда почему при замене Bind -> bind вот этот код не компилируется? module main; import std.stdio; import std.typecons; import std.typetuple; import std.traits; template Erase(int k,TList...) { static if(k != 0) alias TypeTuple!(TList[0],Erase!(k-1,TList[1..$])) Erase;

Re: problem with template arguments deduction

2012-06-01 Thread Dmitry Olshansky
On Friday, 1 June 2012 at 08:08:19 UTC, Zhenya wrote: Вот у нас есть такая конструкция template foo(T) { foo(U)() { } } Могут ли у компилятора при инстанциировании возникнуть трудности с пониманием какие аргументы к какому шаблону относятся? Вопрос у меня возник из-за того

Re: problem with template arguments deduction

2012-06-01 Thread Zhenya
Простите меня за мой английский)

Re: problem with template arguments deduction

2012-06-01 Thread Zhenya
Вот у нас есть такая конструкция template foo(T) { foo(U)() { } } Могут ли у компилятора при инстанциировании возникнуть трудности с пониманием какие аргументы к какому шаблону относятся? Вопрос у меня возник из-за того,что когда я применил совет Philippe Sigaud к своему по

Re: problem with template arguments deduction

2012-06-01 Thread Zhenya
Вот у нас есть такая конструкция template foo(T) { foo(U)() { } } Могут ли у компилятора при инстанциировании возникнуть трудности с пониманием какие аргументы к какому шаблону относятся? Вопрос у меня возник из-за того,что когда я применил совет Philippe Sigaud к своему

Re: problem with template arguments deduction

2012-05-31 Thread Dmitry Olshansky
On 31.05.2012 10:31, Zhenya wrote: And, one more thing if we have the following code: template foo (T) { auto foo (U) (U arg) { } } ... foo!(int)('!'); determine whether the compiler that this specialization is to an external template? If you happen to be Russian, feel free to include Russian

Re: problem with template arguments deduction

2012-05-31 Thread Philippe Sigaud
On Thu, May 31, 2012 at 8:31 AM, Zhenya wrote: > And, one more thing > if we have the following code: > template foo (T) > { >        auto foo (U) (U arg) >        { >        } > } > ... > foo!(int)('!'); > determine whether the compiler that this specialization is to an external > template? I'm

Re: problem with template arguments deduction

2012-05-30 Thread Zhenya
And, one more thing if we have the following code: template foo (T) { auto foo (U) (U arg) { } } ... foo!(int)('!'); determine whether the compiler that this specialization is to an external template?

Re: problem with template arguments deduction

2012-05-30 Thread Zhenya
On Wednesday, 30 May 2012 at 22:19:53 UTC, Philippe Sigaud wrote: I don't see anything wrong per se. It's mainly that the compiler type extraction/deduction is not powerful enough to extract U in your case. You can help it a bit by using std.traits.ParameterTypeTuple: module test; import std.

Re: problem with template arguments deduction

2012-05-30 Thread Philippe Sigaud
I don't see anything wrong per se. It's mainly that the compiler type extraction/deduction is not powerful enough to extract U in your case. You can help it a bit by using std.traits.ParameterTypeTuple: module test; import std.stdio; import std.traits; import std.typetuple; template Combination(

problem with template arguments deduction

2012-05-30 Thread Zhenya
Some time ago I decided to write in D something like boost :: bind.But I encountered a problem that the compiler can not deduce the template function. Here are a significant part of the code: template Combination(alias indeces,U...) { // static if(is(typeof(indeces) : uint[])) // {