Seite 103 von 254
Re: Jammer-Thread
Verfasst: 02.02.2013, 20:02
von Krishty
Darüber habe ich mich ja nicht aufgeregt, sondern über die Aussagekraft der Fehlermeldung.
Zumal die für die geschlossene Klammer 300 Zeilen weiter unten angezeigt wurde.
Re: Jammer-Thread
Verfasst: 03.02.2013, 00:48
von Krishty
__if_not_exists() kapiert meine template template-Parameter nicht, also muss ich alles typedefen. Gaaaaanz ruhig bleiben jetzt.
Das ist das erste Wochenende seit Jahren, dass ich wieder was halbwegs Heftiges mit Templates mache, und direkt fliegt mir an jeder Ecke und jedem Ende was um die Ohren. Ich bin wirklich beeindruckt von Cats Strapazierfähigkeit.
Re: Jammer-Thread
Verfasst: 04.02.2013, 18:47
von Krishty
const auf einen by-value-Parameter verhindert, dass meine Symbole gefunden werden.
.h:
bool isVisible(WinAPI::WindowHandle);
.cpp:
bool isVisible(WinAPI::WindowHandle const handle) { return false; }
Fehler: Unaufgelöstes Symbol.
neue .cpp:
bool isVisible(WinAPI::WindowHandle);
bool isVisible(WinAPI::WindowHandle const handle) { return false; }
Klappt. Ebenso:
bool isVisible(WinAPI::WindowHandle handle) { return false; }
WTF?! Kann mir das jemand erklären?
Re: Jammer-Thread
Verfasst: 04.02.2013, 19:08
von Florian Keßeler
Also GCC 4.7 erlaubt beides.
Re: Jammer-Thread
Verfasst: 04.02.2013, 19:09
von CodingCat
WindowHandles sind garantiert immer vom selben Typ? Mit Vorwärtsdeklarationen und verschachtelten Namespaces kommt man da leicht in unüberschaubares Dickicht:
Code: Alles auswählen
namespace WinAPI { struct WindowHandle; }
namespace Foo {
{
// hier ::WinAPI::WindowHandle
bool isVisible(WinAPI::WindowHandle);
namespace WinAPI { struct WindowHandle; }
// hier ::Foo::WinAPI::WindowHandle
bool isVisible(WinAPI::WindowHandle);
}
Re: Jammer-Thread
Verfasst: 04.02.2013, 19:21
von Krishty
Ja; selber Typ – allerdings Zeiger auf unbenannt:
namespace WinAPI {
typedef struct { } * WindowHandle;
}
Ich habe mir die erzeugten OBJ-Dateien angeschaut; die dekorierten Namen unterscheiden sich von den gesuchten nur durch ein C, wo ein Q sein sollte. Ich baue mal einen Testfall.
Re: Jammer-Thread
Verfasst: 04.02.2013, 19:28
von Krishty
Also, das hier kompiliert bei mir nicht:
foo.cpp
main.cpp
Code: Alles auswählen
void foo(int *);
int __stdcall WinMain(void *, void *, wchar_t, int) {
foo(nullptr);
return 0;
}
error LNK2019: unresolved external symbol "void __cdecl foo(int *)" (?foo@@YAXPAH@Z) referenced in function _WinMain@16
Ohne
const geht es.
Ist das dritte Mal in 24 Stunden, dass ich mit dem Compiler kollidiere. Beim ersten Mal war es klar ein Bug; beim zweiten Mal war der Standard zu lasch; und jetzt frage ich euch, was das hier soll.
Re: Jammer-Thread
Verfasst: 04.02.2013, 19:36
von CodingCat
Krishty hat geschrieben:Ja; selber Typ – allerdings Zeiger auf unbenannt:
namespace WinAPI {
typedef struct { } * WindowHandle;
}
Ich habe gerade mal den Standard durchwühlt, wie es aussieht, hat deine unbenannte Struktur "No Linkage" (Linkage erfordert entweder einen Namen oder ein direktes Alias). Dazu sagt der Standard:
When a name has no linkage, the entity it denotes cannot be referred to by names from other scopes.
Mir ist im Moment auch Schleierhaft, wie in diesem Fall über mehrere Übersetzungseinheiten sichergestellt werden sollte, dass zwei Strukturdefinitionen übereinstimmen, insofern brauchst du wohl auf jeden Fall einen eindeutigen Namen.
Re: Jammer-Thread
Verfasst: 04.02.2013, 19:39
von Krishty
Daran liegt es aber nicht, siehe oben. Trotzdem danke für den Hinweis – dieser Quelltext war von bevor ich wusste, dass man Zeiger auf bloß deklarierte struct rumreichen kann :)
Re: Jammer-Thread
Verfasst: 04.02.2013, 19:40
von dot
Imo ein Bug, top-level cv-Qualifier machen für die Signatur keinen Unterschied (§13.1/3).
Re: Jammer-Thread
Verfasst: 04.02.2013, 19:44
von CodingCat
Krishty hat geschrieben:Ist das dritte Mal in 24 Stunden, dass ich mit dem Compiler kollidiere. Beim ersten Mal war es klar ein Bug; beim zweiten Mal war der Standard zu lasch; und jetzt frage ich euch, was das hier soll.
Ja, gerade gegengetestet. Herzlichen Glückwunsch, du hast einen weiteren unsinnigen Sonder-Code-Pfad aufgedeckt.
int const und
int kann er identifizieren, aber sobald aus den Werten Zeiger/Adressen werden, geht es kaputt. Kleiner Trost: Wenn du vor der Definition zusätzlich ohne Qualifizier deklarierst (z.B. im gemeinsamen Header?), dann stimmt das Mangling wieder und die Referenzen werden aufgelöst.
Re: Jammer-Thread
Verfasst: 04.02.2013, 19:47
von Krishty
Danke für eure Hilfe … ohne euch würde ich den Kopf wohl nie wieder aus dem Standard-PDF kriegen.
Heute empfinde ich mein Leben als besonders sinnlos, darum werde ich jetzt beide Bugs auf Connect posten, damit sie sie sofort wieder schließen können.
Re: Jammer-Thread
Verfasst: 04.02.2013, 20:31
von Krishty
Re: Jammer-Thread
Verfasst: 04.02.2013, 21:28
von glassbear
Manchmal (zum Beispiel: JETZT) waere ich echt froh, solche Probleme zu haben. Stattdessen fix (ergo: Neuschreiben) ich Code von unfaehigen Engineers aus Asien. :roll:
Re: Jammer-Thread
Verfasst: 04.02.2013, 21:30
von CodingCat
Geh zu MS, da kannst du gleich diese Probleme fixen. ;) Der Template-Template-Bug ist btw. mal wieder eine große Leistung. :mrgreen: Wenn wir jetzt schon wissen, dass Typechecks in VC++ intern durch Stringvergleiche mit unqualifizierten Typnamen gelöst sind, dass für jeden elementaren Datentypen und jede einzelne Regel der Grammatik der halbe Compiler-Code geklont wurde, und dass Optimierungen abwechselnd auf Maschinentext und dem AST ausgeführt werden, je nachdem, was gerade ungeschickter ist ... was soll da noch kommen?
Re: Jammer-Thread
Verfasst: 04.02.2013, 21:40
von Artificial Mind
Wie wärs wenn ihr euch bei
http://cppgm.com/ anmeldet und den C++ Grandmaster macht. Dann haben wir endlich mal gute Compiler ;)
Re: Jammer-Thread
Verfasst: 04.02.2013, 23:13
von eXile
Mache ich irgendetwas falsch? Bei mir kompiliert der kopierte Code, sowohl unter Visual C++ 2010 SP1, wie auch unter Visual C++ 2012 Update 2 CTP. Schon recht. Sowohl unter Visual C++ 2010 SP1, wie auch unter Visual C++ 2012 Update 2 CTP kommt der Fehler. Mal wieder mein Versagen.
Artificial Mind hat geschrieben:Wie wärs wenn ihr euch bei
http://cppgm.com/ anmeldet und den C++ Grandmaster macht. Dann haben wir endlich mal gute Compiler ;)
Ja, wie gut, dass es noch nie in der Menschheitsgeschichte einen Compiler gegeben hat, welcher diesen Punkt erfüllt. Aber das kriegt eine einzelne Person mit „2+ years experience working on a C++ codebase“ sicher hin.
http://cppgm.com/faq.html hat geschrieben:May I publish my code on my blog or website?
We ask you to agree, when you start the course, to not release your toolchains source code anywhere but the cppgm site.
Jau, damit erreicht man genau die Leute, welche viel Erfahrung mit Open-Source-Architekturen (wie eben dem dort einzig erlaubten Linux x86-64) haben.
Ich lehne mich zurück und schau mal, was dabei rauskommt.
Re: Jammer-Thread
Verfasst: 05.02.2013, 06:35
von Krishty
CodingCat hat geschrieben:Geh zu MS, da kannst du gleich diese Probleme fixen. ;) Der Template-Template-Bug ist btw. mal wieder eine große Leistung. :mrgreen: Wenn wir jetzt schon wissen, dass Typechecks in VC++ intern durch Stringvergleiche mit unqualifizierten Typnamen gelöst sind, dass für jeden elementaren Datentypen und jede einzelne Regel der Grammatik der halbe Compiler-Code geklont wurde, und dass Optimierungen abwechselnd auf Maschinentext und dem AST ausgeführt werden, je nachdem, was gerade ungeschickter ist ... was soll da noch kommen?
Nicht zu vergessen die Unterscheidung, ob eine Methode innerhalb des Klassenrumpfes definiert wurde oder nicht. Das könnte auch was ganz Banales sein, sie dass jemand
if(flags & (IS_IN_CLASS | IS_BUILTIN))
statt
if((IS_IN_CLASS | IS_BUILTIN) == flags & (IS_IN_CLASS | IS_BUILTIN))
geschrieben hat … aber seit dem
RVO = NOT(K'tor XOR D'tor) glaube ich da auch nicht mehr dran.
Re: Jammer-Thread
Verfasst: 05.02.2013, 20:06
von antisteo
Das Dateisystem von Windows 8 ist total inkonsistent.
Kann ich im Explorer noch auf ein Netzlaufwerk zugreifen, zeigen sich im Datei-Öffnen-Dialog total andere Netzwerkcomputer. Warum gibt es kein sshfs?
Re: Jammer-Thread
Verfasst: 05.02.2013, 20:10
von antisteo
Und jetzt ist Windows 8 einfach abgeschmiert.
Liegt das daran, dass das Wohnheim-LAN so verseucht ist mit den hunderten von Windows-Rechnern hinter öffentlichen IPs?
Re: Jammer-Thread
Verfasst: 06.02.2013, 13:47
von Schrompf
Wer mag, kann auch meinem Bugreport zu fehlenden Initializer List-Konstruktoren unterstützen. Der reift jetzt auch schon eine Woche bei Microsoft:
http://connect.microsoft.com/VisualStud ... nd#details
Re: Jammer-Thread
Verfasst: 06.02.2013, 17:13
von Biolunar
Re: Jammer-Thread
Verfasst: 08.02.2013, 14:40
von marcgfx
ich kapier nicht wieso meine bilder teilweise in der showroom leiste angezeigt werden und manchmal nicht. einige kommen auch einfach später. ist da ein lahmer batch-job im hintergrund der die bilder verschiebt? wieso ich das hier poste: wenn ich nach "problem showroom" suche ist es nicht möglich mit den resultaten was anzufangen, ausserdem wollte ich auch mal jammern.
Re: Jammer-Thread
Verfasst: 08.02.2013, 15:26
von Chromanoid
http://zfx.info/viewtopic.php?f=9&t=1162&p=13777#p13777 (dahin kommt man per Klick auf die Bezeichnung des Showrooms ;))
Chromanoid hat geschrieben:Die Bildersammelfunktion wird momentan manuell mit folgender URL ausgeführt:
;)
Ich als "lahmer Batchjob" führe sie gleich mal aus :D
Re: Jammer-Thread
Verfasst: 08.02.2013, 15:29
von marcgfx
haha, geil ;) funktioniert!
evtl. könnte man die info in den showroom kommentar reinhauen? bin fast verzweifelt dran, hab verschiedenstes ausprobiert :P
Re: Jammer-Thread
Verfasst: 08.02.2013, 15:35
von Chromanoid
Jo, hab mal einen Satz dazu in die Regeln gepackt.
Re: Jammer-Thread
Verfasst: 12.02.2013, 13:50
von Schrompf
Git und Github nerven mich babarisch. Nicht nur, dass jede Bedienung der git-Tools einem Rückfall in das letzte Jahrtausend gleich kommt, sondern auch das Grundprinzip von Git sorgt dafür, dass man für jeden Commit mindestens die doppelte Menge Aktionen braucht. Dann kommt da TortoiseGit, das sich nichtmal Name und Passwort merken will, so dass ich die bei jeder der zwei Millionen notwendigen Aktionen für einen einzelnen Commit neu eingeben muss. Und dann kommt da am Ende noch GitHub, was sich entgegen der offensichtlichen Realität für wichtig hält und deswegen absonderliche Ansprüche an das Passwort setzt. Wenn jemand in meinem Namen meine Bugs fixen will, dann SOLL ER DOCH, verdammich. Selbst meine Bank hat weniger Anspruch an die Passwort-Sicherheit als die hinterletzte verdammte Web2.0-Drecksseite, bei der ich gezwungen bin, noch einen Account zu haben. Und ganz am Ende wollen die MEINEN CODE. Nicht ich will was von ihnen, sondern die von mir.
Re: Jammer-Thread
Verfasst: 12.02.2013, 16:10
von antisteo
Schrompf hat geschrieben:Git und Github nerven mich babarisch. Nicht nur, dass jede Bedienung der git-Tools einem Rückfall in das letzte Jahrtausend gleich kommt,
Du meinst, dass man 2012 nicht mehr mit der Kommandozeile arbeiten sollte, weil das so veraltet und hässlich ist? :roll:
Schrompf hat geschrieben:sondern auch das Grundprinzip von Git sorgt dafür, dass man für jeden Commit mindestens die doppelte Menge Aktionen braucht.
Du meinst Commit und Push? :D
Schrompf hat geschrieben:Dann kommt da TortoiseGit, das sich nichtmal Name und Passwort merken will, so dass ich die bei jeder der zwei Millionen notwendigen Aktionen für einen einzelnen Commit neu eingeben muss.
Spamst du wirklich dein Kontextmenü mit solchen dämlichen Shell-Erweiterungen voll? :o
Nutzt du tatsächlich solche Frontends, die alle Aktionen, die in den Anleitungen "git push" heißen, auf Deutsch übersetzen bzw. umschreiben und bei denen man 4 mal klicken muss, um überhaupt eine Aktion auszuführen?
Schrompf hat geschrieben:Und dann kommt da am Ende noch GitHub, was sich entgegen der offensichtlichen Realität für wichtig hält und deswegen absonderliche Ansprüche an das Passwort setzt.
GitHub
ist wichtig. Auf GitHub sind 90% aller Node.js-Bibliotheken und die Anzeige der Readme.md auf der Startseite eines Repositorys ist Grundlage einer ausgereiften Dokumentations- und Sharingkultur.
Schrompf hat geschrieben:Wenn jemand in meinem Namen meine Bugs fixen will, dann SOLL ER DOCH, verdammich. Selbst meine Bank hat weniger Anspruch an die Passwort-Sicherheit als die hinterletzte verdammte Web2.0-Drecksseite, bei der ich gezwungen bin, noch einen Account zu haben.
Auf GitHub sind auch Projekte gehostet, bei denen es nicht egal ist, wenn irgendwer Backdoors einbaut. Außerdem vergisst du, dass bei GIT
Username!=Committer . Wenn du schon willst, dass jemand in deinem Namen deine Bugs fixt, musst du ihm schon deinen Private Key mitgeben.
Schrompf hat geschrieben:Und ganz am Ende wollen die MEINEN CODE. Nicht ich will was von ihnen, sondern die von mir.
Dann benutze GitHub nicht. Niemand zwingt dich dazu, dass du deren Server mit deinen Commits zumüllst.
Sorry, aber das musste einfach sein. Du führst dich hier auf wie jemand, der noch nie eine Zeile Code in Kollaboration geschrieben hat oder eine Fremdbibliothek angefasst hat.
Re: Jammer-Thread
Verfasst: 12.02.2013, 16:18
von Schrompf
antisteo hat geschrieben:Sorry, aber das musste einfach sein. Du führst dich hier auf wie jemand, der noch nie eine Zeile Code in Kollaboration geschrieben hat oder eine Fremdbibliothek angefasst hat.
Deine Meinung ist irrelevant, antisteo. Ich war hier, um meinen unmittelbaren Frust über ein von mir als verbesserungwürdig empfundenes Gesamtkonstrukt loszuwerden. An der Gesamtsituation kann ich leider nichts ändern. Du übrigens auch nicht. Was Du dann meinst, interpretierst oder für angemessen hälst, ist leider für die Aussage unerheblich.
Re: Jammer-Thread
Verfasst: 12.02.2013, 18:55
von Krishty
@antisteo: Nach dem Erguss bist du von etwaigen meinerseitigen Benutzerschnittstellendiskussionen ewig disqualifiziert.
————
Warum kann ich Half-Life 2 nach 8 Jahren Aktualisierungen, die mir wider Willen durch mein UMTS gepresst werden, immernoch nicht minimieren?
btw: wenn man während des Valve-Intro-Videos wild auf der Tastatur rumhackt, kommt Windows’ Das Programm reagiert nicht; schließen oder warten?. lelz wenn eitle Versager wehrlose User ins Anstarren ihres Logos zwingen wollen und dann ein weißer Fehlerbildschirm mit Bass drauf rauskommt