//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc. //Distributed under the Boost Software License, Version 1.0. (See accompanying //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #include #include #include template struct my_vec { }; int called=0; namespace boost { namespace qvm { void YYYY(...) { BOOST_TEST(0); } void XXXZ(...) { ++called; } template struct vec_traits< my_vec > { typedef int scalar_type; static int const dim=D; template static int read_element( my_vec const & ); template static int & write_element( my_vec & ); }; } } int main() { using namespace boost::qvm; YYYY(my_vec<2>()); XXXZ(my_vec<2>()); BOOST_TEST(called==1); return boost::report_errors(); }