mirror of
https://github.com/triqs/dft_tools
synced 2024-12-26 06:14:14 +01:00
arrays : add experimental array_const_view
- not completely clear how to manipulate this alias, in particular when matching template function (and portability : require C++11 compiler).
This commit is contained in:
parent
241d5636d7
commit
017394e17f
47
test/triqs/arrays/alias_const_view.cpp
Normal file
47
test/triqs/arrays/alias_const_view.cpp
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* TRIQS: a Toolbox for Research in Interacting Quantum Systems
|
||||||
|
*
|
||||||
|
* Copyright (C) 2013 by O. Parcollet
|
||||||
|
*
|
||||||
|
* TRIQS is free software: you can redistribute it and/or modify it under the
|
||||||
|
* terms of the GNU General Public License as published by the Free Software
|
||||||
|
* Foundation, either version 3 of the License, or (at your option) any later
|
||||||
|
* version.
|
||||||
|
*
|
||||||
|
* TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
* details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with
|
||||||
|
* TRIQS. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#include "./common.hpp"
|
||||||
|
#include "./src/array.hpp"
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
//using std::cout; using std::endl;
|
||||||
|
using namespace triqs::arrays;
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
|
||||||
|
template<typename U, ull_t opt, ull_t to, bool B>
|
||||||
|
void f (array_const_view<U,2,opt,to,B> const & a) {
|
||||||
|
std::cout << a << std::endl ;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
|
||||||
|
array<long,2 > A (2,3);
|
||||||
|
A() =3;
|
||||||
|
|
||||||
|
f(A());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -86,6 +86,13 @@ namespace triqs { namespace arrays {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#undef IMPL_TYPE
|
#undef IMPL_TYPE
|
||||||
|
|
||||||
|
// This alias is experiemental !! on modern compilers only.
|
||||||
|
#ifndef TRIQS_COMPILER_IS_OBSOLETE
|
||||||
|
template <typename ValueType, int Rank, ull_t Opt=0, ull_t TraversalOrder=0, bool Borrowed=false>
|
||||||
|
using array_const_view = array_view<ValueType, Rank, Opt, TraversalOrder, Borrowed>;
|
||||||
|
#endif
|
||||||
|
|
||||||
//------------------------------- array ---------------------------------------------------
|
//------------------------------- array ---------------------------------------------------
|
||||||
|
|
||||||
#define IMPL_TYPE indexmap_storage_pair< indexmaps::cuboid::map<Rank,Opt,TraversalOrder>, \
|
#define IMPL_TYPE indexmap_storage_pair< indexmaps::cuboid::map<Rank,Opt,TraversalOrder>, \
|
||||||
|
Loading…
Reference in New Issue
Block a user