我正在尝试使用初始化列表初始化set<string_view>
动态类成员。当它不是指向集合的指针时很容易,但在那种情况下我真的不知道如何做到这一点。
class Textpool {
public:
Textpool() = default;
Textpool(const std::initializer_list<std::experimental::string_view> &StringList);
~Textpool() = default;
private:
std::set<std::experimental::string_view> *StringSet_;
};
如果它不是指针,那将会是这样的:
Textpool::Textpool(const std::initializer_list<std::experimental::string_view> &StringList) : StringSet_{StringList} {}
答案 0 :(得分:0)
如果你的成员必须是指针,那么它也必须初始化为指向某个东西。请注意,如果您有指针成员,则默认使用ctor / dtor通常是个坏主意。
但是,假设你处理的是,它不是那么简单(为了清晰起见而添加了空格)
Textpool::Textpool(const std::initializer_list<std::experimental::string_view> &StringList)
: StringSet_(new std::set<std::experimental::string_view>{StringList})
{
}