Как инициализировать статический член класса, используемый в методе шаблона? - PullRequest
0 голосов
/ 05 октября 2011

Я хочу статическую константу, LIST_DELIMITER, определенную в моем классе ниже.Тем не менее, я не могу понять, как объявить это с помощью шаблонов.

// MyClass.h
#pragma once
#include <boost/algorithm/string.hpp>
#include <vector>

class MyClass
{
public:
    MyClass();
    virtual ~MyClass();

    template<class T>
    void GetAsVectorOfValues(std::vector<T> values)
    {
        boost::split(values, value_, boost::is_any_of(LIST_DELIMITER));
    }

private:
    std::string value_;
    static const std::string LIST_DELIMITER;
};

// MyClass.cpp
std::string MyClass::LIST_DELIMITER = ",";

Я знаю, что есть похожий вопрос по stackoverflow, но я не могу найти то, что я ищу.Одна вещь, которая отличается в моем случае, состоит в том, что весь мой класс не шаблонизирован, только один метод.

1 Ответ

3 голосов
/ 05 октября 2011

Вы должны использовать точно такую ​​же декларацию, включая квалификаторы:

const std::string MyClass::LIST_DELIMITER = ",";
^^^^^

В этом статическом определении члена класса нет шаблона.

...