Войти
ПрограммированиеФорумОбщее

Проверка существования переменной или функции-члена (5 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#60
9:40, 20 дек. 2008

Doctor Tarr
поделись же знаниями


#61
9:47, 20 дек. 2008

cNoNim
а что делится? в гугол.

#62
11:38, 20 дек. 2008

But then... I LOL'D!!111!!адинаадинаадин

#63
13:23, 20 дек. 2008

http://www.softcraft.ru/coding/dfo.shtml
http://www.softcraft.ru/coding/dynemu/dynemu.shtml

#64
13:38, 20 дек. 2008

Zefick
OMG! Костыли детектед! Ну его в печь такое извращение!

Вы это считаете нормальным:

/*
        Пример структуры – упрощённого аналога VARIANTARG
*/
class baseclass;
struct _variant
{
    short type;
    union
    {
        baseclass   *baseclass_value;    
        char        *string_value;    
        COLORREF     color_value;     
        double       double_value;    
        long         long_value;    
/*
    Можно добавить DATE, __int64, bool и т.д.
        ...
*/
    };
};
?????? где зедсь профит?

Правка: кстати стандарт не допускает объеденять в юнионы класс с нетривиальным конструктором,
вот такое вот ограничение, его обещали убрать в C++0x

#65
14:32, 20 дек. 2008

KpeHDeJIb
> Вы это считаете нормальным

Да, это нормально, но не для Си++.

Быстренько покажи мне, как в Си++ написать, что объект является, например, "либо строкой, либо int" (алгебраический тип данных, то бишь).

> где зедсь профит?

Если бы в Си++ было сравнение с образцом, появился бы и профит.

#66
14:37, 20 дек. 2008

chiaroscuro
> Быстренько покажи мне, как в Си++ написать, что объект является, например, "либо строкой, либо int"
Быстренько покажи мне где без этого не обойтись?

#67
14:41, 20 дек. 2008

KpeHDeJIb
> Быстренько покажи мне где без этого не обойтись?

Элементарно же, Ватсон!

Связный список однонаправленный это у нас что? Это либо пустой список (NULL, например), либо пара: какие-то данные и указатель на другой список.

Или, например,  выражения в интерпретаторе: либо литерал (1, 2.5, "abcd"), либо операция сложения двух выражений (литералов), либо операция применения функции к списку аргументов. :)

#68
14:42, 20 дек. 2008

chiaroscuro
Какие то наборы букав выдаешь. Клавиатура сломалась?

#69
15:59, 20 дек. 2008

KpeHDeJIb
>chiaroscuro
>Какие то наборы букав выдаешь. Клавиатура сломалась?
Он правильные наборы буков выдаёт. :) Сам буквально недавно так делал, поэтому понимаю, об чём речь. А она примерно вот про что:

struct TExpr
{
  enum {
  EValue, // литерал численный
  EStrValue, // строковой
  EVar, // переменная
  E1Op, // 1-нарный оператор над подчинённым выражением
  E2Op, // 2-нарный оператор над 2-мя подчинёнными выражениями
  EUnknown
  } m_Type; // тип этого выражения

    enum TOpType {
  EOpAdd, // also unary +
  EOpSub, // also unary -
  EOpNot,
  EOpMul,
  EOpDiv,
  EOpOr,
  EOpAnd,
  EOpLess,
  EOpGt,
  EOpEqu,
  EOpNequ,
  EOpLessEqu,
  EOpGtEqu,
  EOpLogOr,
  EOpLogAnd
  }; // коды операторов для выражения типа оператора
  union {
  TPckg<TFrac> m_AsVal; // литерал численный
  TString8 *m_pAsStrVal; // литерал строковой
  TVar *m_pAsVar;
  struct {
    TOpType m_OpType; // ид-р оператора для выражений
    TExpr *m_pLhs,*m_pRhs; // for unary ops, pLhs only
  } m_AsExpr;
  // end of union
  };
...
};
#70
16:03, 20 дек. 2008

Sbtrn. Devil
Это что, кусок лексического анализатора?

Правка: терминологию сменил )

#71
20:44, 20 дек. 2008

KpeHDeJIb
>chiaroscuro
>Какие то наборы букав выдаешь. Клавиатура сломалась?

Вот тебе примерчик для медитации:

-- Связный список однонаправленный
data List a = Null -- Это либо пустой список (NULL, например)
            | Pair a (List a) -- либо пара: какие-то данные и указатель на другой список

-- выражения в интерпретаторе:
data Expr = Literal Int -- либо литерал (1, 2.5, "abcd")
          | Add Expr Expr -- либо операция сложения двух выражений

#72
20:52, 20 дек. 2008

KpeHDeJIb
>Это что, кусок лексического анализатора?
Это исть чуть хуже - это исть кусок исполняющей машины интерпретатора.

#73
21:06, 20 дек. 2008

Т.е. вы считаете нормальным тот юнион где пытаются объеденить все известные типы данных в одном?
Ладно мне все равно какой у вас крутой анализатор лексем, я думаю там до таких извращений всяко не доходит.

Doctor Tarr
Пример с односвязным списком до сих пор не понятен. О чем он должен мне сказать?
Я всегда делал такой список как List { List *next; T data; } (для учебных целей) или брал std::list.

#74
0:54, 21 дек. 2008

Везде блин холивары=/ Ушел читать литературу.

Страницы: 1 2 3 4 5 6 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.