Die Suche ergab 467 Treffer

von kaiserludi
02.08.2011, 18:40
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: new vs. malloc in C++ Code, für an C-Code weiterzugebendes
Antworten: 5
Zugriffe: 1097

Re: new vs. malloc in C++ Code, für an C-Code weiterzugebend

Vergiss auch nicht, dass du new mit zusätzlichen Parametern überladen kannst. Also z.B. new (LibraryXYZBound) LibClass();  – dann ist es wumpe, wer operator new ( ohne zusätzliche Parameter) überschreibt. Interessant, wusste ich gar nicht ,dass man da Parameter übergeben kann. Es muss nicht nur der...
von kaiserludi
02.08.2011, 17:29
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: new vs. malloc in C++ Code, für an C-Code weiterzugebendes
Antworten: 5
Zugriffe: 1097

new vs. malloc in C++ Code, für an C-Code weiterzugebendes

Generell gilt es ja als guter Stil, in C++ immer new statt malloc zu verwenden, auch wenn es nicht um Objekte, sondern um primitive Typen geht, immerhin könnte ja mal wer auf die Idee kommen und den new-operator zu überladen und plötzlich müsste man den malloc-Code per Hand anpassen. Ich habe hier n...
von kaiserludi
14.07.2011, 10:19
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Sollte man VC spezifisch proggen?
Antworten: 14
Zugriffe: 1589

Re: Sollte man VC spezifisch proggen?

odenter hat geschrieben:Das hat ja nichts mit der Größe des Unternehmens zu tun, sondern mit den Anforderungen.
Das war auch mit einem Augenzwinkern gemeint ;)
von kaiserludi
13.07.2011, 18:56
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Sollte man VC spezifisch proggen?
Antworten: 14
Zugriffe: 1589

Re: Sollte man VC spezifisch proggen?

Wenn du in großen Firmen programmierst ist es eh so gut wie egal, weil dort selbst Compiler-Einstellungen nur jedes zweite Weihnachten geändert werden, Compiler-Versionen nur in Schaltjahren und Compilertypen nie. Man merkt, dass ich für eine kleine Firma arbeite: Die C++ Variante des Codes kompili...
von kaiserludi
04.07.2011, 19:55
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++]Gegenseitiges includieren
Antworten: 11
Zugriffe: 2166

Re: [C++]Gegenseitiges includieren

jetzt stell dir vor, Klasse 1 ist ein einer externen Library und Klasse 2 in einer App. Spätestens in dem Moment funktioniert das Prinzip nicht mehr, dass beide Klassen Pointer auf die jeweils andere Klasse halten, weil die Lib gar nicht weiß, welche Klassen die App definieren wird. Man nutzt für so...
von kaiserludi
19.04.2011, 19:54
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Funktionsparameter const * const - Sinn des zweiten const?
Antworten: 9
Zugriffe: 1354

Re: Funktionsparameter const * const - Sinn des zweiten cons

Der Punkt ist: Du sagst irgendwo weit oben im Programm, die Funktion hätte keine Wirkung. Und ganz unten sagst du dann: Hat sie doch. Für die Programmkonsistenz ist das eine Lose-Lose-Situation und genau die Art von Doppelbindung, die in Science-Fiction-Filmen den Roboter zum Töten aller Menschen v...
von kaiserludi
19.04.2011, 19:10
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Funktionsparameter const * const - Sinn des zweiten const?
Antworten: 9
Zugriffe: 1354

Re: Funktionsparameter const * const - Sinn des zweiten cons

Der Compiler kann sich da doch eh nicht auf das const alleine verlassen, sondern muss so oder so in den Funktionsrumpf schauen, da ich das const ja wegcasten könnte. Muss er nicht. In Objekte zu schreiben, die das Resultat von const_cast sind, ist Undefined Behavior. Der Compiler/Optimizer kann jed...
von kaiserludi
19.04.2011, 13:51
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Funktionsparameter const * const - Sinn des zweiten const?
Antworten: 9
Zugriffe: 1354

Re: Funktionsparameter const * const - Sinn des zweiten cons

Der einzige nennenswerte Zweck waere, dass der Compiler evtl. in der Lage ist, die Funktion besser zu optimieren da es ja klar ist, dass sich die Parameter nicht aendern koennen. Letztlich ist das Argument aber hinfaellig, denn das findet der Compiler auch locker ohne das const heraus. Der Compiler...
von kaiserludi
19.04.2011, 13:10
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Funktionsparameter const * const - Sinn des zweiten const?
Antworten: 9
Zugriffe: 1354

Re: Funktionsparameter const * const - Sinn des zweiten cons

Sprich, für den Aufrufer der Funktion ist es genauso irrelevant wie ob ich rein lokale Variablen const mache oder nicht?
von kaiserludi
19.04.2011, 12:53
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Funktionsparameter const * const - Sinn des zweiten const?
Antworten: 9
Zugriffe: 1354

Funktionsparameter const * const - Sinn des zweiten const?

Moin. Wenn man von const-Correctness spricht, sieht man oft Code wie diesen als propagierte Ideallösung: void foo(const int* const foobar); Wo ist der Vorteil gegenüber void foo(const int* foobar); ? Im ersten Fall ist nicht nur die Variable, auf die der Pointer zeigt, konstant, sondern zusätzlich a...
von kaiserludi
10.04.2011, 13:19
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++]Freundschaft für einzelnes Member
Antworten: 18
Zugriffe: 8125

Re: [C++]Freundschaft für einzelnes Member

Ich greife das Thema mal auf für ein ähnliches Problem. In C# gibt es ja das Schlüsselwort Internal, um etwas innerhalb einer Bibliothek public zu machen, aber nicht außerhalb. Kann man das irgendwie in C++ simulieren? Bisher habe ich mir geholfen, in dem Klassen innerhalb der Bibliothek, die Zugrif...
von kaiserludi
05.04.2011, 22:42
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Omg. Jaa, das mit sizeof(void) ist drin, weil es die Metaprogrammierung erleichtert (derselbe Grund, aus dem man auch void voidFunc() { return notherVoidFunc(); } schreiben kann) – aber das mit der void * -Arithmetik und 1 == sizeof(void) zeigt ziemlich gut, was für Verwirrung man stiftet, wenn man...
von kaiserludi
05.04.2011, 17:43
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Siehe auch http://codepad.org/dxG0wTNY fuer das erste und http://codepad.org/aghmcbkd fuer das zweite Snippet. error: pointer of type 'void *' used in arithmetic Um da drauf noch einmal zurück zu kommen. Die Fehlermeldung schmeißt codepad im C++ Modus mit G++ als Compiler, da Codepad hier in den Pa...
von kaiserludi
31.03.2011, 17:47
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Aber ist die Regel für const nicht, wenn es links von dem const nichts gibt, worauf es angewandt werden kann, dann wird geprüft, ob es rechts was gibt? Demnach müsste "typedef typename const ConfirmAllowed<CType>::type type;" doch gleichbedeutend mit "typedef typename ConfirmAllowed<C...
von kaiserludi
31.03.2011, 16:06
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Nein, ist er nicht, aber das mit der Sinnlosigkeit ist ein gutes Stichwort, jetzt wo ich noch mal drüber nachdenke.
von kaiserludi
31.03.2011, 15:16
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Interssant: Folgender Code wird von VS anstandslos akzeptiert, wirft im GCC aber einen Haufen Fehler: template<class CType> struct ConfirmAllowed<const CType> { typedef typename const ConfirmAllowed<CType>::type type; typedef typename const ConfirmAllowed<CType>::scalarType scalarType; static const ...
von kaiserludi
30.03.2011, 21:50
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: QT
Antworten: 13
Zugriffe: 2354

Re: QT

Wenn Du Dich darum nicht kümmern willst, empfehle ich Dir, Dir einfach den QCreator runterzuladen. Das ist eine Qt-eigene plattformunabhängige Entwicklungsumgebung - ebenso mit Qt geschrieben. Funktioniert ziemlich gut. Wenn man Visual Studio kennt, dann ist die Xcode IDE im Verlgeich dazu einfach ...
von kaiserludi
29.03.2011, 22:06
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Ja, aber wer dem Standard in dem Punkt nicht folgt, der folgt ihm veilleicht auch in der Anmerkung nicht, wesewegen es wohl eh nur Sinn amcht, die Konstannte auf Gleichheit/Ungleichheit zu checken und nicht auf <= 99999 bzw. >99999. Auch wäre ein icht standardkonformer Compiler ja konform zu der Anm...
von kaiserludi
29.03.2011, 21:51
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Stimmt, maxximal, aber ann gilt das von mir gesagte eben für Nummern über 5 Stellen: Wer in der Lage ist, seine über 5-stellige Nummer zu ändern, der kann sie genauso gut gleich standardkonform machen.
von kaiserludi
29.03.2011, 21:26
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

__cplusplus Non-conforming compilers should use a value with at most five decimal digits. Was bringt das denn, das festzulegen? Entwede habe ich das Makro schon vor dem Standard auf einen anderen Wert definiert und kann es aus Abwärtskompatibilitätsgründen nicht mehr ändern, dann aknn ich es aber a...
von kaiserludi
29.03.2011, 20:46
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

(Wobei ich nicht weiß, ob das in C++97 auch schon so war.) C++ 97? Gibt es nicht nur C++ 98, C++ 03 und C++ 0x und alles vor C++ 98 war nicht offiziell standadisiert? Stimmt, der Standard ist von ’98. Ich hatte einfach schnell auf das __cplusplus -Makro in VC geguckt, und das ist auf November ’97 d...
von kaiserludi
29.03.2011, 19:43
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

@dot: Du hast die Autoren verwechselt ;) oops, habs ausgebessert Nein – der Standard schreibt vor, dass char die Größe der kleinsten adressierbaren Einheit hat. Auch ein Byte ist als kleinste adressierbare Einheit definiert; darum ist char immer automatisch 1 Byte groß. Bytes im Sinne von 8-Bit-Gru...
von kaiserludi
29.03.2011, 18:36
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Und noch einer hinterher: ptr + i hat man zu lesen als ptr um i Elemente verschoben . Einfacher geht es wirklich nicht mehr. Die einzigen Element-Typen, mit denen man auf Bytes arbeiten kann, sind char und unsigned char (wobei ich mir bei letzterem nicht sicher bin). Also ich finde ptr als i-tes El...
von kaiserludi
29.03.2011, 17:08
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Krishty hat geschrieben: Und &((int*)pArray) gleicht dem klareren ((int*)pArray) + i.

Nein, es gleicht ((int*)pArray) + i*sizeof(int) und dabei kann man der Einfachheit halber den Cast auch weglassen und direkt pArray+i*sizeof(int) schreiben, um den Code leserlicher zu machen.
von kaiserludi
29.03.2011, 17:01
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Es geht mir um so Code wie z.B. (Achtung, Pseudo-Code): void* pArray = NULL; if(condition) { pArray = malloc(sizeof(int)*length); for(init i=0; i<length; i++) foo(pArray+i*sizeof(int)); } else { pArray = malloc(sizeof(short)*length); for(init i=0; i<length; i++) foo(pArray+i*sizeof(short)); } So was...
von kaiserludi
29.03.2011, 16:35
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

pArray+i*sizeof(int) ist highlevel im Grunde das Gleiche wie &pArray , wenn pArray als "int* pArray;" definiert ist. Allerdings funktioniert die erste Syntax auch, wenn man es mit einem "void* pArray;" zu tun hat, während die zweite Syntax in dem Fall einen explizen Cast auf ...
von kaiserludi
29.03.2011, 15:10
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Über Speicheradressen nachzudenken hat nichts mit C++-Programmierung zu tun , sondern ist Low-Level-Kram, der in 99 % der Fälle unbedeutend ist. Ich darf mich in der Praxis auch genug mit Low-Level C-Code und ab und an Inline-Assembler rumschlagen, da ist es schon wichtig, zu wissen, dass Pointer ü...
von kaiserludi
29.03.2011, 14:38
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: (gelöst) wfstream akzeptiert keine wide-chars
Antworten: 9
Zugriffe: 1608

Re: wfstream akzeptiert keine wide-chars

und genauso verkorkst sind MS, dass sie unzählige Übersetzungsfunktionen bereitstellen, aber keine für UTF-8 Wie wäre es hiermit: char* Unicode2UTF8(const EG_CHAR* wstr, int src_len, unsigned char* dst, int dst_size) { WideCharToMultiByte(CP_UTF8, 0, wstr, src_len, dst, dst_size, 0, 0); return dst;...
von kaiserludi
29.03.2011, 13:36
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Es muesste theoretisch noch nicht einmal die Adresse 0 sein. Urgs, sprich, ein NULL, welches in C als ((void*)0) und in C++ als 0 definiert ist, könnte z.B. auch auf die Speicheradresse 1 verweisen? Demnach würde dann in dem Fall *(int*)(rand()%2) auf die identische Adresse zugreifen? OK, wäre wohl...
von kaiserludi
29.03.2011, 12:14
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: partielle Template Spezialisierung multi-dimension C-arrays
Antworten: 58
Zugriffe: 6834

Re: partielle Template Spezialisierung multi-dimension C-arr

Ich habe jetzt neben den Konstruktoren für die Basistypen auch diese beiden Konstruktoren: ValueObject(typename ConfirmAllowed<Etype>::type data, short size); ValueObject(typename ConfirmAllowed<Etype>::type data, const short* const sizes); Wenn ich jetzt den oberen Kosntruktor wie folgt aufrufen wi...