Почему C# может это сделать, а C++/CLI не может?

.NET Framework 3.5 поставляется со всеми преимуществами LINQ, а также включает предопределенные универсальные делегаты Func и Action. Они являются общими для 4 аргументов. Я пишу проект C++/CLI, который (к сожалению) использует VS 2005 и должен полагаться только на стандартный набор сборки 2.0 (поэтому нет System.Core).

Я попытался определить свои собственные общие делегаты (в моем собственном пространстве имен), чтобы упростить будущие порты, компилятор задыхается от этого (несколько определений). Какие-либо предложения?

delegate void Action();

generic <typename Arg1>
delegate void Action(Arg1 arg1);

person Filip Frącz    schedule 15.12.2008    source источник
comment
Можете ли вы опубликовать точное сообщение об ошибке?   -  person JaredPar    schedule 15.12.2008
comment
ошибка C3756: «Действие»: определение делегата конфликтует с существующим символом   -  person Filip Frącz    schedule 15.12.2008


Ответы (1)


Я предполагаю, но я думаю, что лучше всего определить только эти делегаты в сборке С#. C++/CLI без проблем использует такое семейство перегруженных дженериков, но, похоже, не может их определить.

person Daniel Earwicker    schedule 15.12.2008