Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
LinearOffsetMap.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* LinearOffsetMap.h (C) 2000-2024 */
9/* */
10/* Liste d'offset linéaires. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_LINEAROFFSETMAP_H
13#define ARCANE_UTILS_LINEAROFFSETMAP_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19#include <map>
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
37template <typename DataType>
39{
40 public:
41
42 static_assert(std::is_same_v<DataType, Int32> || std::is_same_v<DataType, Int64>);
43
44 public:
45
47 ARCANE_UTILS_EXPORT void add(DataType size, DataType offset);
48
58 ARCANE_UTILS_EXPORT DataType getAndRemoveOffset(DataType size);
59
61 ARCANE_UTILS_EXPORT Int32 size() const;
62
63 private:
64
65 std::multimap<DataType, DataType> m_offset_map;
66};
67
68/*---------------------------------------------------------------------------*/
69/*---------------------------------------------------------------------------*/
70
71} // namespace Arcane
72
73/*---------------------------------------------------------------------------*/
74/*---------------------------------------------------------------------------*/
75
76#endif
Fichier de configuration d'Arcane.
Liste d'offset linéaires.
void add(DataType size, DataType offset)
Ajoute un offset offset de taille size.
Int32 size() const
Nombre d'éléments dans la table.
DataType getAndRemoveOffset(DataType size)
Récupère un offset suffisant pour un élément de taille size.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-