Реальность такого делегата
От: glap  
Дата: 22.02.13 08:07
Оценка:
Один товарищ утверждает, что написал делегат который абстрагируется от сигнатуры функции и способен переварить нормально такой код:


struct SomeStruct
{
    operator int() { return 0; }
}

void Caller(Connector con)
{
    con( SomeStruct() );
}

void Foo1(int i) {}
void Foo2(SomeStruct ss) {}

Connector con1 = &Foo1;
Caller(con1);

Connector con2 = &Foo2;
Caller(con2);


Тоесть тут не будет у него ни UB ни исключения, а обе Foo получат что хотели. Я тут вижу одну нерешаемую проблему с безвозвратной утерей сигнатуры функции. Соответственно вызов оператора компилятору просто не сгенерироть.

Я чего-то не знаю?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.