IAP GITLAB

Skip to content
Snippets Groups Projects
Commit 11ae7929 authored by Maximilian Reininghaus's avatar Maximilian Reininghaus :vulcan:
Browse files

Merge branch 'simpler_stack' into 'master'

simplify Stack

See merge request AirShowerPhysics/corsika!105
parents 92b43fbf af5447ad
No related branches found
No related tags found
No related merge requests found
...@@ -56,8 +56,7 @@ namespace corsika::stack { ...@@ -56,8 +56,7 @@ namespace corsika::stack {
template <typename StackDataType, template <typename> typename ParticleInterface> template <typename StackDataType, template <typename> typename ParticleInterface>
class Stack { class Stack {
using StackDataValueType = std::remove_reference_t<StackDataType>;
using StackType = Stack<StackDataType, ParticleInterface>;
StackDataType fData; ///< this in general holds all the data and can be quite big StackDataType fData; ///< this in general holds all the data and can be quite big
...@@ -113,11 +112,9 @@ namespace corsika::stack { ...@@ -113,11 +112,9 @@ namespace corsika::stack {
* ParticleInterface template class simultaneously. * ParticleInterface template class simultaneously.
*/ */
using StackIterator = using StackIterator =
StackIteratorInterface<typename std::remove_reference<StackDataType>::type, StackIteratorInterface<StackDataValueType, ParticleInterface, Stack>;
ParticleInterface, StackType>;
using ConstStackIterator = using ConstStackIterator =
ConstStackIteratorInterface<typename std::remove_reference<StackDataType>::type, ConstStackIteratorInterface<StackDataValueType, ParticleInterface, Stack>;
ParticleInterface, StackType>;
/** /**
* this is the full type of the user-declared ParticleInterface * this is the full type of the user-declared ParticleInterface
...@@ -130,12 +127,9 @@ namespace corsika::stack { ...@@ -130,12 +127,9 @@ namespace corsika::stack {
using ParticleType = StackIterator; using ParticleType = StackIterator;
// friends are needed since they need access to protected members // friends are needed since they need access to protected members
friend class StackIteratorInterface< friend class StackIteratorInterface<StackDataValueType, ParticleInterface, Stack>;
typename std::remove_reference<StackDataType>::type, ParticleInterface, friend class ConstStackIteratorInterface<StackDataValueType, ParticleInterface,
StackType>; Stack>;
friend class ConstStackIteratorInterface<
typename std::remove_reference<StackDataType>::type, ParticleInterface,
StackType>;
public: public:
/** /**
...@@ -247,10 +241,8 @@ namespace corsika::stack { ...@@ -247,10 +241,8 @@ namespace corsika::stack {
* @name Return reference to StackDataType object fData for data access * @name Return reference to StackDataType object fData for data access
* @{ * @{
*/ */
typename std::remove_reference<StackDataType>::type& GetStackData() { return fData; } StackDataValueType& GetStackData() { return fData; }
const typename std::remove_reference<StackDataType>::type& GetStackData() const { const StackDataValueType& GetStackData() const { return fData; }
return fData;
}
///@} ///@}
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment