Форум программистов, компьютерный форум CyberForum.ru

Перегруженный вывод enum - C++

Восстановить пароль Регистрация
 
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
04.12.2012, 14:57     Перегруженный вывод enum #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//=====================================================================================================================================================================================================
std::ostream                  &operator<<  (std::ostream        &Stream    ,
                                            TLoadColladaResult   CodeResult)
{
 switch (CodeResult)
 {
  case TLCRNoError:Stream<<"No error."<<std::endl;
  return Stream;
  case TLCRNoFile :Stream<<"No file."<<std::endl;
  return Stream;
 }
 Stream<<"Unknown result code."<<std::endl;
 return Stream;
}
//=====================================================================================================================================================================================================
std::ostream                  &operator<<  (std::ostream        &Stream    ,
                                            TParseColladaResult  CodeResult)
{
 int                 ErrorMaskIndex;
 TParseColladaResult ErrorMask;
 TParseColladaResult LastMask;
 TParseColladaResult FirstMask;
 TParseColladaResult Error;
 bool                First;
 bool                Last;
 static char         Out[2][2][5][32]={{{"no XML tag, ", "invalidete XML tag, ", "no supporting encoding, ", "no COLLADA root tag, ", "parse error, "}, {"no XML tag.", "invalidete XML tag.", "no supporting encoding.", "no COLLADA root tag.", "parse error."}}, {{"No XML tag, ", "Invalidete XML tag, ", "No supporting encoding, ", "No COLLADA root tag, ", "Parse error,"}, {"No XML tag.", "Invalidete XML tag.", "No supporting encoding.", "No COLLADA root tag.", "Parse error."}}};
 if (((unsigned int)CodeResult)>0x1F)
 {
  Stream<<"Unknown result code."<<std::endl;
  return Stream;
 }
 if (CodeResult==TPCRNoError)
 {
  Stream<<"No error."<<std::endl;
  return Stream;
 }
 for (ErrorMaskIndex=0; ErrorMaskIndex<5; ++ErrorMaskIndex)
 {
  ErrorMask=(TParseColladaResult)(0x01<<ErrorMaskIndex);
  Error=(TParseColladaResult)(CodeResult&ErrorMask);
  FirstMask=(TParseColladaResult)(((unsigned int)ErrorMask)-1);
  LastMask =(TParseColladaResult)(0x1F^(FirstMask|ErrorMask));
  First=(CodeResult&FirstMask)==0x00;
  Last =(CodeResult&LastMask )==0x00;
  if (Error!=0x00)
  {
   Stream<<Out[First][Last][ErrorMaskIndex];
  }
 }
 Stream<<std::endl;
 return Stream;
}
//=====================================================================================================================================================================================================
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2012, 14:57     Перегруженный вывод enum
Посмотрите здесь:

C++ вывод значений Enum
C++ перегруженный синус
C++ перегруженный оператор <<
C++ Перегруженный оператор
C++ перегруженный конструктор
C++ Перегруженный operator<<
C++ Вывод значения типа enum C++
Перегруженный operator= C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 19:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru