Die Suche ergab 467 Treffer
- 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...
- 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...
- 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?
Das war auch mit einem Augenzwinkern gemeint ;)odenter hat geschrieben:Das hat ja nichts mit der Größe des Unternehmens zu tun, sondern mit den Anforderungen.
- 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...
- 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...
- 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...
- 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...
- 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...
- 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?
- 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...
- 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...
- 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...
- 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...
- 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...
- 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.
- 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 ...
- 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 ...
- 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...
- 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.
- 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...
- 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...
- 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...
- 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...
- 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.
- 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...
- 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 ...
- 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 ü...
- 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;...
- 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...
- 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...