Показать сообщение отдельно
Старый 14.01.2005, 12:21   #1  
Deep Dreamer is offline
Deep Dreamer
Участник
 
76 / 24 (1) +++
Регистрация: 05.03.2004
Адрес: Москва
? Объясните странное поведение enum'ов
Есть стандартный пример функции enum2str:

PHP код:
static void Job7(Args _args)
{
      
LedgerJournalACType     p;
      
LedgerJournalACType::Ledger;
      
infoenum2str(p) );

Есть попытка применить эту функцию:

PHP код:
static void Job6(Args _args)
{
    
LedgerJournalTrans  ljt;
    
set                 s=new set(types::Enum);
    
setiterator         si;
    
LedgerJournalACType tmp;

    while 
select firstonly ljt
    
{
        
s.add(ljt.OffsetAccountType);
    }

    
si = new setiterator(s);
    while(
si.more())
    {
        
tmp si.value();
        
info(enum2str(tmp));
        
si.next();
    }

Вызов
PHP код:
 info(enum2str(tmp)); 
приводит к ошибке времени выполнения. Почему? Причём в debugger'е значение tmp вполне корректно