|
| Problem med Kompilering af gammel VC 6 kod~ Fra : Flare |
Dato : 07-09-02 17:50 |
|
Hejsa
Jeg har et program som benytter MySQL++ API´en. Men det er ikke så meget
det, Men når jeg compiler den gamel soruce kode i .NET får jeg
følgende(mange) fejlmeddelese:
C2977: 'std::reverse_iterator' : too many template arguments
Er det nu lige pludslig blevet lavet om på brugen af templates i C++ .net?
Pfh
Anders
| |
Mogens Hansen (07-09-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 07-09-02 19:17 |
|
"Flare" <dct_flare@hotmail.com> wrote in message
news:3d7a2e4f$0$5591$edfadb0f@dspool01.news.tele.dk...
> C2977: 'std::reverse_iterator' : too many template arguments
Hvordan ser koden ud, hvor den melder fejl ?
> Er det nu lige pludslig blevet lavet om på brugen af templates i C++ .net?
Ja, den er blevet lang mere i overensstemmelse med C++ Standarden.
Venlig hilsen
Mogens Hansen
| |
Flare (08-09-2002)
| Kommentar Fra : Flare |
Dato : 08-09-02 18:29 |
|
> Hvordan ser koden ud, hvor den melder fejl ?
Sådan her.::
typedef const std::reverse_iterator<const_iterator, ValueType>
const_reverse_iterator; //:
Koden er dog ikke lavet af mig men holdet bag Mysql. Nærmere sagt er det
Mysql++ API´en.
Mvh
Anders
| |
Mogens Hansen (08-09-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 08-09-02 20:37 |
|
"Flare" <dct_flare@hotmail.com> wrote in message
news:3d7b88d8$0$180$edfadb0f@dspool01.news.tele.dk...
> > Hvordan ser koden ud, hvor den melder fejl ?
>
> Sådan her.::
> typedef const std::reverse_iterator<const_iterator, ValueType>
> const_reverse_iterator; //:
Du kan givetvis fjerne ValueType fra typedef'en, så det bliver:
typedef const std::reverse_iterator<const_iterator>
const_reverse_iterator; //:
Den kan udledes fra "iterator_traits<Iterator>::value_type".
I Standard C++ (vedtaget 14. november 1997 og ratificeret i 1998) hedder
det:
template <class Iterator> class reverse_iterator;
(og i Commitee Draft 2 fra 2. december 1996, men ikke Commitee Draft 1 fra
28. april 1995).
Sådan hedder det også i Microsoft Visual C++ V7.0 (.NET) - og mange andre
compilere (eller rettere implementeringer af Standard Library).
I Microsoft Visual C++ V6.0 hedder det
template<class RanIt,
class T = iterator_traits<RanIt>::value_type,
class Ref = T&,
class Ptr = T *, class Dist = ptrdiff_t>
class reverse_iterator;
Venlig hilsen
Mogens Hansen
| |
|
|