statyczna mapa listy par

0

Czy da się tak zrobic (c++0x) ?

header

#include <cstdint>
#include <map>
#include <list>
#include <string>
#include <utility>

static std::map<std::string, std::list<std::pair<std::string, std::string> > > mapTones;

cpp

#include "midinote.h"

using namespace std;
map<string T, list<pair<string k, string k2> > lst > MIDInote::mapTones =
{

};

nie rozumiem. Jesli wywale nazwy zmiennych w definicji w Cpp to sie kompiluje, jak je dopisze tak jak wyzej to
wywala mi : błąd:wrong number of template arguments (1, should be 4)

0

Coś Ci się grubo pomieszało. Nigdzie nie masz zdefiniowanej klasy MIDInote. Sam static działa inaczej dla zmiennej globalnej, nie zdefiniowanej w klasie, dokładniej deklarujesz zmienną z parametrem static, a nie tylko definiujesz. Extern działa tak, jakbyś tego chciał. W pliku cpp masz w definicji szablonu lst, z czego wynika błąd kompilatora (naprawienie tylko tego dużo nie pomoże). Przy tak dużych definicjach szablonowych radziłbym używać typedefów, zobacz na przykłady użycia CGAL, choć tam programowanie z użyciem szablonów jest posunięte do ekstremum.

1 użytkowników online, w tym zalogowanych: 0, gości: 1