wie funktioniert ein const interartor?



  • aasdsad schrieb:

    Ohje... wie kann es sein wo ich doch gar kein CLI /clr oder sonst was benutze?

    Ich denke das ist nicht dein Fehler, denn ich nutze recht sicher kein CLI. Bei VS muss man C++ eben schon können, MS baut da gerne mal kleine "Spracherweiterungen" ein. Leider gibt es meines Wissens nach keinen "-strict-c++" Switch oder Ähnliches. Im Zweifelsfall bei kleinen Unsicherheiten einfach mal versuchen es mit GCC (z.B. auf ideone.com) zu kompilieren. :xmas1:



  • cooky451 schrieb:

    aasdsad schrieb:

    Ohje... wie kann es sein wo ich doch gar kein CLI /clr oder sonst was benutze?

    Ich denke das ist nicht dein Fehler, denn ich nutze recht sicher kein CLI. Bei VS muss man C++ eben schon können, MS baut da gerne mal kleine "Spracherweiterungen" ein. Leider gibt es meines Wissens nach keinen "-strict-c++" Switch oder Ähnliches. Im Zweifelsfall bei kleinen Unsicherheiten einfach mal versuchen es mit GCC (z.B. auf ideone.com) zu kompilieren. :xmas1:

    Danke für den Hinweis. Und ich habe mich schon über eine schöne Syntax beim interieren durch Container gefreut ..

    Ich habe mal

    for( auto &i : myVec )
    

    probiert. Das funktionert auch nicht im VS2010. Er schreibt:

    `

    Error: Reference variable "i" requires an initializer

    `


  • Mod

    Der Microsoft Compiler beherrscht range-based for im C++11-Stil erst ab Version 11. Auch hier kann man nur den GCC (oder Clang) empfehlen, wenn man neue Features schnell implementiert haben möchte. Die konnten das sogar schon bevor der neue Standard Ende 2011 offiziell verabschiedet wurde. Siehe:
    http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport



  • SeppJ schrieb:

    Der Microsoft Compiler beherrscht range-based for im C++11-Stil erst ab Version 11. Auch hier kann man nur den GCC (oder Clang) empfehlen, wenn man neue Features schnell implementiert haben möchte. Die konnten das sogar schon bevor der neue Standard Ende 2011 offiziell verabschiedet wurde. Siehe:
    http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport

    Danke aber VS wird in den Läden die sihc kenne nicht wegen seiner hohen Sprachkompatibilität verwendet 🙂

    Reiner Compilerwechsel bringt nichts. Man verliert eher an Produktivität. Die Modelling/Profiler/Code Coverage/Tests/Debug/Extensions/Makro/Versionierung/TODO Verwaltung/Bookmarks/Watches/Floating Debug Views/... und und und ... Tools sind bei VS alle aus einem Guß und funktionieren so weit in ganz gut. Dafür gibt es kommerzielen Support, ohne dass ich die einzelnen Tools selber entbuggen oder pflegen müsste. Auch müssen keine CMAKE oder sonstige Sprachen gelernt werden, die überhaupt nichts mit dem Projekt zu tun haben. Alles geht schnell per Klick. Wenn ich heute von Propertysheets (Vererbungsprinzip von Projekteigenschaften nach OOP) auf CMAKE Projekte umsteigen müsste ... alleine bei diesem Gedanken dreht sich mir der Magen rum. Manche sollten sich ruhig mal überlegen was sie da empfehlen bevor sie einfach einen Compiler-Wechsel empfehlen. Die C++ Sprache ist (leider) ein Steckenpferd, aber sie ist bei einer modernen Anwendungsentwicklung nur ein ganz kleiner ungewichtiger Teil.

    Zu überlegen wäre auf den Intel C++ Compiler zu wechseln. Der verkrüppelt aber AMD Prozessoren, was ebenfalls keine sinnvolle Alternative ist.

    Ein Wechsel geht vielleicht wenn jemand privat etwas kleines entwickelt ...



  • cooky451 schrieb:

    [...] MS baut da gerne mal kleine "Spracherweiterungen" ein. Leider gibt es meines Wissens nach keinen "-strict-c++" Switch oder Ähnliches.

    Probier mal /Za


  • Mod

    aasdsad schrieb:

    Zu überlegen wäre auf den Intel C++ Compiler zu wechseln. Der verkrüppelt aber AMD Prozessoren, was ebenfalls keine sinnvolle Alternative ist.

    Du bist so etwa auf dem Stand von 2006. Der Rest deiner Ansichten klingt auch eher mythisch oder von anderen Leuten unreflektiert übernommen.



  • SeppJ schrieb:

    aasdsad schrieb:

    Zu überlegen wäre auf den Intel C++ Compiler zu wechseln. Der verkrüppelt aber AMD Prozessoren, was ebenfalls keine sinnvolle Alternative ist.

    Du bist so etwa auf dem Stand von 2006. Der Rest deiner Ansichten klingt auch eher mythisch oder von anderen Leuten unreflektiert übernommen.

    Danke aber ich nutze den Intel Compiler regelmäßig. Wahrscheinlich haben sie auf Druck von Außen den SSE stop herausgenommen, weisen aber nirgendwo darauf hin, dass alle Extensions, die theoretisch auch auf AMD Prozessoren laufen könnten auch umgesetzt werden. Ganz zu schweigen von AMD spezifischen Optimierungen.

    1. Kläre mich auf wenn es anders ist. Am besten mit einem Link worin explizit gesagt wird, dass AMD Prozessoren in Produkten wie MKL in vollem Umfang unterstützt werden.

    2. Bei der Gelegenheit kannst du mir auch sagen was du an den von mir aufgezählten Tools so schlecht findest.

    3. Und wenn du schon dabei bist dann bringe mich auf den neusten Stand der Projektverwaltung. Ein Tool, vergleichbar mit Propertysheets. Ich will Projekteigenschaften zusammenklicken und neue Projekte sollen allesamt davon erben können. Will ich ne DLL, dann möchte ich ohne etwas ändern zu müssen einfach mal von meinem Propertysheet DLL erben. Darin werden alle Projektpfade Compiler/Linker/Build Events eingestellt.

    So sieht es in VS aus: http://imageshack.us/scaled/landing/593/propertysheetsvs2010.png

    Man erstellt einmal ein Property Sheet für alle möglichen externen Bibliotheken und muss sich nie wieder über fehlende includes oder input libs kümmern.

    Das ganze soll mit einem Propertysheet für:
    - Release / x86
    - Release / x64
    - Debug / x86
    - Debug / x64
    - Release / ARM
    - Release / ARM
    - Debug / ARM
    - Debug / ARM

    Für den Output braucht VS nur eine Zeile $(IntDir)$(ProjectName)-vc$(PlatformToolsetVersion)-$(Configuration)-$(PlatformName)$(TargetExt)

    wobei $(IntDir) wieder eine vollständig automatisierte Variable ist: $(ProjectRoot)$(BinPath)\msw\vc\$(PlatformToolset)\$(PlatformName)\$(Configuration)\$(ProjectName)\

    Wobei die includes/libs und alle anderen Compiler/Linker/Signierer Settings automatisch mit erschlagen werden.

    Ohne dass ich irgend eine externe Sprache wie CMAKE muss.

    Ich kenne noch keine andere IDE die so etwas beherrscht, lasse mich aber gerne von meinem 2006 Stand aktualisieren.

    Wobei die meisten hier meckern werden ohne überhaupt zu wissen dass es so etwas seit Jahren gibt während die Foren der SDKs immer wieder mit Include und Link fehlern vollgestopft werden.

    Verstehe mich nicht falsch, ich habe nichts dagegen wenn jemand CMAKE kann und nutzt. Visual Studio wird aber sicherlich nicht aus reinem Unwissen und Unplanung gekauft.

    Außerdem Herr SeppJ fällt es mir nicht das erste mal auf, dass du deine Nase in Sachen reinsteckst wovon du nicht so viel Ahnung hast, obwohl du C++ sprachtechnisch immer einen guten rat gibst.

    Ich erwarte mal deine Antworten für Punkt 1) 2) 3), in einem Guß und ohne eine zusätzliche Sprache lernen zu müssen. Das wird dann mein/dein Stand 2012 sein, von dem wir sicherlich beide profitieren werden.



  • Hier hast du z.B. den Nachweis, dass andere Prozessoren nicht genau so optimiert werden:

    http://software.intel.com/en-us/articles/optimization-notice#opt-en

    Das ist für mich ein klarer Ausschluss den Intel Compiler für allgemeine Non-Numerik Projekte, die mittels PGO auf einen bestimmten Prozessortyp gedrillt sind, zu verwenden.

    Punkt 1) hat sich somit erledigt.


  • Mod

    aasdsad schrieb:

    Ich erwarte mal deine Antworten für Punkt 1) 2) 3), in einem Guß und ohne eine zusätzliche Sprache lernen zu müssen.

    Sonst geht's dir noch gut, oder? Ich lasse mir doch keine Forderungen stellen. Entweder nimmst du meinen kleinen Hinweis an, dass es da vielleicht Fakten geben könnte, die dir nicht bekannt sind und bildest dich selbstständig fort, oder du lässt es.



  • SeppJ schrieb:

    Sonst geht's dir noch gut, oder? Ich lasse mir doch keine Forderungen stellen. Entweder nimmst du meinen kleinen Hinweis an, dass es da vielleicht Fakten geben könnte, die dir nicht bekannt sind und bildest dich selbstständig fort, oder du lässt es.

    Das ist so ziemlich die einzige Antwort die übrig bleibt wenn hinter Anschuldigungen kein fundiertes Wissen steckt. Wenn du eine Antwort parat hättest, dann wäre es nicht schwer das Kind beim Namen zu benennen. So viele IDE's gibt es nämlich nicht. Wenn diese Zahl nochmal eingegrenzt wird, die auch von großen Unternehmen (IBM,...) gepflegt werden, dann reduziert sich diese Zahl noch einmal deutlich. Selbst große Projekte wie Qt setzen beim Build Prozess auf eine make-artige Anwendung aus Mangel an Alternativen, die flexibel genug wären erst einmal die Möglichkeiten von make im Build Prozess abzudecken. Boost kocht in der Hinsicht auch ein ähnliches Süppchen.

    Was ist mit anderen Tools, dass zum Application Lifecycle Management gehört, von der Anforderungsanalyse bis hin zum Ableben der Anwendung? Ich würde mir gerne das Geld sparen. Die einzigen Tools die da brauchbare Ansätze auch wenn nicht scriptfrei und aus einem Guß haben, wären Netbeans und Eclipse.

    Wenn es deine genannten magischen, kostenfreien alles-auf-einmal-abdeckenden Tools gibt, warum werden sie dann nicht in Großprojekten eingesetzt? Sind dortige Programmierer ebenfalls auf dem Stand von 2006?

    Lass es einfach sein, du bist ein Mod, damit solltest du als Beispiel vorangehen. Bevor du jemandem einen 2006 Stand bescheinigst solltest du dein eigenes Wissen auf dem neuesten Stand halten. Du hast weder eine Ahnung über die Beschränkungen des Intel Compiler's noch ein tiefergehendes Verständnis welche Möglichkeiten die Lizensierung (ich meine hier explizit nicht die kostenfreien Express Versionen) von Visual Studio mit sich bringt.

    Sieh es als meinen kleinen Hinweis an 😉 und recherchiere einfach nach. Damit bist du mehr oder weniger gewollt ebenfalls auf den neuesten Stand gebracht worden. Entweder du bildest dich in dieser Hinsicht fort oder lässt es ebenfalls sein und läufst demnächst genau so gegen die Wand.



  • cooky451 schrieb:

    Leider gibt es meines Wissens nach keinen "-strict-c++" Switch oder Ähnliches.

    Doch, den gibt es eigentlich schon: Eigenschaften - C/C++ - Sprache - Spracherweiterungen deaktivieren Ja (/Za).

    Dann kommen auch Fehlermeldungen:
    Error 1 error C2061: Syntaxfehler: Bezeichner 'each'


Anmelden zum Antworten