AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi C++ Compiler Bug bei partial specializations?
Thema durchsuchen
Ansicht
Themen-Optionen

Compiler Bug bei partial specializations?

Offene Frage von "cytrinox"
Ein Thema von cytrinox · begonnen am 14. Aug 2008
Antwort Antwort
cytrinox

Registriert seit: 4. Sep 2006
88 Beiträge
 
#1

Compiler Bug bei partial specializations?

  Alt 14. Aug 2008, 09:48
Hi,

ich bastel gerade an einer kleinen C++ Library. Manchmal kompilier ich den Code mit g++/Linux oder im Borland Dev Studio 2006/Windows.

Allerdings will der bcc32 neuerdings den Code nicht kopmilieren. Testweise hab ich mal den Intel Compiler (icpc/icc) und den C++ Compiler von Microsoft VS2008 ausprobiert. Die bekommen das alle gebacken.

Es geht um ein class template, dass ein template-template Argument und 2 weitere class Arguemente hat.

Ich möchte dieses Template spezialisieren, meist auf das template-template Argument.

Aber genau hier ist das Problem: Wenn ich das template nur teilweise spezialisiere (siehe definitions.hpp), dann sagt der Compiler:

Delphi-Quellcode:
[C++ Error] main.cpp(27): E2064 Cannot initialize 'sqlite::iterator<SQL92Traits,struct> &with 'sqlite::iterator<SQL92Traits,MyStruct<EngineT,SqlTraitsT> >'
[C++ Error] main.cpp(27): E2342 Type mismatch in parameter 'ref' (wanted 'sqlite::iterator<SQL92Traits,struct> &', got 'sqlite::iterator<SQL92Traits,MyStruct<EngineT,SqlTraitsT> >')
Spezialisiere ich das Template komplett oder lasse die Spezialisierung ganz weg, kompiliert der Code wieder.

Offensichtlich kann er die Typen der beiden Parameter von operator()() nicht korrekt auflösen, weshalb in der Fehlermeldung auch steht "..,struct>" passt nicht zu "..,MyStruct<EngineT, SqlTraitsT>".

Die Frage ist aber, warum kann er es auflösen wenn das Template komplett spezialisert wird?


Ich habe den Code aufs Minimum reduziert und als Anhang beigefügt. Vielleicht kann mir irgend jemand erklären warum der bcc32 so reagiert und alle anderen richtig
Angehängte Dateien
Dateityp: rar dbwtl_637.rar (5,7 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz