cgal/STL_Extension/test/STL_Extension/test_is_streamable.cpp

33 lines
997 B
C++

#include <CGAL/assertions.h>
#include <CGAL/is_streamable.h>
#include <utility> // std::pair
#include <boost/tuple/tuple.hpp>
#include <boost/tuple/tuple_io.hpp>
struct A {};
struct B {};
struct C {};
struct D {};
using std::ostream;
using std::istream;
ostream& operator<<(ostream& os, const B&) { return os; }
istream& operator>>(istream& is, const B&) { return is; }
ostream& operator<<(ostream& os, const C&) { return os; }
istream& operator>>(istream& is, const D&) { return is; }
int main() {
using CGAL::is_streamable;
CGAL_static_assertion(!is_streamable<A>::value);
CGAL_static_assertion(is_streamable<B>::value);
CGAL_static_assertion(!is_streamable<C>::value);
CGAL_static_assertion(!is_streamable<D>::value);
CGAL_static_assertion(is_streamable<int>::value);
CGAL_static_assertion(is_streamable<double>::value);
CGAL_static_assertion(! (is_streamable<std::pair<int, int> >::value) );
CGAL_static_assertion( (is_streamable<boost::tuple<int, int> >::value) );
}