Die Suche ergab 1735 Treffer

von dot
20.02.2018, 18:24
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [gelöst] Compilerfehlerfehler C2280 bei std::vector
Antworten: 19
Zugriffe: 3134

Re: [gelöst] Compilerfehlerfehler C2280 bei std::vector

Naja, was hier passiert ist: std::unique_ptr ist nicht kopierbar, daher hat deine Klasse Building , in der dieser unique_ptr sich nun offenbar befindet, keinen impliziten Copy C'tor mehr... Die Frage die du dir an dieser Stelle stellen solltest ist: Wieso genau muss Building kopiert werden? Irgendwo...
von dot
20.02.2018, 17:35
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [gelöst] Compilerfehlerfehler C2280 bei std::vector
Antworten: 19
Zugriffe: 3134

Re: [gelöst] Compilerfehlerfehler C2280 bei std::vector

In der Regel ist die tatsächliche Fehlermeldung (also das was der Compiler in deinem konkreten Code konkret ausspuckt) zusammen mit dem Stück Code das den Fehler erzeugt ungefähr 100000000% informativer als der Link zur generischen Doku des jeweiligen Compiler Error Code ohne Kontext... ;)
von dot
18.02.2018, 21:21
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1475530

Re: Jammer-Thread

Sicher dass das nur an den Debug Infos liegt? Wenn du Release mit Whole Program Optimization baust, dann enthalten Object Files keinen Maschinencode und keine COFF Symbole, weil die Code Generation ja in den Linker verschoben wird...
von dot
18.02.2018, 21:14
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1475530

Re: Jammer-Thread

Also, einigen wir uns auf: Es unterdrückt das Name Mangling bei __cdecl . In einer DLL kommen deine Funktionen als f , a , _b@0 , @c@0 , d@@0 an. Ich bin dem Ganzen jetzt mal genauer nachgegangen und ich würde sagen: Was wirklich passiert ist, dass der Linker für per /EXPORT angegebene C ABI Symbol...
von dot
17.02.2018, 20:23
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1475530

Re: Jammer-Thread

Dass extern "C" irgendwas mit Name Mangling zu tun hätte, ist leider ein weit verbreiteter Irrtum. Nein ist es nicht. Es mag nicht dafür spezifiziert sein, aber auf Windows und mit Ausnahme der __stdcall -Extraregelung tut es unter anderem genau das . Es gibt keine " __stdcall -Extra...
von dot
17.02.2018, 19:22
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1475530

Re: Jammer-Thread

Dass extern "C" irgendwas mit Name Mangling zu tun hätte, ist leider ein weit verbreiteter Irrtum. extern "C" ist eine linkage-specification , die besagt, dass die jeweils deklarierte Entität C language linkage haben soll. Effektiv heißt das einfach, dass sie entsprechend dem C A...
von dot
13.02.2018, 01:00
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Template-Argument als Bedingung
Antworten: 24
Zugriffe: 4125

Re: [C++] Template-Argument als Bedingung

1) das Undefined Behavior fixen indem du statt dem reservierten Namen _GetValueType etwas verwendest was erlaubt ist... ;) _GetValueType ist reserviert? Im Link finde ich nix zu _GetValueType. Wie ist das gemeint? Der Link führt zu der Stelle im C++ Standard, die besagt dass alle Identifier die dop...
von dot
12.02.2018, 22:13
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Template-Argument als Bedingung
Antworten: 24
Zugriffe: 4125

Re: [C++] Template-Argument als Bedingung

1) das Undefined Behavior fixen indem du statt dem reservierten Namen _GetValueType etwas verwendest was erlaubt ist... ;) Abgesehen davon dass ich selbstverständlich wieder das Design hinterfragen würde ( ;) ), könntest du hier einfach explizit spezialisieren: template <class T> int GetValueType(co...
von dot
11.02.2018, 22:11
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1475530

Re: Jammer-Thread

Goderion hat geschrieben:IJemand eine Idee, wie ich das optimieren kann.
Was ist denn in dieser .lib alles drin? xD
von dot
08.02.2018, 12:13
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Template-Argument als Bedingung
Antworten: 24
Zugriffe: 4125

Re: [C++] Template-Argument als Bedingung

dynamic_cast ist lahm weil dynamic_cast lahm ist, daran lässt sich nix ändern. typeid() ist potentiell ein wenig schneller weil das nur den konkreten Typ returnen muss während dynamic_cast die Vererbungshierarchie traversiert... Ich würde rein prinzipiell hier das Design hinterfragen; bei Anblick v...
von dot
07.02.2018, 09:53
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Template-Argument als Bedingung
Antworten: 24
Zugriffe: 4125

Re: [C++] Template-Argument als Bedingung

Rein prinzipiell: Du hast deine Components in einem Array. Du hast einen Enum der die einzelnen Components kennzeichnet. Du willst aus dem Array die entsprechende Component bekommen, wieso nicht einfach deinen enum Wert als Array Index nehmen und fertig? Abgesehen davon kommen mit bei deinem Code ab...
von dot
01.02.2018, 01:53
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [Visual C++] Funktionsobjekt -> Crash
Antworten: 7
Zugriffe: 1401

Re: [Visual C++] Funktionsobjekt -> Crash

Sehr strange. Soweit ich das sehen kann ist dieses _Pass_fn() eine Optimierung in der MSVC STL die checked ob das übergebene Funktionsobjekt < sizeof(void*) ist und wenn ja by value und ansonsten by reference passed. Die Funktion tut nix andres als je nachdem entweder eine Kopie oder eine Referenz a...
von dot
31.01.2018, 04:42
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [Visual C++] Funktionsobjekt -> Crash
Antworten: 7
Zugriffe: 1401

Re: [Visual C++] Funktionsobjekt -> Crash

Klingt sehr merkwürdig und bei mir läuten da definitiv keine Glocken. Und in unseren Codebasen gibt es einige Stellen wo Funktionsobjekte an STL Algorithmen übergeben werden und noch viel mehr Stellen mit Lambdas und das alles hat immer klaglos funktioniert und tut dies auch mit VS 2017 weiterhin. W...
von dot
17.01.2018, 16:13
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [Visual C++] meine Compilereinstellungen
Antworten: 25
Zugriffe: 15044

Re: [Visual C++] meine Compilereinstellungen

Wie schon gesagt wurde hat MBCS mit UTF-8 (leider) nix zu tun da die von dem entsprechenden Switch betroffenen Mechanismen (afaik) kein UTF-8 supporten. MBCS ist afaik rein prinzipiell nur relevant wenn du die Ansi-Varianten der WinAPI verwendest, was heutzutage niemand tun sollte. Windows verwendet...
von dot
15.01.2018, 02:59
Forum: Vorstellungsbereich
Thema: [Projekt] StoneQuest lebt noch!
Antworten: 914
Zugriffe: 227446

Re: [Projekt] StoneQuest lebt noch!

Btw (Zudomon weiß es eh schon, aber vielleicht auch falls sonst noch wer mal drauf stoßen sollte): Was mein Problem oben mit der Auswahl der GPUs betrifft so ist das wohl kein Bug sondern liegt an Direct3D 9. So wie es aussieht enumeriert Direct3D 9 zumindest unter Windows 10 nicht, so wie man es er...
von dot
11.01.2018, 13:16
Forum: Vorstellungsbereich
Thema: [Projekt] StoneQuest lebt noch!
Antworten: 914
Zugriffe: 227446

Re: [Projekt] StoneQuest lebt noch!

Schaut echt sehr nice aus! :) Ich wollte es nach langer Zeit auch mal wieder ausprobieren. (Insbesondere wollt ich sehen, wie weit ich die Grafik auf meinem Arbeitsrechner hier aufdrehen kann :mrgreen: ) Leider scheint es da in den Settings einen Bug bei der GPU Auswahl zu geben. Mein Rechner hat dr...
von dot
08.01.2018, 03:07
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] constexpr + explizites Padding
Antworten: 4
Zugriffe: 897

Re: [C++] constexpr + explizites Padding

Oh, ich hab's mit einer globalen Variable versucht, dort hat's geklappt. Ich würde jetzt mal soweit gehen, zu postulieren, dass das ein Bug in Clang ist...
von dot
08.01.2018, 02:31
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] constexpr + explizites Padding
Antworten: 4
Zugriffe: 897

Re: [C++] constexpr + explizites Padding

constexpr Foo f = { 1, nullptr }; funktioniert laut godbolt sowohl mit msvc als auch mit clang und gcc; imo ist das alles wohldefiniert: Aggregate Initialization mit einer Initializer-List der Länge n initialisiert laut Standard die ersten n Member. [dcl.init.aggr § 3.2] Unnamed Bitfields sind kein...
von dot
03.01.2018, 11:03
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Inline Variables
Antworten: 7
Zugriffe: 1323

Re: [C++] Inline Variables

Ach so, okay. Ich meinte natürlich auch nicht, dass selectany und weak dadurch komplett ersetzt werden sollten, sondern eben nur, dass das COMDAT-Folding nun standardkonformes Fundament hat. imo nicht mehr als zuvor!? Ich würde sagen dass inline Variablen uns vielleicht von Syntaxhacks erlösen aber...
von dot
02.01.2018, 23:28
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Inline Variables
Antworten: 7
Zugriffe: 1323

Re: [C++] Inline Variables

Die Konstruktoraufruf-Abfolge ist mit inline-Variablen aber immer noch unklar. Das stinkt zum Himmel. Wenn du einen Vorschlag für einen allgemeinen Ansatz hast, der es erlaubt die Inter-Modul-Initialisierungsreihenfolge von Objekten mit Static Storage Duration sinnvoll zu definieren, dann lade ich ...
von dot
02.01.2018, 23:13
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Inline Variables
Antworten: 7
Zugriffe: 1323

Re: [C++] Inline Variables

Am ehesten noch __declspec(selectany) würde ich sagen. wobei das imo auch nicht ganz das gleiche ist. Warum nicht? A variable declared inline has the same semantics as a function declared inline : it can be defined, identically, in multiple translation units, must be defined in every translation un...
von dot
02.01.2018, 10:48
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Inline Variables
Antworten: 7
Zugriffe: 1323

Re: [C++] Inline Variables

Am ehesten noch __declspec(selectany) würde ich sagen. wobei das imo auch nicht ganz das gleiche ist. Und Weak Linkage ist dann aber doch was grundlegend anderes...
von dot
14.12.2017, 17:34
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] constexpr nur als Präfix möglich?
Antworten: 10
Zugriffe: 1431

Re: [C++] constexpr nur als Präfix möglich?

OK xD

Rein aus interesse: In welchem Kontext macht ein alignas auf einem constexpr Objekt Sinn? :o
von dot
14.12.2017, 17:12
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] constexpr nur als Präfix möglich?
Antworten: 10
Zugriffe: 1431

Re: [C++] constexpr nur als Präfix möglich?

Also muss ich mich wieder umgewöhnen … wäre ja auch zu schön gewesen :( Die Sache ist: Sowas wie ein int const * constexpr * x würde keinen Sinn ergeben. Ein "linksbindendes constexpr " analog zu deinem Einsatz von const in deinem Beispiel mit int const * constexpr x würde ebenfalls keine...
von dot
14.12.2017, 14:03
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] constexpr nur als Präfix möglich?
Antworten: 10
Zugriffe: 1431

Re: [C++] constexpr nur als Präfix möglich?

Visual C++ hat recht. constexpr ist ein specifier (sowas wie friend und inline ) und kein qualifier (sowas wie const und volatile ). Die grundlegende Struktur einer simple-declaration ist decl-specifier-seq init-declarator-list ; Specifier wie constexpr und auch der defining-type-specifier (in deine...
von dot
22.11.2017, 17:06
Forum: Allgemeine Fragen der Spieleentwicklung
Thema: Mit was baut ihr eure Windows Installer?
Antworten: 51
Zugriffe: 20006

Re: Mit was baut ihr eure Windows Installer?

OK, diese Probleme hatte ich mit WiX noch nie. In all meinen Erfahrungen hat WiX bisher ausgesprochen klaglos funktioniert; aber ich musste zum Glück nur sehr sehr selten und noch nie wirklich komplexe Installer bauen...
von dot
25.10.2017, 14:21
Forum: Allgemeines Talk-Brett
Thema: Anti-Jammer-Thread
Antworten: 2058
Zugriffe: 675422

Re: Anti-Jammer-Thread

C++11 Variadic Templates. Hab vorher so viel Bedenken und Sorgen gelesen, dass so ein obskures Sprach-Feature nur für krasse Experten geeignet sein soll. Und nun hab ich's mal eingesetzt, um uralten Code sauber zu machen, und stelle fest: ist eigentlich ganz logisch. Und ich konnte dadurch einiges ...
von dot
24.10.2017, 23:09
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1475530

Re: Jammer-Thread

Krishty hat geschrieben:Na, Legacy! Genau wie

char * x = "test"; // nicht const!
x[1] = 'E'; // Crash
Das geht ja zum Glück seit C++11 nicht mehr... *freu*