Skip to content

败犬日报 2025-08-12

1. MSVC 的版本号系统也太离谱了

产品名称 Visual Studio 2022,版本号 VS 17.x。

C++ 工具集版本 v144,对应的目录是 14.4x,对应的 cl.exe 版本号是 19.4x,_MSC_VER 取值是 194x。

2. 赋值运算符重载为 push_back

cpp
template <typename Container>
struct Inserter {
    Inserter(Container& c) : c(c) {};

    template <typename T>
    Inserter& operator()(T&& value) {
        c.push_back(std::forward<T>(value));
        return *this;
    }

    Container& c;
};

这合理吗?其实这是一种迭代器,例如 https://en.cppreference.com/w/cpp/iterator/back_inserter.html 给出的代码,就用 fill_n 完成 push_back 操作:

cpp
int main()
{
    std::vector<int> v{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    std::fill_n(std::back_inserter(v), 3, -1);
    for (int n : v)
        std::cout << n << ' ';
    std::cout << '\n';
}