Баг компилятора при параметре шаблона = void* - страница 2

 
fxsaber:

К сожалению, так и не увидел примера использования.

Ну, например, создание массива объектов разных типов.
 
Vladimir Simakov:
Ну, например, создание массива объектов разных типов.

Выше привел сам такой пример. Но как потом обращаться к ним, если не знаешь типов?

 
fxsaber:

Выше привел сам такой пример. Но как потом обращаться к ним, если не знаешь типов?

Как не  знаю? Я же сам их туда клал, то есть их список конечный. Банально перебором типов в этом списке, dynamic_cast в помощь.

 
Vladimir Simakov:

Как не  знаю? Я же сам их туда клал, то есть их список конечный. Банально перебором типов в этом списке, dynamic_cast в помощь.

Ну это совсем костыльное решение!

 

В MQ, например, ArrayCopy основан на void*. Когда нужно его переделать, использую шаблон. И все пашет, конечно, и строго по заданным типам.

Поэтому и не нахожу пока сценария удобства использования void*. Видимо, узко вижу возможности, которые эта конструкция предоставляет.

 
fxsaber:

Ну это совсем костыльное решение!

Ну, если хочется человеку, зачем же обламывать. И потом, почему костыльное? Если свободные рессурсы позволяют, то почему бы и нет. Эдак и Java - один большой костыль, а ассемблер вообще рулит. В конечном итоге - желание есть, а возможности нет, причем непонятно почему, а это не есть гуд, это править надо.

 
Vladimir Simakov:

Ну, если хочется человеку, зачем же обламывать. И потом, почему костыльное? Если свободные рессурсы позволяют, то почему бы и нет. Эдак и Java - один большой костыль, а ассемблер вообще рулит. В конечном итоге - желание есть, а возможности нет, причем непонятно почему, а это не есть гуд, это править надо.

Не против этой фишки. Спрашиваю, чтобы научиться новому и полезному. Для этого во многом на форуме нахожусь.

 
fxsaber:

В MQ, например, ArrayCopy основан на void*. Когда нужно его переделать, использую шаблон. И все пашет, конечно, и строго по заданным типам.

Но он не любые указатели копирует, а только совместимые, которые кастятся неявно.  Раньше так и все пользовательские функции работали, было очень удобно.  А теперь либо с шаблонами извращайся, либо перекопируй в новый массив.  Непонятно кому понадобилось урезать это, и зачем.

 
Alexey Navoykov:

Но он не любые указатели копирует, а только совместимые, которые кастятся неявно.  Раньше так и все пользовательские функции работали, было очень удобно.  А теперь либо с шаблонами извращайся, либо перекопируй в новый массив.  Непонятно кому понадобилось урезать это, и зачем.

А как раньше можно было. Вроде, всегда типы должны были совпадать.

 
Alexey Navoykov:

Ошибка компилятора.  Билд 1961.

А в 1961x32 все работает... ляпота!