VCTR
Loading...
Searching...
No Matches
vctr_forward_declarations.h
1/*
2 ==============================================================================
3 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
5 Copyright 2022- by sonible GmbH.
6
7 This file is part of VCTR - Versatile Container Templates Reconceptualized.
8
9 VCTR is free software: you can redistribute it and/or modify
10 it under the terms of the GNU Lesser General Public License version 3
11 only, as published by the Free Software Foundation.
12
13 VCTR is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU Lesser General Public License version 3 for more details.
17
18 You should have received a copy of the GNU Lesser General Public License
19 version 3 along with VCTR. If not, see <https://www.gnu.org/licenses/>.
20 ==============================================================================
21*/
22
23#pragma once
24
25namespace vctr
26{
27struct DisabledConstant;
28}
29
30#include <complex>
31#include "TypeTraitsAndConcepts/NumericValueConcepts.h"
32#include "TypeTraitsAndConcepts/NumericTypeConcepts.h"
33#include "TypeTraitsAndConcepts/GenericConcepts.h"
34
36namespace vctr
37{
38
39template <class ElementType, class StorageType, size_t extent, class StorageInfoType>
40class VctrBase;
41
42template <class ElementType>
43struct DefaultVectorAllocator;
44
45template <typename ElementType, size_t alignmentInBytes>
46requires (alignmentInBytes >= alignof (ElementType) && is::powerOfTwoInt<alignmentInBytes>)
47class AlignedAllocator;
48
49template <is::nonConst ElementType, template <class> class Allocator>
50class Vector;
51
52template <class OwnedElementType>
53class OwnedVector;
54
55template <class ElementType, size_t extent, size_t storageExtent>
56requires (extent != std::dynamic_extent && extent <= storageExtent)
57class Array;
58
59template <class OwnedElementType, size_t extent>
60class OwnedArray;
61
62template <class ElementType, size_t extent, class StorageInfoType>
63class Span;
64
65struct ExpressionTemplateBase;
66
67template <template <size_t, class...> class ExpressionType, class RuntimeArgs, class... AdditionalCompileTimeParameters>
68struct ExpressionChainBuilderWithRuntimeArgs;
69
70template <class T>
71struct AVXRegister;
72
73template <class T>
74struct SSERegister;
75
76template <class T>
77struct NeonRegister;
78} // namespace vctr
The main namespace of the VCTR project.
Definition: Array.h:24