забавный баг в boost.container.vector
От: niXman Ниоткуда https://github.com/niXman
Дата: 05.11.14 20:25
Оценка:
привет!

собственно тест:

#include <boost/container/vector.hpp>
#include <boost/container/static_vector.hpp>

#include <iostream>

int main() {
    using vec = boost::container::vector<int>;
    vec v0 = {0,1,2,3,4};
    vec v1 = {0,1,2,3,4};
    std::cout << "'v0 == v1' is " << std::boolalpha << (v0 == v1) << std::endl;

    using svec = boost::container::static_vector<int, 10>;
    svec s0 = {0,1,2,3,4};
    svec s1 = {0,1,2,3,4};
    std::cout << "'s0 == s1' is " << std::boolalpha << (s0 == s1) << std::endl;
}

вывод:

nixman@sparc-t3:~/tests$ g++ -std=c++11 contvec.cpp -ocontvec && ./contvec
'v0 == v1' is false
's0 == s1' is false

тыц.

я, собственно, интересуюсь другим.
почему что тут, что в 'std::vector', сравнение двух контейнеров реализовано поэлементным сравнением?
можно же было сделать проверку на 'std::is_fundamental<T>' и сравнивать с использованием 'std::memcmp()'?
есть идеи, почему разрабы пошли другим способом?

спасибо.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.