gpt4 book ai didi

c++ - 如何初始化模板方法中使用的静态类成员?

转载 作者:行者123 更新时间:2023-11-28 01:03:24 25 4
gpt4 key购买 nike

我想要一个静态常量,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 上也有类似的问题,但我似乎找不到我要找的东西。在我的案例中有一点不同,那就是我的整个类都没有模板化,只有一个方法。

最佳答案

您必须使用完全相同的声明,包括限定符:

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

这个静态类成员定义中没有涉及模板。

关于c++ - 如何初始化模板方法中使用的静态类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7654964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com