Код:
template<>
std::map > Storage::things = {
{ 1, {"FOO", "foo"} },
{ 2, {"BAR", "bar"} },
{ 3, {"ZAR", "zar"} }
};
- это не специализация шаблона класса Storage
, а специализация статического члена данных шаблона класса .
Член класса шаблона может быть специализированным (при условии, что нет нестатических членов данных). То есть можно специализировать весь класс шаблона в целом, как в:
template
struct A{
struct B{
using type = T;
};
void g();
};
template<>
struct A{}; //specialize the entire class.
Или специализировать только элемент шаблона класса:
//Specialization of B for A
template<>
struct A::B{
static int f();
};
Вышеуказанная специализация члена эквивалентно специализации шаблонного класса:
template<>
struct A{
struct B{ //come from the member specialization definition
static int f();
};
void g(); //come from unspecialized A definition.
};
В результате вы можете наблюдать это, если попытаетесь скомпилировать:
A::B::type x = `a`;
A::B::type y = `b`;
A::B::type err; //compilation error
int z = A::B::f(); //ok.
A::B o; //compilation error
auto w = A::f(); //compilation error
очистка svn?
не уверенный, как Вы сделали бы это от затмения, хотя..., но если это - стандарт svn работающий копия, необходимо все еще смочь сделать это с другим инструментом.
Похоже, что репозиторий имеет немного confised! Вы могли попробовать 'svn очистка' в каталоге проекта.
можно сделать это на командной строке или использовании другого инструмента...
От командной строки, необходимо будет установить подверсию и на ПУТИ. Закройте Eclipse, откройте командную строку и CD к корню проекта, затем введите 'svn очистку'.
Вы могли также использовать черепаха SVN , чтобы сделать то же от Windows Explorer. Установите Черепаху SVN и закройте Eclipse. В Windows Explorer перейдите к родителю Вашего каталога проекта, щелкните правой кнопкой по папке проекта и избранной 'Черепахе, которую SVN'-> 'Очищают'