Namespace usw.

  • Hi!


    Ich weiß, dass das VDR-Portal eigentlich kein C++-Support-Forum ist, allerdings weiß ich auch dass genügend fähige Programmier hier rumhängen.


    So genug geschleimt. :D Folgendes Problem:
    Ich habe ja vor ein paar tagen mein osdimage-Plugin veröffentlicht. Dabei verwende ich ImageMagick und andere Dinge aus Bibliotheken. ImageMagick oder auch Strings oder Vectoren benötigen ja einen Namespace, also sowas wie "using namespace std;".
    Jetzt dachte ich, dass ich einfach für jedes Objekt angebe, woher es kommt, also z.B. "std::vector<std::string> irgend_ein_vector_mit_strings;"
    Allerdings scheint das doch Probleme zu bereiten und auf manchen Systemen kompiliert das ganze nicht ohne ein zusätzliches "using namespace ..." (siehe hier)


    Kann mir das kurz jemand erklären warum das so ist, oder ist das "einfach" ein Programmierfehler von mir?


    Gruß und Danke schon mal,
    Brougs78

    - -- --- ================================================================ --- -- -
    Antec Fusion, Intel E5200, Asus P5N7A-VM (VDPAU), DD CineS2 v6 + DD DuoFlex CI // yavdr-0.6.1
    - -- --- ================================================================ --- -- -

  • Hi,


    gcc-2.95 ignoriert die Begrifflichkeit des "namespace std".


    Schaue dir mal die /usr/include/g++-3/stl-config.h dazu an,


    // __STL_NO_NAMESPACES is a hook so that users can disable namespaces
    // without having to edit library headers.
    # if defined(__STL_HAS_NAMESPACES) && !defined(__STL_NO_NAMESPACES)
    # define __STD std
    # define __STL_BEGIN_NAMESPACE namespace std {
    # define __STL_END_NAMESPACE }
    # define __STL_USE_NAMESPACE_FOR_RELOPS
    # define __STL_BEGIN_RELOPS_NAMESPACE namespace std {
    # define __STL_END_RELOPS_NAMESPACE }
    # define __STD_RELOPS std
    # define __STL_USE_NAMESPACES
    # else
    # define __STD
    # define __STL_BEGIN_NAMESPACE
    # define __STL_END_NAMESPACE
    # undef __STL_USE_NAMESPACE_FOR_RELOPS
    # define __STL_BEGIN_RELOPS_NAMESPACE
    # define __STL_END_RELOPS_NAMESPACE
    # define __STD_RELOPS
    # undef __STL_USE_NAMESPACES
    # endif



    Cu,
    Andreas


    Edit: Folgendes noch gefunden : http://gcc.gnu.org/fom_serv/cache/68.html

  • Hi!


    Danke für die Infos.
    Manche hatte das Problem aber auch bei neueren Versionen (gcc-3.3).
    Werd mir mal die Links ansehen.


    Gruß,
    Brougs78

    - -- --- ================================================================ --- -- -
    Antec Fusion, Intel E5200, Asus P5N7A-VM (VDPAU), DD CineS2 v6 + DD DuoFlex CI // yavdr-0.6.1
    - -- --- ================================================================ --- -- -

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!