From 017394e17f35647fd5656e6cc783f2d643fcdb3e Mon Sep 17 00:00:00 2001 From: Olivier Parcollet Date: Wed, 21 Aug 2013 17:25:45 +0200 Subject: [PATCH] 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). --- test/triqs/arrays/alias_const_view.cpp | 47 ++++++++++++++++++++++++++ triqs/arrays/array.hpp | 7 ++++ 2 files changed, 54 insertions(+) create mode 100644 test/triqs/arrays/alias_const_view.cpp diff --git a/test/triqs/arrays/alias_const_view.cpp b/test/triqs/arrays/alias_const_view.cpp new file mode 100644 index 00000000..343e5303 --- /dev/null +++ b/test/triqs/arrays/alias_const_view.cpp @@ -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 . + * + ******************************************************************************/ + +#include "./common.hpp" +#include "./src/array.hpp" +#include + +//using std::cout; using std::endl; +using namespace triqs::arrays; +#include + + +template +void f (array_const_view const & a) { + std::cout << a << std::endl ; +} + +int main(int argc, char **argv) { + + array A (2,3); + A() =3; + + f(A()); + +} + + + + diff --git a/triqs/arrays/array.hpp b/triqs/arrays/array.hpp index 2791be27..c0625fb1 100644 --- a/triqs/arrays/array.hpp +++ b/triqs/arrays/array.hpp @@ -86,6 +86,13 @@ namespace triqs { namespace arrays { }; #undef IMPL_TYPE + +// This alias is experiemental !! on modern compilers only. +#ifndef TRIQS_COMPILER_IS_OBSOLETE + template + using array_const_view = array_view; +#endif + //------------------------------- array --------------------------------------------------- #define IMPL_TYPE indexmap_storage_pair< indexmaps::cuboid::map, \