YoHen Fu
YoHen Fu

Reputation: 19

For std::vector<std::any>, why GCC has different results from MSVC

GCC: myVector size is 1 myVector2 size is 2

MSVC: myVector size is 3 myVector2 size is 2

#include <iostream>
#include <vector>
#include <any>

int main() {
    std::vector<std::any> myVector = {
        std::vector<std::any>{1, 2, 3}
    };
    std::cout << myVector.size() << std::endl;

    std::vector<std::any> myVector2 = {
        std::vector<std::any>{1, 2, 3},
        std::vector<std::any>{1, 2, 3}
    };
    std::cout << myVector2.size() << std::endl;
    return 0;
}

The results given by MSVC seem counter-intuitive,when I try push_back std::vector<std::any>{1, 2, 3} to myVector,in MSVC,the size of myVector is 1.But I don't want to use this method. How can I make MSVC give intuitive results, that is the size of myVector is 1

Upvotes: 1

Views: 34

Answers (0)

Related Questions