Эх, не хватает в C++ макроассемблерных макросов :)
От: McSeem2 США http://www.antigrain.com
Дата: 21.09.04 18:45
Оценка:
Задача:

template<class T> unsigned read_value(const char* ptr, T* ret_val)
{
   for(unsigned i = 0; i < sizeof(T); ++i) (*(char*)T)[i] = *ptr++;
   return sizeof(T);
}


Это работает, но нет никакой гарантии, что оптимтзатор развернет цикл. А если не развернет, то это — 30-50% потери производительности. А хотелось бы с гарантией, чтобы статически, как в MACRO-11, типа:

template<class T> unsigned read_value(const char* ptr, T* ret_val)
{
   $repeat a(sizeof(T))
   {
      (*(char*)T)[a.index] = *ptr++;
   }
   return sizeof(T);
}


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