concept_checks.cpp 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // Copyright 2002 The Trustees of Indiana University.
  2. // Use, modification and distribution is subject to the Boost Software
  3. // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  4. // http://www.boost.org/LICENSE_1_0.txt)
  5. // Boost.MultiArray Library
  6. // Authors: Ronald Garcia
  7. // Jeremy Siek
  8. // Andrew Lumsdaine
  9. // See http://www.boost.org/libs/multi_array for documentation.
  10. //
  11. // concept_checks.cpp -
  12. // make sure the types meet concept requirements
  13. //
  14. #include <boost/concept_check.hpp>
  15. #include <boost/multi_array/concept_checks.hpp>
  16. #include <boost/multi_array.hpp>
  17. #include <boost/cstdlib.hpp>
  18. #include <boost/core/lightweight_test.hpp>
  19. #include <boost/array.hpp>
  20. int
  21. main()
  22. {
  23. const int ndims=3;
  24. typedef boost::multi_array<int,ndims> array;
  25. typedef boost::multi_array_ref<int,ndims> array_ref;
  26. typedef boost::const_multi_array_ref<int,ndims> const_array_ref;
  27. typedef array::array_view<ndims>::type array_view;
  28. typedef array::const_array_view<ndims>::type const_array_view;
  29. typedef array::subarray<ndims>::type subarray;
  30. typedef array::const_subarray<ndims>::type const_subarray;
  31. boost::function_requires<
  32. boost::multi_array_concepts::ConstMultiArrayConcept<array,ndims> >();
  33. boost::function_requires<
  34. boost::multi_array_concepts::ConstMultiArrayConcept<array_ref,ndims> >();
  35. boost::function_requires<
  36. boost::multi_array_concepts::ConstMultiArrayConcept<const_array_ref,ndims> >();
  37. boost::function_requires<
  38. boost::multi_array_concepts::ConstMultiArrayConcept<array_view,ndims> >();
  39. boost::function_requires<
  40. boost::multi_array_concepts::ConstMultiArrayConcept<const_array_view,ndims> >();
  41. boost::function_requires<
  42. boost::multi_array_concepts::ConstMultiArrayConcept<subarray,ndims> >();
  43. boost::function_requires<
  44. boost::multi_array_concepts::ConstMultiArrayConcept<const_subarray,ndims> >();
  45. boost::function_requires<
  46. boost::multi_array_concepts::MutableMultiArrayConcept<array,ndims> >();
  47. boost::function_requires<
  48. boost::multi_array_concepts::MutableMultiArrayConcept<array_ref,ndims> >();
  49. boost::function_requires<
  50. boost::multi_array_concepts::MutableMultiArrayConcept<array_view,ndims> >();
  51. boost::function_requires<
  52. boost::multi_array_concepts::MutableMultiArrayConcept<subarray,ndims> >();
  53. return 0;
  54. }