Changeset 4132


Ignore:
Timestamp:
Jan 21, 2022, 2:12:39 AM (20 months ago)
Author:
Peter
Message:

fixes #976 concept for Container2D now works with abstract class

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/matrix.cc

    r4124 r4132  
    2727#include "Suite.h"
    2828
     29#include "yat/utility/concept_check.h"
    2930#include "yat/utility/Matrix.h"
     31
     32#include <boost/concept_check.hpp>
    3033
    3134#include <cmath>
     
    284287
    285288  test_assignment(suite);
     289
     290  // test concepts
     291  BOOST_CONCEPT_ASSERT((utility::Container2D<utility::MatrixBase>));
     292  BOOST_CONCEPT_ASSERT((utility::Mutable_Container2D<utility::MatrixMutable>));
     293  BOOST_CONCEPT_ASSERT((utility::Mutable_Container2D<utility::Matrix>));
     294
    286295  return suite.return_value();
    287296}
  • trunk/test/matrix_view.cc

    r4131 r4132  
    2424#include "Suite.h"
    2525
     26#include "yat/utility/concept_check.h"
    2627#include "yat/utility/Matrix.h"
    2728#include "yat/utility/MatrixConstView.h"
    2829#include "yat/utility/MatrixView.h"
     30
     31#include <boost/concept_check.hpp>
    2932
    3033using namespace theplu::yat;
     
    197200void test_matrix_view(test::Suite& suite)
    198201{
     202  BOOST_CONCEPT_ASSERT((utility::Mutable_Container2D<utility::MatrixView>));
    199203  suite.out() << "=== " << __func__ << "===\n";
    200204  using utility::MatrixView;
     
    213217void test_matrix_const_view(test::Suite& suite)
    214218{
     219  BOOST_CONCEPT_ASSERT((utility::Container2D<utility::MatrixConstView>));
    215220  suite.out() << "=== " << __func__ << "===\n";
    216221  using utility::MatrixConstView;
  • trunk/yat/utility/concept_check.h

    r3792 r4132  
    8787    BOOST_CONCEPT_USAGE(Container2D)
    8888    {
    89       const_iterator iter_ = t_.begin();
    90       iter_ = t_.end();
     89      const_iterator iter_ = t_->begin();
     90      iter_ = t_->end();
    9191      detail::avoid_compiler_warning(iter_);
    92       const_row_iterator row_iter_ = t_.begin_row(0);
    93       row_iter_ = t_.end_row(0);
     92      const_row_iterator row_iter_ = t_->begin_row(0);
     93      row_iter_ = t_->end_row(0);
    9494      detail::avoid_compiler_warning(row_iter_);
    95       const_column_iterator col_iter_ = t_.begin_column(0);
    96       col_iter_ = t_.end_column(0);
     95      const_column_iterator col_iter_ = t_->begin_column(0);
     96      col_iter_ = t_->end_column(0);
    9797      detail::avoid_compiler_warning(col_iter_);
    98       const_reference r = t_(0,0);
     98      const_reference r = (*t_)(0,0);
    9999      value_ = r;
    100       size_t n = t_.rows();
    101       n = t_.columns();
     100      size_t n = t_->rows();
     101      n = t_->columns();
    102102      detail::avoid_compiler_warning(n);
    103103      using boost_concepts::ReadableIterator;
     
    108108
    109109  private:
    110     T t_;
     110    T* t_;
    111111    value_type value_;
    112112  };
     
    148148    BOOST_CONCEPT_USAGE(Mutable_Container2D)
    149149    {
    150       iterator iter_ = t_.begin();
    151       iter_ = t_.end();
     150      iterator iter_ = t_->begin();
     151      iter_ = t_->end();
    152152      detail::avoid_compiler_warning(iter_);
    153       row_iterator row_iter_ = t_.begin_row(0);
    154       row_iter_ = t_.end_row(0);
     153      row_iterator row_iter_ = t_->begin_row(0);
     154      row_iter_ = t_->end_row(0);
    155155      detail::avoid_compiler_warning(row_iter_);
    156       column_iterator col_iter_ = t_.begin_column(0);
    157       col_iter_ = t_.end_column(0);
     156      column_iterator col_iter_ = t_->begin_column(0);
     157      col_iter_ = t_->end_column(0);
    158158      detail::avoid_compiler_warning(col_iter_);
    159       reference r = t_(0,0);
    160       t_(0,0) = r;
     159      reference r = (*t_)(0,0);
     160      (*t_)(0,0) = r;
    161161      detail::avoid_compiler_warning(r);
    162162      using boost::Mutable_RandomAccessIterator; // just to avoid long lines
     
    166166    }
    167167  private:
    168     T t_;
     168    T* t_;
    169169  };
    170170
Note: See TracChangeset for help on using the changeset viewer.