[C++] Cum fac 'Generic-Text Mappings' pentru STL?

Despre limbajul de programare C++ si biblioteca standard STL (forum moderat)
Post Reply
User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

[C++] Cum fac 'Generic-Text Mappings' pentru STL?

Post by Ovidiu Cucu » 20 Jul 2011, 16:20

Intrebare
Cum fac Generic-Text Mappings pentru STL?
Cu alte cuvinte, cum pot face ca sa pot compila aceleasi surse care folosesc STL, atat UNICODE (utilizand wide-character strings) cat si ANSI (utilizand multibyte-character strings)?

Raspuns
O solutie ar fi urmatoarea:

Code: Select all

#include <string>
#include <iostream>
#include <sstream>
// ...

namespace std
{
#if defined(UNICODE) || defined(_UNICODE)
   typedef wstring t_string;
   typedef wstringstream t_stringstream;
   // ...
   wistream& t_cin = wcin;
   wostream& t_cout = wcout;
   // ...
#else // ANSI
   typedef string t_string;
   typedef stringstream t_stringstream;
   // ...
   istream& t_cin = cin;
   ostream& t_cout = cout;
   // ...
#endif
};
Fata de alte solutii ca de exemplu cea de aici, aceasta asigura ca:
  • se evita coliziunile de nume.
  • pot folosi in continuare, daca e nevoie, versiunea ANSI intr-un build UNICODE si vice versa.
  • last but not the least: merge intellisense-ul
Vezi si



Post Reply