Commit d7f71258 authored by Tomáš Jakubec's avatar Tomáš Jakubec
Browse files

default Traits -> DefaultTraits

parent 9c3df646
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -78,7 +78,7 @@ template <typename T1>
struct __has_default_traits<
struct __has_default_traits<
        T1,
        T1,
        typename std::enable_if<
        typename std::enable_if<
            noexcept(Traits<T1>::getTraits)
            noexcept(DefaultTraits<T1>::getTraits)
        >::type
        >::type
        > : public std::true_type {};
        > : public std::true_type {};


+5 −5
Original line number Original line Diff line number Diff line
@@ -285,14 +285,14 @@ public:




template<typename Class>
template<typename Class>
class Traits<Class>{};
class DefaultTraits{};




template<typename Class>
template<typename Class>
class DefaultIOTraits : public Traits<Class> {};
class DefaultIOTraits : public DefaultTraits<Class> {};


template<typename Class>
template<typename Class>
class DefaultArithmeticTraits : public Traits<Class> {};
class DefaultArithmeticTraits : public DefaultTraits<Class> {};




#include "CustomTypeTraits.h"
#include "CustomTypeTraits.h"
@@ -368,14 +368,14 @@ public: \
    static constexpr unsigned int size() {return traitsType::size();}\
    static constexpr unsigned int size() {return traitsType::size();}\
}
}


#define MAKE_CUSTOM_TRAIT(Class,...) IMPL_MAKE_CUSTOM_TRAIT(Traits, Class, __VA_ARGS__) // defining specialization for Traits
#define MAKE_CUSTOM_TRAIT(Class,...) IMPL_MAKE_CUSTOM_TRAIT(DefaultTraits, Class, __VA_ARGS__) // defining specialization for Traits


#define MAKE_NAMED_ATTRIBUTE_TRAIT(Class, ...) MAKE_CUSTOM_TRAIT(Class, FOR_EACH_3ARGS_1STAT(IMPL_NAME_AND_REF, Class, __VA_ARGS__))
#define MAKE_NAMED_ATTRIBUTE_TRAIT(Class, ...) MAKE_CUSTOM_TRAIT(Class, FOR_EACH_3ARGS_1STAT(IMPL_NAME_AND_REF, Class, __VA_ARGS__))


#define MAKE_ATTRIBUTE_TRAIT(Class, ...) MAKE_NAMED_ATTRIBUTE_TRAIT(Class, FOR_EACH(IMPL_NAME_ATT, __VA_ARGS__))
#define MAKE_ATTRIBUTE_TRAIT(Class, ...) MAKE_NAMED_ATTRIBUTE_TRAIT(Class, FOR_EACH(IMPL_NAME_ATT, __VA_ARGS__))




#define MAKE_CUSTOM_TEMPLATE_TRAIT(Class, TemplateParameters, ...) IMPL_MAKE_CUSTOM_TEMPLATE_TRAIT(Traits, TemplateParameters, Class, __VA_ARGS__) // defining specialization for Traits
#define MAKE_CUSTOM_TEMPLATE_TRAIT(Class, TemplateParameters, ...) IMPL_MAKE_CUSTOM_TEMPLATE_TRAIT(DefaultTraits, TemplateParameters, Class, __VA_ARGS__) // defining specialization for Traits


#define MAKE_NAMED_ATTRIBUTE_TEMPLATE_TRAIT(Class, TemplateParameters, ...) MAKE_CUSTOM_TEMPLATE_TRAIT(Class, TemplateParameters, FOR_EACH_3ARGS_1STAT(IMPL_NAME_AND_REF_TEMPLATE, Class, __VA_ARGS__))
#define MAKE_NAMED_ATTRIBUTE_TEMPLATE_TRAIT(Class, TemplateParameters, ...) MAKE_CUSTOM_TEMPLATE_TRAIT(Class, TemplateParameters, FOR_EACH_3ARGS_1STAT(IMPL_NAME_AND_REF_TEMPLATE, Class, __VA_ARGS__))


+9 −8
Original line number Original line Diff line number Diff line
@@ -95,21 +95,21 @@ private:
    template<typename T,unsigned int Index = 0, typename Void = void>
    template<typename T,unsigned int Index = 0, typename Void = void>
    struct readCellData{};
    struct readCellData{};


    template<typename T,unsigned int Index, typename... Types>
    template<typename T,unsigned int Index>
    struct readCellData <Traits<T, Types...>, Index, std::enable_if_t<Index < Traits<T, Types...>::size() - 1>>{
    struct readCellData <DefaultIOTraits<T>, Index, std::enable_if_t<Index < DefaultIOTraits<T>::size() - 1>>{






        static void read(std::istream& ist, DataContainer<T, MeshDimension> &data, std::map<std::string, std::istream::pos_type>& dataPositions){
        static void read(std::istream& ist, DataContainer<T, MeshDimension> &data, std::map<std::string, std::istream::pos_type>& dataPositions){


            readColumn<T, Index>(ist, data, dataPositions);
            readColumn<T, Index>(ist, data, dataPositions);
            readCellData<Traits<T, Types...>, Index + 1>::read(ist, data, dataPositions);
            readCellData<DefaultIOTraits<T>, Index + 1>::read(ist, data, dataPositions);


        }
        }
    };
    };


    template<typename T,unsigned int Index, typename ... Types>
    template<typename T,unsigned int Index>
    struct readCellData <Traits<T, Types...>, Index, std::enable_if_t<Index == Traits<T, Types...>::size() - 1>>{
    struct readCellData <DefaultIOTraits<T>, Index, std::enable_if_t<Index == DefaultIOTraits<T>::size() - 1>>{


        static void read(std::istream& ist, DataContainer<T, MeshDimension> &data, std::map<std::string, std::istream::pos_type>& dataPositions){
        static void read(std::istream& ist, DataContainer<T, MeshDimension> &data, std::map<std::string, std::istream::pos_type>& dataPositions){


@@ -176,8 +176,9 @@ private:
    >::type
    >::type
    readMDC(std::istream& ist, MeshDataContainer<T, Dimensions...> &data, std::map<std::string, std::istream::pos_type>& dataPositions){
    readMDC(std::istream& ist, MeshDataContainer<T, Dimensions...> &data, std::map<std::string, std::istream::pos_type>& dataPositions){


        using type = typename MeshDataContainer<T, Dimensions...>::template DataContainerType<Index>::type;
        readCellData<
        readCellData<
                typename DefaultIOTraits<typename MeshDataContainer<T, Dimensions...>::template DataContainerType<Index>::type>::traitsType
                DefaultIOTraits<type>
                >::read(ist, data.template getDataByPos<Index>(), dataPositions);
                >::read(ist, data.template getDataByPos<Index>(), dataPositions);
        readMDC<Index + 1, true, T, Dimensions...>(ist, data, dataPositions);
        readMDC<Index + 1, true, T, Dimensions...>(ist, data, dataPositions);


@@ -205,9 +206,9 @@ private:
    >::type
    >::type
    readMDC(std::istream& ist, MeshDataContainer<T, Dimensions...> &data, std::map<std::string, std::istream::pos_type>& dataPositions){
    readMDC(std::istream& ist, MeshDataContainer<T, Dimensions...> &data, std::map<std::string, std::istream::pos_type>& dataPositions){



        using type = typename MeshDataContainer<T, Dimensions...>::template DataContainerType<Index>::type;
        readCellData<
        readCellData<
                typename DefaultIOTraits<typename MeshDataContainer<T, Dimensions...>::template DataContainerType<Index>::type>::traitsType
                DefaultIOTraits<type>
                >::read(ist, data.template getDataByPos<Index>(), dataPositions);
                >::read(ist, data.template getDataByPos<Index>(), dataPositions);
    }
    }


+7 −7
Original line number Original line Diff line number Diff line
@@ -182,8 +182,8 @@ class VTKMeshDataWriter {
    template<typename T,unsigned int Index = 0, typename Void = void>
    template<typename T,unsigned int Index = 0, typename Void = void>
    struct writeCellData{};
    struct writeCellData{};


    template<typename T,unsigned int Index, typename... Types>
    template<typename T,unsigned int Index>
    struct writeCellData <Traits<T, Types...>, Index, std::enable_if_t<(Index < Traits<T, Types...>::size() - 1)>>{
    struct writeCellData <DefaultIOTraits<T>, Index, std::enable_if_t<(Index < DefaultIOTraits<T>::size() - 1)>>{


        template<typename IndexType, typename Real>
        template<typename IndexType, typename Real>


@@ -191,13 +191,13 @@ class VTKMeshDataWriter {
            //DBGVAR(IsIndexable<typename DefaultIOTraits<T>::traitsType::template type<Index>>::value);
            //DBGVAR(IsIndexable<typename DefaultIOTraits<T>::traitsType::template type<Index>>::value);
            writeColumn<T, Index, IndexType, Real>(ost, data, writer);
            writeColumn<T, Index, IndexType, Real>(ost, data, writer);
            ost << std::endl;
            ost << std::endl;
            writeCellData<Traits<T, Types...>, Index + 1>::write(ost, data, writer);
            writeCellData<DefaultIOTraits<T>, Index + 1>::write(ost, data, writer);


        }
        }
    };
    };


    template<typename T,unsigned int Index, typename ... Types>
    template<typename T,unsigned int Index>
    struct writeCellData <Traits<T, Types...>, Index, std::enable_if_t<Index == Traits<T, Types...>::size() - 1>>{
    struct writeCellData <DefaultIOTraits<T>, Index, std::enable_if_t<Index == DefaultIOTraits<T>::size() - 1>>{
        template< typename IndexType, typename Real>
        template< typename IndexType, typename Real>
        static void write(std::ostream& ost, const DataContainer<T, MeshDimension> &data, VTKMeshWriter<MeshDimension,IndexType, Real>& writer){
        static void write(std::ostream& ost, const DataContainer<T, MeshDimension> &data, VTKMeshWriter<MeshDimension,IndexType, Real>& writer){
            //DBGVAR(IsIndexable<typename DefaultIOTraits<T>::traitsType::template type<Index>>::value);
            //DBGVAR(IsIndexable<typename DefaultIOTraits<T>::traitsType::template type<Index>>::value);
@@ -267,7 +267,7 @@ private:
        {
        {
            using type = typename MeshDataContainer<T, Dimensions...>::template DataContainerType<Index>::type;
            using type = typename MeshDataContainer<T, Dimensions...>::template DataContainerType<Index>::type;


            VTKMeshDataWriter<MeshDimension>::writeCellData<typename DefaultIOTraits<type>::traitsType>::write(ost, data.template getDataByPos<Index>(), writer);
            VTKMeshDataWriter<MeshDimension>::writeCellData<DefaultIOTraits<type>>::write(ost, data.template getDataByPos<Index>(), writer);


            MeshDataIterator<Index - 1, OK | HasDefaultIOTraits<type>::value>:: writeToStream(ost, data, writer);
            MeshDataIterator<Index - 1, OK | HasDefaultIOTraits<type>::value>:: writeToStream(ost, data, writer);
        }
        }
@@ -301,7 +301,7 @@ private:
        {
        {
            using type = typename MeshDataContainer<T, Dimensions...>::template DataContainerType<0>::type;
            using type = typename MeshDataContainer<T, Dimensions...>::template DataContainerType<0>::type;


            VTKMeshDataWriter<MeshDimension>::writeCellData<typename DefaultIOTraits<type>::traitsType>::write(ost, data.template getDataByPos<0>(), writer);
            VTKMeshDataWriter<MeshDimension>::writeCellData<DefaultIOTraits<type>>::write(ost, data.template getDataByPos<0>(), writer);


        }
        }
    };
    };