#include <vector>
#include <string>

class ListBuilder {
private:
    std::vector<std::string> data;
public:
    ListBuilder& operator<<(const std::string& str) {
        data.push_back(str);
        return *this;
    }
    void clear() {
        data.clear();
    }

    std::vector<std::string> getData() const {
        return data;
    }
};

#include <iostream>

int main() {
    auto vec = (ListBuilder() << "hello" << "world" << "!").getData();
    for(auto& i : vec)
        std::cout << i << '\n';
    std::cout << vec.size();
}