FougTools  0.7.0dev-046fb6a
Handy tools for C++, Qt and OpenCascade
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
c_array_utils.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** FougTools
3 ** Copyright Fougue (1 Mar. 2011)
4 ** contact@fougue.pro
5 **
6 ** This software is a computer program whose purpose is to provide utility
7 ** tools for the C++ language and the Qt toolkit.
8 **
9 ** This software is governed by the CeCILL-C license under French law and
10 ** abiding by the rules of distribution of free software. You can use,
11 ** modify and/ or redistribute the software under the terms of the CeCILL-C
12 ** license as circulated by CEA, CNRS and INRIA at the following URL
13 ** "http://www.cecill.info".
14 ****************************************************************************/
15 
16 #pragma once
17 
18 #include <cstddef>
19 
20 namespace cpp {
21 
25 template <typename T, std::size_t N>
26 std::size_t cArraySize(const T (&/*array*/)[N])
27 {
28  return N;
29 }
30 
36 template <typename T, std::size_t N>
37 T* cArrayEnd(T (&array)[N])
38 {
39  return array + N;
40 }
41 
47 template <typename T, std::size_t N>
48 const T* cArrayEnd(const T (&array)[N])
49 {
50  return array + N;
51 }
52 
53 } // namespace cpp
Definition: basic_shared_pointer.h:20
T * cArrayEnd(T(&array)[N])
Definition: c_array_utils.h:37
std::size_t cArraySize(const T(&)[N])
Definition: c_array_utils.h:26