Tengo que construir una biblioteca de C++ para Windows en un entorno Linux, el uso de g++. Me sale este error cuando voy a construir es:

RWGVector.cpp:5: error: g++ error: "expected constructor, destructor, 
or type conversion before '<' token

Edificio en Visual Studio 2010 no devuelve ningún error. Estoy construyendo esta utilizando el C++11 (también conocido como c++0x) estándar.

Tengo dos archivos, uno con la plantilla de la declaración de la clase (RWGVector.h), el otro con el constructor (RWGVector.cpp). Yo solo se mantienen las partes esenciales de cada archivo, responsable del error.

RWGVector.h:

#ifndef _RWGVECTOR_H
#define _RWGVECTOR_H

#include <vector>
#include <rw/generic.h>

template<typename V> class RWGVector
{
    public:
        RWGVector<V>();

    private:
        std::vector<V> vector_;
};
#endif

RWGVector.cpp:

#include "RWGVector.h"

template<typename V>
RWGVector<V>::RWGVector() : vector_()       //<--- Line 5
{
}

Lo que provoca este error? ¿Cómo puedo solucionarlo?

Solución:

Quitar el <V> en RWGVector<V>(); como

En la clase, el constructor de la necesidad, no el reclamo de los parámetros de una plantilla.Porque cuando se especifica la clase, el parámetro ha sido conformada

Pesar de que había otro problema, más específicas para mi situación, porque de la < rw/genérico.h > archivo, que contiene la siguiente línea:

#define RWGVector(Type) RWTValVector<Type>

Comentar que la línea solucionado el error.

InformationsquelleAutor Metal-Mighty | 2013-09-25

3 Comentarios

  1. 2
    #ifndef _RWGVECTOR_H
    #define _RWGVECTOR_H
    
    #include <vector>
    #include <rw/generic.h>
    
    template<typename V> class RWGVector
    {
        public:
            RWGVector(); // RWGVector<V> is wrong;
    
        private:
            std::vector<V> vector_;
    };
    #endif

    En class el constructor de la necesidad, no el reclamo de los parámetros de una plantilla.Porque cuando se especifica el class, el parámetro ha sido conformada

    • Gracias por la aclaración. Se me cayó el <V> y tengo otro error: RWGVector.h:10: error: expected ';' before '<' token Encontrado la causa va a editar mi post con la solución 🙂 Gracias!
  2. 3

    Caída de la <V> en RWGVector<V>(); en RWGVector.h.

    • Cayó y se obtuvo un error: RWGVector.h:10: error: expected ';' before '<' token Encontrado la causa va a editar mi post con la solución 🙂 Gracias!
  3. 0

    Usted tiene un extra de <V> aquí.

    Acaba de hacer en su RWGVector.h:

    template<typename V> class RWGVector
    {
    public:
        RWGVector();
        //     ^^^
    
    //...
    };
    • Cayó el <V> y tengo otro error: RWGVector.h:10: error: expected ';' before '<' token Encontrado la causa va a editar mi post con la solución 🙂 Gracias!

Dejar respuesta

Please enter your comment!
Please enter your name here