View Single Post
Old 17-11-2014, 12:05   #1
biowep
Member
 
L'Avatar di biowep
 
Iscritto dal: Nov 2010
Messaggi: 211
[C++] Problem inserimento valori dentro una mappa e crash.

Salve, ho un programma composto da varie classi con un main semplice che stampa solo una stringa e nient'altro. Quando lo faccio partire, il programma crasha direttamente per cui il main non viene eseguito neanche. Ho ridotto il problema ad una classe che estende una classe ed un template per ridurre un po il codice.

Codice PHP:
//Binary.hpp
#include <string>
#include "OperatorCore.hpp"
#include "StaticPool.hpp"
class Binary final : public OperatorCore, public StaticPool<Binary> {
public:
    
Binary(int IDstd::string name)
        : 
OperatorCore(name), StaticPool<Binary>(ID) {
    }
    ~
Binary() {}
};
//Binary.cpp
template<>
const 
Binary StaticPool<Binary>::pool[] = {
    
Binary(0"+")//togliendo questa riga funziona
};

//OperatorCore
#include <string>
#include <map>
class OperatorCore {
public:
    static 
std::map<std::stringOperatorCore*> symbolMap;
    const 
std::string name;
    
OperatorCore(std::string name) : name(name) {
        
symbolMap.insert({namethis});//togliendo questa riga funziona
    
}
    
virtual ~OperatorCore() {}
};

//StaticPool
template<typename Ttypename TKey int>
class 
StaticPool {
public:
    const 
TKey ID;
    static const 
T pool[];
    
StaticPool(TKey ID) : ID(ID) {}
    
virtual ~StaticPool() {}

}; 
Il problema potrebbe per caso essere che Binary eredita da StaticPool<Binary> che è incompleto finché non definisco l'array? Ma non dovrebbe essere incompleto dal momento che l'array è dichiarato static.
Ho usato i tag del codice PHP per colorare la sintassi.

Ultima modifica di biowep : 17-11-2014 alle 15:31.
biowep è offline   Rispondi citando il messaggio o parte di esso