initializer_list的使用

问题遇到的现象和发生背景

Message是我自己定义的一个类。用到的库文件都写上了。

用代码块功能插入代码,请勿粘贴截图
explicit Folder(std::initializer_list<const Message&>li){for(Message &temp:li)messages.insert(&temp);}

运行结果及报错内容

img

我的解答思路和尝试过的方法

我的原意是想写一个Folder类的构造函数,这个构造函数可以接受n个Message类进行构造(是引用传递)。然后通过for循环将每个Message类对象的指针插入到Folder类的messages对象容器(容器set)中。
报错看不懂为什么说无构造begin(……)函数,initializer_list不可以把它当作类似数组一样用吗?还是其他怎么回事?

以下是写的一部分代码,没什么用的,忽略就好

class Folder;
class Message
{
private:
    std::set<Folder *> folders;
    std::string contents;
public:
    explicit Message(const std::string&);
    explicit Message(const std::string&,Folder&);
    Message (const Message& temp):folders(temp.folders),contents(temp.contents){};
    Message& operator=(const Message& temp){folders=temp.folders;contents=temp.contents;return *this;}
    ~Message();
};
inline Message::Message(const std::string& s= ""):contents(s){}

inline Message::Message(const std::string& s,Folder &f):contents(s),folders({&f}){};


class Folder
{
private:
    std::set<Message*> messages;
public:
    explicit Folder(Message& li){messages.insert(&li);}
    explicit Folder(std::initializer_list<const Message&>li){for(Message &temp:li)messages.insert(&temp);}
    Folder(const Folder&)=delete;
    Folder operator=(const Folder&)=delete;
    ~Folder();
};



explicit Folder(std::initializer_list<Message> li) {
        for (Message temp : li) { messages.insert(&temp); }
            
    }