@@ -709,8 +709,8 @@ namespace _1wire_i_det { | |||||
* \param _Tp Type to check | * \param _Tp Type to check | ||||
* \return True if _Tp is a 1-wire interface | * \return True if _Tp is a 1-wire interface | ||||
*/ | */ | ||||
template <typename _Tp> | |||||
constexpr bool _1Wire_i = _1wire_i_det::is_1wire_<_Tp>::value; | |||||
// template <typename _Tp> | |||||
// constexpr bool _1Wire_i = _1wire_i_det::is_1wire_<_Tp>::value; | |||||
#endif | #endif | ||||
//!@} | //!@} | ||||
@@ -70,7 +70,7 @@ namespace utl { | |||||
* \arg 1 dev_id rhs is smaller than dev_id lhs | * \arg 1 dev_id rhs is smaller than dev_id lhs | ||||
*/ | */ | ||||
static int compare (const _1wire_id_t& lhs, const _1wire_id_t& rhs) noexcept { | static int compare (const _1wire_id_t& lhs, const _1wire_id_t& rhs) noexcept { | ||||
auto p = std::mismatch (lhs.rbegin(), lhs.rend(), rhs.rbegin(), rhs.rend()); | |||||
auto p = std::mismatch (lhs.rbegin(), lhs.rend(), rhs.rbegin()); | |||||
if (p.first == lhs.rend()) return 0; | if (p.first == lhs.rend()) return 0; | ||||
else if (*p.first < *p.second) return -1; | else if (*p.first < *p.second) return -1; | ||||
else return 1; | else return 1; | ||||
@@ -275,8 +275,8 @@ namespace utl { | |||||
* \param _Tp Type to check | * \param _Tp Type to check | ||||
* \return True if _Tp is a i2c interface | * \return True if _Tp is a i2c interface | ||||
*/ | */ | ||||
template <typename _Tp> | |||||
constexpr bool I2c_i = i2c_i_details::is_i2c_<_Tp>::value; | |||||
// template <typename _Tp> | |||||
// constexpr bool I2c_i = i2c_i_details::is_i2c_<_Tp>::value; | |||||
#endif | #endif | ||||
//!@} | //!@} | ||||
@@ -321,8 +321,8 @@ namespace utl { | |||||
* \param _Tp Type to check | * \param _Tp Type to check | ||||
* \return True if _Tp is a spi interface | * \return True if _Tp is a spi interface | ||||
*/ | */ | ||||
template <typename _Tp> | |||||
constexpr bool Spi_i = spi_i_details::is_spi_<_Tp>::value; | |||||
// template <typename _Tp> | |||||
// constexpr bool Spi_i = spi_i_details::is_spi_<_Tp>::value; | |||||
#endif | #endif | ||||
//! @} | //! @} | ||||
@@ -157,9 +157,8 @@ namespace utl { | |||||
* \param bit The bit location we want to read | * \param bit The bit location we want to read | ||||
*/ | */ | ||||
constexpr bool bit (uint8_t bit) const noexcept { | constexpr bool bit (uint8_t bit) const noexcept { | ||||
value_type one = 1; | |||||
uint8_t den = 8*sizeof(_Tp)/sizeof(uint8_t); | |||||
return traits_t::Ref (_data, bit/den) & (one << ((bit % den)-1)); | |||||
return traits_t::Ref (_data, bit/(8*sizeof(_Tp))) & | |||||
(static_cast<value_type>(0x01) << ((bit % (8*sizeof(_Tp)))-1)); | |||||
} | } | ||||
/*! | /*! | ||||
@@ -1,44 +0,0 @@ | |||||
/*! | |||||
* \file /utl/impl/concepts.h | |||||
* \brief Concept support header | |||||
* | |||||
* Copyright (C) 2018 Christos Choutouridis | |||||
* | |||||
* This program is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU Lesser General Public License as | |||||
* published by the Free Software Foundation, either version 3 | |||||
* of the License, or (at your option) any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU Lesser General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU Lesser General Public License | |||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||||
* | |||||
*/ | |||||
#ifndef __utl_impl_concepts_h__ | |||||
#define __utl_impl_concepts_h__ | |||||
/*! | |||||
* utl inner concept preprocessor flag | |||||
* \defgroup crtp | |||||
* \ingroup impl | |||||
*/ | |||||
//!@{ | |||||
#if defined __cpp_concepts | |||||
#define _utl_have_concepts (1) | |||||
#endif | |||||
/*! | |||||
* requires keyword wrapper | |||||
*/ | |||||
#if defined _utl_have_concepts | |||||
#define _requires(_r_) requires (_r_) | |||||
#else | |||||
#define _requires(_r_) | |||||
#endif | |||||
//!@} | |||||
#endif /* __utl_impl_concepts_h__ */ |
@@ -43,6 +43,7 @@ namespace utl { | |||||
#define _CRTP_IMPL(T) \ | #define _CRTP_IMPL(T) \ | ||||
constexpr T& impl() { return *static_cast<T*>(this); } \ | constexpr T& impl() { return *static_cast<T*>(this); } \ | ||||
constexpr const T& impl() const { return *static_cast<const T*>(this); } | constexpr const T& impl() const { return *static_cast<const T*>(this); } | ||||
} | } | ||||
//!@} | //!@} | ||||
#endif /* __utl_impl_crtp_h__ */ | #endif /* __utl_impl_crtp_h__ */ |
@@ -24,6 +24,8 @@ | |||||
#include <cstddef> | #include <cstddef> | ||||
#include <cstdint> | #include <cstdint> | ||||
//#include <type_traits> | |||||
namespace utl { | namespace utl { | ||||
//! @{ \name byte and word types | //! @{ \name byte and word types | ||||
using byte_t = uint8_t; //!< 8 bits wide | using byte_t = uint8_t; //!< 8 bits wide | ||||
@@ -2,7 +2,7 @@ | |||||
* \file /utl/core/version.h | * \file /utl/core/version.h | ||||
* \brief version and cpp version checks | * \brief version and cpp version checks | ||||
* | * | ||||
* Copyright (C) 2018 Christos Choutouridis | |||||
* Copyright (C) 2018-2019 Christos Choutouridis | |||||
* | * | ||||
* This program is free software: you can redistribute it and/or modify | * This program is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU Lesser General Public License as | * it under the terms of the GNU Lesser General Public License as | ||||
@@ -26,10 +26,10 @@ | |||||
//!@{ | //!@{ | ||||
//! utl version | //! utl version | ||||
#define UTL_VERSION "0.0.1" | |||||
#define UTL_VERSION "0.1.0" | |||||
#define UTL_VERSION_MAJOR 0 | #define UTL_VERSION_MAJOR 0 | ||||
#define UTL_VERSION_MINOR 0 | |||||
#define UTL_VERSION_PATCH 1 | |||||
#define UTL_VERSION_MINOR 1 | |||||
#define UTL_VERSION_PATCH 0 | |||||
#define UTL_VERSION_VALUE ( (UTL_VERSION_MAJOR * 10000) \ | #define UTL_VERSION_VALUE ( (UTL_VERSION_MAJOR * 10000) \ | ||||
+ (UTL_VERSION_MINOR * 100) \ | + (UTL_VERSION_MINOR * 100) \ | ||||
+ UTL_VERSION_PATCH) | + UTL_VERSION_PATCH) | ||||
@@ -40,8 +40,6 @@ | |||||
#define CXX_VER_STD_14 201402L | #define CXX_VER_STD_14 201402L | ||||
#define CXX_VER_STD_17 201703L | #define CXX_VER_STD_17 201703L | ||||
//#include <type_traits> | |||||
//! Check for variable templates | //! Check for variable templates | ||||
#ifndef CXX_VARIABLE_TEMPLATES | #ifndef CXX_VARIABLE_TEMPLATES | ||||
#ifdef __cpp_variable_templates | #ifdef __cpp_variable_templates | ||||
@@ -51,15 +49,6 @@ | |||||
#endif | #endif | ||||
#endif | #endif | ||||
//! Check integer sequence | |||||
#ifndef CXX_INTEGER_SEQUENCE | |||||
#ifdef __cpp_lib_integer_sequence | |||||
#define CXX_INTEGER_SEQUENCE __cpp_lib_integer_sequence | |||||
#else | |||||
#define CXX_INTEGER_SEQUENCE (CXX_VER >= CXX_VER_STD_14) | |||||
#endif | |||||
#endif | |||||
//! Check concepts | //! Check concepts | ||||
#ifndef CXX_CONCEPTS | #ifndef CXX_CONCEPTS | ||||
#ifdef __cpp_concepts | #ifdef __cpp_concepts | ||||
@@ -86,9 +75,8 @@ | |||||
#endif | #endif | ||||
#endif | #endif | ||||
/* | /* | ||||
* Workaround inspection | |||||
* Workaround inspections | |||||
*/ | */ | ||||
#if defined(__GNUC__) && (__GNUC__ < 5) | #if defined(__GNUC__) && (__GNUC__ < 5) | ||||
// https://wg21.link/cwg1558 | // https://wg21.link/cwg1558 | ||||
@@ -97,8 +85,8 @@ | |||||
//! Base library requirement | //! Base library requirement | ||||
#if __cplusplus < CXX_VER_STD_11 | |||||
#error "uTL requires C++11" | |||||
#if CXX_VER < CXX_VER_STD_14 | |||||
#error "uTL requires C++14" | |||||
#endif | #endif | ||||
//!@} | //!@} | ||||
@@ -437,8 +437,8 @@ namespace utl { | |||||
* \param _Tp Type to check | * \param _Tp Type to check | ||||
* \return True if _Tp is a spi interface | * \return True if _Tp is a spi interface | ||||
*/ | */ | ||||
template <typename _Tp> | |||||
constexpr bool Outdev_it = outdev_it_details::is_outdev_it_<_Tp>::value; | |||||
// template <typename _Tp> | |||||
// constexpr bool Outdev_it = outdev_it_details::is_outdev_it_<_Tp>::value; | |||||
#endif | #endif | ||||
//! @} | //! @} | ||||
@@ -714,8 +714,8 @@ namespace utl { | |||||
* \param _Tp Type to check | * \param _Tp Type to check | ||||
* \return True if _Tp is a spi interface | * \return True if _Tp is a spi interface | ||||
*/ | */ | ||||
template <typename _Tp> | |||||
constexpr bool Indev_it = indev_it_details::is_indev_it_<_Tp>::value; | |||||
// template <typename _Tp> | |||||
// constexpr bool Indev_it = indev_it_details::is_indev_it_<_Tp>::value; | |||||
#endif | #endif | ||||
//! @} | //! @} | ||||
@@ -998,8 +998,8 @@ namespace utl { | |||||
* \param _Tp Type to check | * \param _Tp Type to check | ||||
* \return True if _Tp is a spi interface | * \return True if _Tp is a spi interface | ||||
*/ | */ | ||||
template <typename _Tp> | |||||
constexpr bool Idxdev_it = idxdev_it_details::is_idxdev_it_<_Tp>::value; | |||||
// template <typename _Tp> | |||||
// constexpr bool Idxdev_it = idxdev_it_details::is_idxdev_it_<_Tp>::value; | |||||
#endif | #endif | ||||
//! @} | //! @} | ||||
@@ -1,8 +1,10 @@ | |||||
/*! | /*! | ||||
* \file void.h | |||||
* \brief void_t meta-function | |||||
* \file detection.h | |||||
* \brief Detection idiom based on WG21's N4502[1] from Walter E. Brown | |||||
* | * | ||||
* Copyright (C) 2018 Christos Choutouridis | |||||
* [1]: www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4502.pdf | |||||
* | |||||
* Copyright (C) 2018-2019 Christos Choutouridis | |||||
* | * | ||||
* This program is free software: you can redistribute it and/or modify | * This program is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU Lesser General Public License as | * it under the terms of the GNU Lesser General Public License as | ||||
@@ -17,14 +19,17 @@ | |||||
* You should have received a copy of the GNU Lesser General Public License | * You should have received a copy of the GNU Lesser General Public License | ||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||||
*/ | */ | ||||
#ifndef __utl_meta_void_h__ | |||||
#define __utl_meta_void_h__ | |||||
#ifndef __utl_meta_detection_h__ | |||||
#define __utl_meta_detection_h__ | |||||
#include <utl/core/impl.h> | #include <utl/core/impl.h> | ||||
#include <utl/meta/logical.h> | |||||
#include <type_traits> | |||||
/*! | /*! | ||||
* \ingroup meta | * \ingroup meta | ||||
* \defgroup void | |||||
* \defgroup detection | |||||
* Detection idiom support header. | |||||
*/ | */ | ||||
//! @{ | //! @{ | ||||
@@ -42,7 +47,7 @@ namespace meta { | |||||
}; | }; | ||||
//! void_t type alias | //! void_t type alias | ||||
template<typename... _Ts> | template<typename... _Ts> | ||||
using void_t = type_of<void_<_Ts...>>; | |||||
using void_t = eval<void_<_Ts...>>; | |||||
#else | #else | ||||
//! void_ type alias | //! void_ type alias | ||||
template <typename...> using void_ = void; | template <typename...> using void_ = void; |
@@ -2,7 +2,7 @@ | |||||
* \file pack.h | * \file pack.h | ||||
* \brief Template meta-programming parameter pack container | * \brief Template meta-programming parameter pack container | ||||
* | * | ||||
* Copyright (C) 2018 Christos Choutouridis | |||||
* Copyright (C) 2018-2019 Christos Choutouridis | |||||
* | * | ||||
* This program is free software: you can redistribute it and/or modify | * This program is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU Lesser General Public License as | * it under the terms of the GNU Lesser General Public License as | ||||
@@ -65,8 +65,8 @@ namespace meta { | |||||
// Builds an index_tuple<0, 1, 2, ..., _Num-1>. | // Builds an index_tuple<0, 1, 2, ..., _Num-1>. | ||||
template<size_t _Num> | template<size_t _Num> | ||||
struct make_index_tuple_ | struct make_index_tuple_ | ||||
: it_cat_<type_<make_index_tuple_<_Num / 2>>, | |||||
type_<make_index_tuple_<_Num - _Num / 2>>> | |||||
: it_cat_<eval<make_index_tuple_<_Num / 2>>, | |||||
eval<make_index_tuple_<_Num - _Num / 2>>> | |||||
{ }; | { }; | ||||
// termination specialization for 1 | // termination specialization for 1 | ||||
template<> | template<> | ||||
@@ -81,7 +81,7 @@ namespace meta { | |||||
// factory type | // factory type | ||||
template<typename _Tp, _Tp _Num, | template<typename _Tp, _Tp _Num, | ||||
typename _ISeq = type_<make_index_tuple_<_Num>>> | |||||
typename _ISeq = eval<make_index_tuple_<_Num>>> | |||||
struct make_integer_sequence_; | struct make_integer_sequence_; | ||||
template<typename _Tp, _Tp _Num, size_t... _Idx> | template<typename _Tp, _Tp _Num, size_t... _Idx> | ||||
@@ -94,7 +94,7 @@ namespace meta { | |||||
//! Alias template make_integer_sequence | //! Alias template make_integer_sequence | ||||
//! Complexity \f$ O(log N) \f$ | //! Complexity \f$ O(log N) \f$ | ||||
template<typename _Tp, _Tp N> | template<typename _Tp, _Tp N> | ||||
using make_integer_sequence = type_<detail::make_integer_sequence_<_Tp, N>>; | |||||
using make_integer_sequence = eval<detail::make_integer_sequence_<_Tp, N>>; | |||||
//! Alias template make_index_sequence | //! Alias template make_index_sequence | ||||
//! Complexity \f$ O(log N) \f$ | //! Complexity \f$ O(log N) \f$ | ||||
@@ -2,7 +2,7 @@ | |||||
* \file integralconstant.h | * \file integralconstant.h | ||||
* \brief Template meta-programming integral constant | * \brief Template meta-programming integral constant | ||||
* | * | ||||
* Copyright (C) 2018 Christos Choutouridis | |||||
* Copyright (C) 2018-2019 Christos Choutouridis | |||||
* | * | ||||
* This program is free software: you can redistribute it and/or modify | * This program is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU Lesser General Public License as | * it under the terms of the GNU Lesser General Public License as | ||||
@@ -43,20 +43,20 @@ namespace meta { | |||||
using type = nil_; | using type = nil_; | ||||
}; | }; | ||||
//! Type alias for \p _Tp::type. Used to extract return type of metafunctions | |||||
//! Type alias for \p _Tp::type. Used to evaluate/extract return type of metafunctions | |||||
template <typename _Tp> | template <typename _Tp> | ||||
using type_ = typename _Tp::type; | |||||
using eval = typename _Tp::type; | |||||
//! integral_constant | |||||
//! An Integral Constant is a holder class for a compile-time value of an integral type. | |||||
//! integral_ | |||||
//! Integral Constant is a holder class for a compile-time value of an integral type. | |||||
//! Every Integral Constant is also a null-ary Metafunction, returning itself. | //! Every Integral Constant is also a null-ary Metafunction, returning itself. | ||||
//! An integral constant object is implicitly convertible to the corresponding | //! An integral constant object is implicitly convertible to the corresponding | ||||
//! run-time value of the wrapped integral type | //! run-time value of the wrapped integral type | ||||
//! @{ | //! @{ | ||||
template <typename _Tp, _Tp _v> | template <typename _Tp, _Tp _v> | ||||
struct integral_constant { | |||||
struct integral_ { | |||||
using value_type = _Tp; | using value_type = _Tp; | ||||
using type = integral_constant<_Tp, _v>; | |||||
using type = integral_<_Tp, _v>; | |||||
constexpr operator value_type() const noexcept { | constexpr operator value_type() const noexcept { | ||||
return value; | return value; | ||||
@@ -68,77 +68,73 @@ namespace meta { | |||||
}; | }; | ||||
template<typename _Tp, _Tp _v> | template<typename _Tp, _Tp _v> | ||||
constexpr _Tp integral_constant<_Tp, _v>::value; | |||||
constexpr _Tp integral_<_Tp, _v>::value; | |||||
//! @} | //! @} | ||||
//! Wrappers for basic types | //! Wrappers for basic types | ||||
//! @{ | //! @{ | ||||
//! integral constant | |||||
template <typename _Tp, _Tp _v> | |||||
using integral_c = integral_constant<_Tp, _v>; | |||||
//! bool_ type: integral constant wrapper for bool | //! bool_ type: integral constant wrapper for bool | ||||
template<bool _v> | template<bool _v> | ||||
using bool_ = integral_c<bool, _v>; | |||||
using bool_ = integral_<bool, _v>; | |||||
using true_ = bool_<true>; //!< The type used as a compile-time boolean with true value. | using true_ = bool_<true>; //!< The type used as a compile-time boolean with true value. | ||||
using false_ = bool_<false>; //!< The type used as a compile-time boolean with false value. | using false_ = bool_<false>; //!< The type used as a compile-time boolean with false value. | ||||
//! int8_ type: integral constant wrapper for \c int8_t | //! int8_ type: integral constant wrapper for \c int8_t | ||||
template<int8_t _v> | template<int8_t _v> | ||||
using int8_ = integral_c<int8_t, _v>; | |||||
using int8_ = integral_<int8_t, _v>; | |||||
//! uint8_ type: integral constant wrapper for \c uint8_t | //! uint8_ type: integral constant wrapper for \c uint8_t | ||||
template<uint8_t _v> | template<uint8_t _v> | ||||
using uint8_ = integral_c<uint8_t, _v>; | |||||
using uint8_ = integral_<uint8_t, _v>; | |||||
//! int16_ type: integral constant wrapper for \c int16_t | //! int16_ type: integral constant wrapper for \c int16_t | ||||
template<int16_t _v> | template<int16_t _v> | ||||
using int16_ = integral_c<int16_t, _v>; | |||||
using int16_ = integral_<int16_t, _v>; | |||||
//! uint16_ type: integral constant wrapper for \c uint16_t | //! uint16_ type: integral constant wrapper for \c uint16_t | ||||
template<uint16_t _v> | template<uint16_t _v> | ||||
using uint16_ = integral_c<uint16_t, _v>; | |||||
using uint16_ = integral_<uint16_t, _v>; | |||||
//! int32_ type: integral constant wrapper for \c int32_t | //! int32_ type: integral constant wrapper for \c int32_t | ||||
template<int32_t _v> | template<int32_t _v> | ||||
using int32_ = integral_c<int32_t, _v>; | |||||
using int32_ = integral_<int32_t, _v>; | |||||
//! uint32_ type: integral constant wrapper for \c uint32_t | //! uint32_ type: integral constant wrapper for \c uint32_t | ||||
template<uint32_t _v> | template<uint32_t _v> | ||||
using uint32_ = integral_c<uint32_t, _v>; | |||||
using uint32_ = integral_<uint32_t, _v>; | |||||
//! char_ type: integral constant wrapper for \c char | //! char_ type: integral constant wrapper for \c char | ||||
template<char _v> | template<char _v> | ||||
using char_ = integral_c<char, _v>; | |||||
using char_ = integral_<char, _v>; | |||||
//! int_ type: integral constant wrapper for \c int | //! int_ type: integral constant wrapper for \c int | ||||
template<int _v> | template<int _v> | ||||
using int_ = integral_c<int, _v>; | |||||
using int_ = integral_<int, _v>; | |||||
//! long_ type: integral constant wrapper for \c long | //! long_ type: integral constant wrapper for \c long | ||||
template<long _v> | template<long _v> | ||||
using long_ = integral_c<long, _v>; | |||||
using long_ = integral_<long, _v>; | |||||
//! index_t_ type: integral constant wrapper for \c index_t a.k.a std::size_t | |||||
//! index_ type: integral constant wrapper for \c index_t a.k.a std::size_t | |||||
template<index_t _v> | template<index_t _v> | ||||
using index_t_ = integral_c<index_t, _v>; | |||||
using index_ = integral_<index_t, _v>; | |||||
//! size_t_ type: integral constant wrapper for \c size_t a.k.a std::size_t | |||||
//! size_ type: integral constant wrapper for \c size_t a.k.a std::size_t | |||||
template<size_t _v> | template<size_t _v> | ||||
using size_t_ = integral_constant<size_t, _v>; | |||||
using size_ = integral_<size_t, _v>; | |||||
//! Computes the size of the type \p _Tp. | //! Computes the size of the type \p _Tp. | ||||
//! Complexity \f$ O(1) \f$. | //! Complexity \f$ O(1) \f$. | ||||
template <typename _Tp> | template <typename _Tp> | ||||
using sizeof_ = size_t_<sizeof(_Tp)>; | |||||
using sizeof_ = size_<sizeof(_Tp)>; | |||||
//! Computes the alignment required for any instance of the type \p _Tp. | //! Computes the alignment required for any instance of the type \p _Tp. | ||||
//! Complexity \f$ O(1) \f$. | //! Complexity \f$ O(1) \f$. | ||||
template <typename _Tp> | template <typename _Tp> | ||||
using alignof_ = size_t_<alignof(_Tp)>; | |||||
using alignof_ = size_<alignof(_Tp)>; | |||||
//! @} | //! @} | ||||
//! The last position we can express for indexing | //! The last position we can express for indexing | ||||
using Npos = size_t_<index_t(-1)>; | |||||
using Npos = size_<index_t(-1)>; | |||||
}} | }} | ||||
//!@} | //!@} | ||||
@@ -1,6 +1,6 @@ | |||||
/*! | /*! | ||||
* \file invoke.h | * \file invoke.h | ||||
* \brief Template meta-programming utilities | |||||
* \brief Template meta-programming utilities for callables | |||||
* | * | ||||
* Copyright (C) 2018 Christos Choutouridis | * Copyright (C) 2018 Christos Choutouridis | ||||
* | * | ||||
@@ -12,7 +12,7 @@ | |||||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | ||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
* GNU Lesser General Public License for more details. | |||||
* GNU Lesser General Public License for more detail. | |||||
* | * | ||||
* You should have received a copy of the GNU Lesser General Public License | * You should have received a copy of the GNU Lesser General Public License | ||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||||
@@ -36,26 +36,10 @@ namespace utl { | |||||
namespace meta{ | namespace meta{ | ||||
/*! | /*! | ||||
* \name meta:: invoke | |||||
* | * | ||||
* \name invoke | |||||
* All Metafunction classes shall contain apply, which is Metafunction | |||||
* | |||||
* Metafunction: | |||||
* A metafunction is a class or a class template that represents a function invocable at compile-time. | |||||
* An non-nullary metafunction is invoked by instantiating the class template with particular template | |||||
* parameters (metafunction arguments). The result of the metafunction application is accessible | |||||
* through the instantiation's nested type typedef. | |||||
* All metafunction's arguments must be types (i.e. only type template parameters are allowed). | |||||
* A metafunction can have a variable number of parameters. | |||||
* A nullary metafunction is represented as a (template) class with a nested type typename member. | |||||
* | |||||
* Metafunction Class: | |||||
* A metafunction class is a certain form of metafunction representation that enables higher-order | |||||
* metaprogramming. More precisely, it's a class with a publicly-accessible nested Metafunction called | |||||
* apply. Correspondingly, a metafunction class invocation is defined as invocation of its nested apply | |||||
* metafunction. | |||||
* | |||||
* Concept here is `Invokable` (contains apply metafunction) | |||||
* A meta-programming invoke() analogous. A meta:: `invocable` shall contain a nested | |||||
* template type named `apply` which is bind to actual invocable meta-function. | |||||
*/ | */ | ||||
//! @{ | //! @{ | ||||
@@ -78,7 +62,7 @@ namespace meta{ | |||||
//! identity type alias | //! identity type alias | ||||
template <typename _Tp> | template <typename _Tp> | ||||
using identity_t = type_<identity<_Tp>>; | |||||
using identity_t = eval<identity<_Tp>>; | |||||
//! @} | //! @} | ||||
//! Is applicable trait | //! Is applicable trait | ||||
@@ -100,7 +84,7 @@ namespace meta{ | |||||
template<typename F, typename... T> | template<typename F, typename... T> | ||||
struct is_applicable_q_ { | struct is_applicable_q_ { | ||||
template<typename G, typename Ret= type_<use_<G, T...>>> | |||||
template<typename G, typename Ret= eval<use_<G, T...>>> | |||||
static Ret check (int); //< T.. can be passed to G | static Ret check (int); //< T.. can be passed to G | ||||
template<typename...> | template<typename...> | ||||
static nil_ check (...); //< all other combinations | static nil_ check (...); //< all other combinations | ||||
@@ -121,17 +105,17 @@ namespace meta{ | |||||
//! check if we can instantiate \p F with parameters \p T | //! check if we can instantiate \p F with parameters \p T | ||||
template<template<typename...> class F, typename... T> | template<template<typename...> class F, typename... T> | ||||
using is_applicable_t = type_< | |||||
using is_applicable_t = eval< | |||||
detail::is_applicable_<F, T...> | detail::is_applicable_<F, T...> | ||||
>; | >; | ||||
//! check if we can instantiate \p Q with parameters \p T and the instant | //! check if we can instantiate \p Q with parameters \p T and the instant | ||||
//! is different from \c nil_ | //! is different from \c nil_ | ||||
template<typename Q, typename... T> | template<typename Q, typename... T> | ||||
using is_applicable_qt = type_ < | |||||
using is_applicable_qt = eval < | |||||
// Extra check for quoted metafunctions to check return type | // Extra check for quoted metafunctions to check return type | ||||
if_ < | if_ < | ||||
not_same_< | not_same_< | ||||
type_ <detail::is_applicable_q_ <Q, T...>>, | |||||
eval <detail::is_applicable_q_ <Q, T...>>, | |||||
nil_ | nil_ | ||||
>, | >, | ||||
true_, | true_, | ||||
@@ -140,7 +124,7 @@ namespace meta{ | |||||
>; | >; | ||||
//! check if we can instantiate \p F with parameters \p Is of type \p T | //! check if we can instantiate \p F with parameters \p Is of type \p T | ||||
template <typename T, template<T...> class F, T... Is> | template <typename T, template<T...> class F, T... Is> | ||||
using is_applicable_it = type_< | |||||
using is_applicable_it = eval< | |||||
detail::is_applicable_i_<T, F, Is...> | detail::is_applicable_i_<T, F, Is...> | ||||
>; | >; | ||||
@@ -199,7 +183,7 @@ namespace meta{ | |||||
template <template <typename...> class F> | template <template <typename...> class F> | ||||
struct quote { | struct quote { | ||||
template <typename... Args> | template <typename... Args> | ||||
using apply = type_< | |||||
using apply = eval< | |||||
defer<F, Args...> //!< defer here to avoid DR1430 | defer<F, Args...> //!< defer here to avoid DR1430 | ||||
>; | >; | ||||
}; | }; | ||||
@@ -209,24 +193,26 @@ namespace meta{ | |||||
struct quote_i { | struct quote_i { | ||||
// requires meta::Integral | // requires meta::Integral | ||||
template <typename... Ts> | template <typename... Ts> | ||||
using apply = type_< | |||||
using apply = eval< | |||||
defer_i<T, F, Ts::type::value...> //!< defer here to avoid DR1430 | defer_i<T, F, Ts::type::value...> //!< defer here to avoid DR1430 | ||||
>; | >; | ||||
}; | }; | ||||
/*! | /*! | ||||
* Invoke the nested apply metafunction from \c Fn | |||||
* Invoke the nested apply meta-function from \c Fn | |||||
* with the arguments \c Args. | * with the arguments \c Args. | ||||
* \note | |||||
* This is like the std::invoke() | |||||
*/ | */ | ||||
template <typename Fn, typename... Args> | template <typename Fn, typename... Args> | ||||
using invoke = typename Fn::template apply<Args...>; | using invoke = typename Fn::template apply<Args...>; | ||||
/*! | /*! | ||||
* Invoke the nested apply metafunction from \c Fn | |||||
* with the arguments \c Args. | |||||
* Evaluate the invocation of the nested apply metafunction from \p Fn | |||||
* with the arguments \p Args. | |||||
*/ | */ | ||||
template <typename Fn, typename... Args> | template <typename Fn, typename... Args> | ||||
using invoke_t = type_<invoke <Fn, Args...>>; | |||||
using invoke_t = eval< invoke <Fn, Args...>>; | |||||
//! compose | //! compose | ||||
//! @{ | //! @{ | ||||
@@ -252,7 +238,7 @@ namespace meta{ | |||||
} | } | ||||
/*! | /*! | ||||
* Create an invokable from other invocables by composition. | |||||
* Create an invocable from other invocables by composition. | |||||
* \note | * \note | ||||
* This implies from N invocables in \p Fns the first N-1 has to be unary. | * This implies from N invocables in \p Fns the first N-1 has to be unary. | ||||
* That because of the "return" type of metafunction. They can only return one | * That because of the "return" type of metafunction. They can only return one | ||||
@@ -290,7 +276,7 @@ namespace meta{ | |||||
}; | }; | ||||
/* | /* | ||||
* ========== predicates ============ | |||||
* ========== meta:: predicates ============ | |||||
*/ | */ | ||||
template <typename T1> | template <typename T1> | ||||
struct same_as { | struct same_as { | ||||
@@ -304,10 +290,9 @@ namespace meta{ | |||||
struct apply : not_same_<T1, T2> { }; | struct apply : not_same_<T1, T2> { }; | ||||
}; | }; | ||||
//! @} | |||||
}} | }} | ||||
//! @} | |||||
//! @} | //! @} | ||||
#endif /* __utl_meta_invoke_h__ */ | #endif /* __utl_meta_invoke_h__ */ |
@@ -2,7 +2,7 @@ | |||||
* \file logical.h | * \file logical.h | ||||
* \brief Template meta-programming logic operator and type relations. | * \brief Template meta-programming logic operator and type relations. | ||||
* | * | ||||
* Copyright (C) 2018 Christos Choutouridis | |||||
* Copyright (C) 2018-2019 Christos Choutouridis | |||||
* | * | ||||
* This program is free software: you can redistribute it and/or modify | * This program is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU Lesser General Public License as | * it under the terms of the GNU Lesser General Public License as | ||||
@@ -66,7 +66,7 @@ namespace meta{ | |||||
} | } | ||||
template <typename... _Ts> | template <typename... _Ts> | ||||
using or_ = type_<detail::_or_<_Ts...>>; | |||||
using or_ = eval<detail::_or_<_Ts...>>; | |||||
//! @} | //! @} | ||||
//! AND implementation | //! AND implementation | ||||
@@ -92,7 +92,7 @@ namespace meta{ | |||||
} | } | ||||
template <typename... _Ts> | template <typename... _Ts> | ||||
using and_ = type_<detail::_and_<_Ts...>>; | |||||
using and_ = eval<detail::_and_<_Ts...>>; | |||||
//! @} | //! @} | ||||
//! same | //! same | ||||
@@ -107,7 +107,7 @@ namespace meta{ | |||||
//! not same | //! not same | ||||
//! @{ | //! @{ | ||||
template<typename _T1, typename _T2> | template<typename _T1, typename _T2> | ||||
using not_same_ = not_<type_<same_<_T1, _T2>>>; | |||||
using not_same_ = not_<eval<same_<_T1, _T2>>>; | |||||
//! @} | //! @} | ||||
//! @} | //! @} | ||||
@@ -2,7 +2,7 @@ | |||||
* \file /utl/core/version.h | * \file /utl/core/version.h | ||||
* \brief version and cpp version checks | * \brief version and cpp version checks | ||||
* | * | ||||
* Copyright (C) 2018 Christos Choutouridis | |||||
* Copyright (C) 2018-2019 Christos Choutouridis | |||||
* | * | ||||
* This program is free software: you can redistribute it and/or modify | * This program is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU Lesser General Public License as | * it under the terms of the GNU Lesser General Public License as | ||||
@@ -2,7 +2,7 @@ | |||||
* \file operators.h | * \file operators.h | ||||
* \brief Template meta-programming integral constant arithmetic | * \brief Template meta-programming integral constant arithmetic | ||||
* | * | ||||
* Copyright (C) 2018 Christos Choutouridis | |||||
* Copyright (C) 2018-2019 Christos Choutouridis | |||||
* | * | ||||
* This program is free software: you can redistribute it and/or modify | * This program is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU Lesser General Public License as | * it under the terms of the GNU Lesser General Public License as | ||||
@@ -41,28 +41,28 @@ namespace meta { | |||||
//! Negation | //! Negation | ||||
template <typename _Tp> | template <typename _Tp> | ||||
using negate = integral_constant<decltype(-_Tp()), -_Tp()>; | |||||
using negate = integral_<decltype(-_Tp()), -_Tp()>; | |||||
//! Addition | //! Addition | ||||
template <typename _Tp1, typename _Tp2> | template <typename _Tp1, typename _Tp2> | ||||
using add = integral_constant< | |||||
using add = integral_< | |||||
decltype(_Tp1() + _Tp2()), | decltype(_Tp1() + _Tp2()), | ||||
_Tp1() + _Tp2() | _Tp1() + _Tp2() | ||||
>; | >; | ||||
//! Multiplication | //! Multiplication | ||||
template <typename _Tp1, typename _Tp2> | template <typename _Tp1, typename _Tp2> | ||||
using mult = integral_constant< | |||||
using mult = integral_< | |||||
decltype(_Tp2() * _Tp2()), | decltype(_Tp2() * _Tp2()), | ||||
_Tp1() * _Tp2() | _Tp1() * _Tp2() | ||||
>; | >; | ||||
//! Division | //! Division | ||||
template <typename _Tp1, typename _Tp2> | template <typename _Tp1, typename _Tp2> | ||||
using divide = integral_constant< | |||||
using divide = integral_< | |||||
decltype(_Tp2() / _Tp2()), | decltype(_Tp2() / _Tp2()), | ||||
_Tp1() / _Tp2() | _Tp1() / _Tp2() | ||||
>; | >; | ||||
//! Modulo | //! Modulo | ||||
template <typename _Tp1, typename _Tp2> | template <typename _Tp1, typename _Tp2> | ||||
using modulo = integral_constant< | |||||
using modulo = integral_< | |||||
decltype(_Tp1() % _Tp2()), | decltype(_Tp1() % _Tp2()), | ||||
_Tp1() % _Tp2() | _Tp1() % _Tp2() | ||||
>; | >; | ||||
@@ -108,23 +108,23 @@ namespace meta { | |||||
//! @{ | //! @{ | ||||
//! \return bitwise not (~) operation of its argument. | //! \return bitwise not (~) operation of its argument. | ||||
template <typename _T> using bitnot_ = integral_c<typename _T::value_type, (typename _T::value_type)(~_T())>; | |||||
template <typename _T> using bitnot_ = integral_<typename _T::value_type, (typename _T::value_type)(~_T())>; | |||||
//! \return bitwise and (&) operation of its arguments | //! \return bitwise and (&) operation of its arguments | ||||
template <typename _Tp1, typename _Tp2> | template <typename _Tp1, typename _Tp2> | ||||
using bitand_ = integral_c<decltype(_Tp1() & _Tp2()), _Tp1() & _Tp2()>; | |||||
using bitand_ = integral_<decltype(_Tp1() & _Tp2()), _Tp1() & _Tp2()>; | |||||
//! \return bitwise or (|) operation of its arguments. | //! \return bitwise or (|) operation of its arguments. | ||||
template <typename _Tp1, typename _Tp2> | template <typename _Tp1, typename _Tp2> | ||||
using bitor_ = integral_c<decltype(_Tp1() | _Tp2()), _Tp1() | _Tp2()>; | |||||
using bitor_ = integral_<decltype(_Tp1() | _Tp2()), _Tp1() | _Tp2()>; | |||||
//! \return bitwise xor (^) operation of its arguments. | //! \return bitwise xor (^) operation of its arguments. | ||||
template <typename _Tp1, typename _Tp2> | template <typename _Tp1, typename _Tp2> | ||||
using bitxor_ = integral_c<decltype(_Tp1() ^ _Tp2()), _Tp1() ^ _Tp2()>; | |||||
using bitxor_ = integral_<decltype(_Tp1() ^ _Tp2()), _Tp1() ^ _Tp2()>; | |||||
//! \return the result of bitwise shift left (<<) operation on _Tp. | //! \return the result of bitwise shift left (<<) operation on _Tp. | ||||
template <typename _Tp, typename shift> | template <typename _Tp, typename shift> | ||||
using shift_left = integral_c<typename _Tp::value_type, (typename _Tp::value_type)(_Tp() << shift())>; | |||||
using shift_left = integral_<typename _Tp::value_type, (typename _Tp::value_type)(_Tp() << shift())>; | |||||
//! \return the result of bitwise shift right (>>) operation on _Tp. | //! \return the result of bitwise shift right (>>) operation on _Tp. | ||||
template <typename _Tp, typename shift> | template <typename _Tp, typename shift> | ||||
using shift_right = integral_c<typename _Tp::value_type, (typename _Tp::value_type)(_Tp() >> shift())>; | |||||
using shift_right = integral_<typename _Tp::value_type, (typename _Tp::value_type)(_Tp() >> shift())>; | |||||
//! @} | //! @} | ||||
}} | }} | ||||
//!@} | //!@} | ||||
@@ -2,7 +2,7 @@ | |||||
* \file selection.h | * \file selection.h | ||||
* \brief Template meta-programming type selections. | * \brief Template meta-programming type selections. | ||||
* | * | ||||
* Copyright (C) 2018 Christos Choutouridis | |||||
* Copyright (C) 2018-2019 Christos Choutouridis | |||||
* | * | ||||
* This program is free software: you can redistribute it and/or modify | * This program is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU Lesser General Public License as | * it under the terms of the GNU Lesser General Public License as | ||||
@@ -60,7 +60,7 @@ namespace meta{ | |||||
} | } | ||||
//! Select one type or another depending on a compile-time Boolean. | //! Select one type or another depending on a compile-time Boolean. | ||||
template <bool B, typename... Args> | template <bool B, typename... Args> | ||||
using if_c = type_<detail::if_c_<B, Args...>>; | |||||
using if_c = eval<detail::if_c_<B, Args...>>; | |||||
//! Select one type or another depending on a compile-time Boolean type | //! Select one type or another depending on a compile-time Boolean type | ||||
template <typename If, typename... Args> | template <typename If, typename... Args> | ||||
@@ -2,7 +2,7 @@ | |||||
* \file sfinae.h | * \file sfinae.h | ||||
* \brief Template meta-programming SFINAE helpers | * \brief Template meta-programming SFINAE helpers | ||||
* | * | ||||
* Copyright (C) 2018 Christos Choutouridis | |||||
* Copyright (C) 2018-2019 Christos Choutouridis | |||||
* | * | ||||
* This program is free software: you can redistribute it and/or modify | * This program is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU Lesser General Public License as | * it under the terms of the GNU Lesser General Public License as | ||||
@@ -42,7 +42,7 @@ namespace meta { | |||||
} | } | ||||
//! Well formed only if \p If is true | //! Well formed only if \p If is true | ||||
template <bool If> | template <bool If> | ||||
using when = type_<detail::when_<If>>; | |||||
using when = eval<detail::when_<If>>; | |||||
//! Well formed only if all of \p Ifs are \c true | //! Well formed only if all of \p Ifs are \c true | ||||
template <bool ...Ifs> | template <bool ...Ifs> | ||||
@@ -52,7 +52,7 @@ namespace meta { | |||||
//! @} | //! @} | ||||
//! select _Tp if \p If is true, else SFINAE | //! select _Tp if \p If is true, else SFINAE | ||||
//! We implement eneble_if so we don't have to pull entire \c <type_traits> from stl | |||||
//! We implement enable_if so we don't have to pull entire \c <type_traits> from stl | |||||
//! @{ | //! @{ | ||||
template <bool If, typename _Tp = void> | template <bool If, typename _Tp = void> | ||||
struct enable_if { | struct enable_if { | ||||
@@ -67,13 +67,13 @@ namespace meta { | |||||
//! Publicly recognized alias template for enable_if | //! Publicly recognized alias template for enable_if | ||||
template<bool If, typename _Tp = void> | template<bool If, typename _Tp = void> | ||||
using enable_if_t = type_< | |||||
using enable_if_t = eval< | |||||
enable_if<If, _Tp> | enable_if<If, _Tp> | ||||
>; | >; | ||||
//! Uniform alias template for use_if | //! Uniform alias template for use_if | ||||
template<bool If, typename _Tp = void> | template<bool If, typename _Tp = void> | ||||
using use_if_t = type_< | |||||
using use_if_t = eval< | |||||
enable_if<If, _Tp> | enable_if<If, _Tp> | ||||
>; | >; | ||||
//! @} | //! @} | ||||
@@ -2,7 +2,7 @@ | |||||
* \file typelist.h | * \file typelist.h | ||||
* \brief A template parameter "container" | * \brief A template parameter "container" | ||||
* | * | ||||
* Copyright (C) 2018 Christos Choutouridis | |||||
* Copyright (C) 2018-2019 Christos Choutouridis | |||||
* | * | ||||
* This program is free software: you can redistribute it and/or modify | * This program is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU Lesser General Public License as | * it under the terms of the GNU Lesser General Public License as | ||||
@@ -53,9 +53,9 @@ namespace meta { | |||||
* l1 a {}; | * l1 a {}; | ||||
* \endcode | * \endcode | ||||
* | * | ||||
* boost::hana[3] suggest a more powerful scheme were type invariant structures can be used | |||||
* boost::hana[3] suggests a more powerful scheme were type invariant structures can be used | |||||
* for metaprograming also. This lib does not need (yet) this kind of power (we afraid the | * for metaprograming also. This lib does not need (yet) this kind of power (we afraid the | ||||
* responsibility that come along). So a simple python-like list with some extra vector-like | |||||
* responsibility that comes along). So a simple python-like list with some extra vector-like | |||||
* element access functionalities and no iterators is good enough(for now). | * element access functionalities and no iterators is good enough(for now). | ||||
* | * | ||||
* [1]: https://www.boost.org/doc/ | * [1]: https://www.boost.org/doc/ | ||||
@@ -115,7 +115,7 @@ namespace meta { | |||||
* \return The size of the typelist | * \return The size of the typelist | ||||
*/ | */ | ||||
template <typename List> | template <typename List> | ||||
using size = size_t_<List::size()>; | |||||
using size = size_<List::size()>; | |||||
/*! | /*! | ||||
* An Boolean constant wrapper that returns if the typelist is empty | * An Boolean constant wrapper that returns if the typelist is empty | ||||
@@ -152,6 +152,8 @@ namespace meta { | |||||
/*! | /*! | ||||
* Apply | * Apply | ||||
* An analogous to apply() implementation for tuples. We just use | |||||
* Our typelist<> and integer_sequence<> types. | |||||
*/ | */ | ||||
//! @{ | //! @{ | ||||
namespace apply_impl { | namespace apply_impl { | ||||
@@ -166,7 +168,7 @@ namespace meta { | |||||
//! Sequence == integer_sequence<> | //! Sequence == integer_sequence<> | ||||
template <typename Fn, typename T, T... Is> | template <typename Fn, typename T, T... Is> | ||||
struct apply_<Fn, integer_sequence<T, Is...>> { | struct apply_<Fn, integer_sequence<T, Is...>> { | ||||
using type = invoke<Fn, integral_c<T, Is>...>; | |||||
using type = invoke<Fn, integral_<T, Is>...>; | |||||
}; | }; | ||||
} | } | ||||
@@ -194,7 +196,7 @@ namespace meta { | |||||
template <typename T> struct _as_pointer__ { using type = T*; }; | template <typename T> struct _as_pointer__ { using type = T*; }; | ||||
template <typename T> struct _as_pointer__<T*> { using type = T*; }; | template <typename T> struct _as_pointer__<T*> { using type = T*; }; | ||||
template <typename T> using as_pointer_ = type_< | |||||
template <typename T> using as_pointer_ = eval< | |||||
_as_pointer__<T> | _as_pointer__<T> | ||||
>; | >; | ||||
@@ -227,7 +229,7 @@ namespace meta { | |||||
* Complexity \f$ O(N) \f$. | * Complexity \f$ O(N) \f$. | ||||
*/ | */ | ||||
template <typename List, index_t N> | template <typename List, index_t N> | ||||
using at_c = type_< | |||||
using at_c = eval< | |||||
at_impl::at_<List, N> | at_impl::at_<List, N> | ||||
>; | >; | ||||
@@ -256,7 +258,7 @@ namespace meta { | |||||
//! Return the first element in \c meta::typelist \p List. | //! Return the first element in \c meta::typelist \p List. | ||||
//! Complexity \f$ O(1) \f$. | //! Complexity \f$ O(1) \f$. | ||||
template <typename List> | template <typename List> | ||||
using front = type_< | |||||
using front = eval< | |||||
front_impl::front_<List> | front_impl::front_<List> | ||||
>; | >; | ||||
//! @} | //! @} | ||||
@@ -278,7 +280,7 @@ namespace meta { | |||||
//! Return the last element in \c meta::typelist \p List. | //! Return the last element in \c meta::typelist \p List. | ||||
//! Complexity \f$ O(N) \f$. | //! Complexity \f$ O(N) \f$. | ||||
template <typename List> | template <typename List> | ||||
using back = type_< | |||||
using back = eval< | |||||
back_impl::back_<List> | back_impl::back_<List> | ||||
>; | >; | ||||
//! @} | //! @} | ||||
@@ -320,7 +322,7 @@ namespace meta { | |||||
* where \f$ N \f$ is the number of lists passed to the algorithm. | * where \f$ N \f$ is the number of lists passed to the algorithm. | ||||
*/ | */ | ||||
template <typename... Lists> | template <typename... Lists> | ||||
using cat = type_< | |||||
using cat = eval< | |||||
cat_impl::cat_<Lists...> | cat_impl::cat_<Lists...> | ||||
>; | >; | ||||
//! @} | //! @} | ||||
@@ -339,7 +341,7 @@ namespace meta { | |||||
typename Fn> | typename Fn> | ||||
struct fold_<typelist<Head, Tail...>, V, Fn> { | struct fold_<typelist<Head, Tail...>, V, Fn> { | ||||
// recursive call of fold_ by consuming typelist and invoking Fn | // recursive call of fold_ by consuming typelist and invoking Fn | ||||
using type = type_< | |||||
using type = eval< | |||||
fold_< | fold_< | ||||
typelist<Tail...>, | typelist<Tail...>, | ||||
invoke<Fn, V, Head>, | invoke<Fn, V, Head>, | ||||
@@ -367,7 +369,7 @@ namespace meta { | |||||
* \param Fn The binary Invocable | * \param Fn The binary Invocable | ||||
*/ | */ | ||||
template <typename List, typename V, typename Fn> | template <typename List, typename V, typename Fn> | ||||
using fold = type_<fold_impl::fold_<List, V, Fn>>; | |||||
using fold = eval<fold_impl::fold_<List, V, Fn>>; | |||||
//! accumulate is an stl name for fold | //! accumulate is an stl name for fold | ||||
template <typename List, typename V, typename Fn> | template <typename List, typename V, typename Fn> | ||||
@@ -387,7 +389,7 @@ namespace meta { | |||||
// recursive call inside invoke. This way the 2nd argument of Fn | // recursive call inside invoke. This way the 2nd argument of Fn | ||||
// becoming the recursive "thing", inside Fn<> | // becoming the recursive "thing", inside Fn<> | ||||
using type = invoke < | using type = invoke < | ||||
Fn, Head, type_< | |||||
Fn, Head, eval< | |||||
rev_fold_ < | rev_fold_ < | ||||
typelist<Tail...>, | typelist<Tail...>, | ||||
V, | V, | ||||
@@ -420,7 +422,7 @@ namespace meta { | |||||
* \param Fn The binary Invocable | * \param Fn The binary Invocable | ||||
*/ | */ | ||||
template <typename List, typename V, typename Fn> | template <typename List, typename V, typename Fn> | ||||
using rev_fold = type_< | |||||
using rev_fold = eval< | |||||
rev_fold_impl::rev_fold_<List, V, Fn> | rev_fold_impl::rev_fold_<List, V, Fn> | ||||
>; | >; | ||||
//! @} | //! @} | ||||
@@ -430,7 +432,7 @@ namespace meta { | |||||
* Complexity \f$ O(1) \f$ | * Complexity \f$ O(1) \f$ | ||||
*/ | */ | ||||
template <typename List, typename... Ts> | template <typename List, typename... Ts> | ||||
using push_front = type_< | |||||
using push_front = eval< | |||||
apply < | apply < | ||||
bind_front<quote<typelist>, Ts...>, List | bind_front<quote<typelist>, Ts...>, List | ||||
> | > | ||||
@@ -441,7 +443,7 @@ namespace meta { | |||||
* Complexity \f$ O(1) \f$ | * Complexity \f$ O(1) \f$ | ||||
*/ | */ | ||||
template <typename List, typename... Ts> | template <typename List, typename... Ts> | ||||
using push_back = type_< | |||||
using push_back = eval< | |||||
apply < | apply < | ||||
bind_back<quote<typelist>, Ts...>, List | bind_back<quote<typelist>, Ts...>, List | ||||
> | > | ||||
@@ -462,7 +464,7 @@ namespace meta { | |||||
* Complexity \f$ O(N) \f$ | * Complexity \f$ O(N) \f$ | ||||
*/ | */ | ||||
template <typename List> | template <typename List> | ||||
using reverse = type_< | |||||
using reverse = eval< | |||||
reverse_impl::reverse_<List> | reverse_impl::reverse_<List> | ||||
>; | >; | ||||
//! @} | //! @} | ||||
@@ -485,7 +487,7 @@ namespace meta { | |||||
* Complexity \f$ O(1) \f$ | * Complexity \f$ O(1) \f$ | ||||
*/ | */ | ||||
template <typename List> | template <typename List> | ||||
using pop_front = type_< | |||||
using pop_front = eval< | |||||
pop_front_impl::pop_front_<List> | pop_front_impl::pop_front_<List> | ||||
>; | >; | ||||
//! @} | //! @} | ||||
@@ -509,7 +511,7 @@ namespace meta { | |||||
* heavy(2 reverse operations). | * heavy(2 reverse operations). | ||||
*/ | */ | ||||
template <typename List> | template <typename List> | ||||
using pop_back = type_ < | |||||
using pop_back = eval < | |||||
pop_back_impl::pop_back_<List> | pop_back_impl::pop_back_<List> | ||||
>; | >; | ||||
//! @} | //! @} | ||||
@@ -551,7 +553,7 @@ namespace meta { | |||||
* \endcode | * \endcode | ||||
*/ | */ | ||||
template <typename... Args> | template <typename... Args> | ||||
using transform = type_< | |||||
using transform = eval< | |||||
transform_impl::transform_<typelist<Args...>> | transform_impl::transform_<typelist<Args...>> | ||||
>; | >; | ||||
//! @} | //! @} | ||||
@@ -597,7 +599,7 @@ namespace meta { | |||||
* \endcode | * \endcode | ||||
*/ | */ | ||||
template <typename... Args> | template <typename... Args> | ||||
using transform_lazy = type_< | |||||
using transform_lazy = eval< | |||||
transform_lazy_impl::transform_lazy_<typelist<Args...>> | transform_lazy_impl::transform_lazy_<typelist<Args...>> | ||||
>; | >; | ||||
//! @} | //! @} | ||||
@@ -614,8 +616,8 @@ namespace meta { | |||||
// Recursive call to find_if_ until Fn returns true_ | // Recursive call to find_if_ until Fn returns true_ | ||||
using type = if_ < | using type = if_ < | ||||
invoke_t<Fn, Head>, | invoke_t<Fn, Head>, | ||||
index_t_<N>, // done, return current index | |||||
type_<find_if_< // not done, re-call find_if_ with the Tail... | |||||
index_<N>, // done, return current index | |||||
eval<find_if_< // not done, re-call find_if_ with the Tail... | |||||
typelist<Tail...>, Fn, N+1> | typelist<Tail...>, Fn, N+1> | ||||
> | > | ||||
>; | >; | ||||
@@ -630,7 +632,7 @@ namespace meta { | |||||
/*! | /*! | ||||
* Search for the first \c Item on the \p List for which the predicate \p Pred | * Search for the first \c Item on the \p List for which the predicate \p Pred | ||||
* returns true_ when `type_<invoke<Pred, Item>>` | |||||
* returns true_ when `eval<invoke<Pred, Item>>` | |||||
* | * | ||||
* Complexity \f$ O(N) \f$ | * Complexity \f$ O(N) \f$ | ||||
* | * | ||||
@@ -640,7 +642,7 @@ namespace meta { | |||||
* or Npos otherwise. | * or Npos otherwise. | ||||
*/ | */ | ||||
template<typename List, typename Pred> | template<typename List, typename Pred> | ||||
using find_if = type_< | |||||
using find_if = eval< | |||||
find_if_impl::find_if_<List, Pred, 0> | find_if_impl::find_if_<List, Pred, 0> | ||||
>; | >; | ||||
@@ -663,7 +665,7 @@ namespace meta { | |||||
using type = if_ < | using type = if_ < | ||||
invoke_t<Fn, Head>, | invoke_t<Fn, Head>, | ||||
typelist<Head, Tail...>, // done, return the typelist starting from here | typelist<Head, Tail...>, // done, return the typelist starting from here | ||||
type_<seek_if_< // not done, re-call seek_if_ with the Tail... | |||||
eval<seek_if_< // not done, re-call seek_if_ with the Tail... | |||||
typelist<Tail...>, Fn, N+1> | typelist<Tail...>, Fn, N+1> | ||||
> | > | ||||
>; | >; | ||||
@@ -678,7 +680,7 @@ namespace meta { | |||||
/*! | /*! | ||||
* Search for the first \c Item on the \p List for which the predicate \p Pred | * Search for the first \c Item on the \p List for which the predicate \p Pred | ||||
* returns true_ when `type_<invoke<Pred, Item>>` and return the rest of the \p List | |||||
* returns true_ when `eval<invoke<Pred, Item>>` and return the rest of the \p List | |||||
* starting from that position as new typelist | * starting from that position as new typelist | ||||
* | * | ||||
* Complexity \f$ O(N) \f$ | * Complexity \f$ O(N) \f$ | ||||
@@ -688,7 +690,7 @@ namespace meta { | |||||
* \return An integral constant with the location of the first match, on Npos otherwise | * \return An integral constant with the location of the first match, on Npos otherwise | ||||
*/ | */ | ||||
template <typename List, typename Pred> | template <typename List, typename Pred> | ||||
using seek_if = type_< | |||||
using seek_if = eval< | |||||
seek_if_impl::seek_if_<List, Pred, 0> | seek_if_impl::seek_if_<List, Pred, 0> | ||||
>; | >; | ||||
/*! | /*! | ||||
@@ -711,10 +713,10 @@ namespace meta { | |||||
// returning true_ | // returning true_ | ||||
using type = if_ < | using type = if_ < | ||||
invoke_t<Fn, Head>, | invoke_t<Fn, Head>, | ||||
type_< | |||||
eval< | |||||
count_if_<typelist<Tail...>, Fn, N+1> // increase and re-call | count_if_<typelist<Tail...>, Fn, N+1> // increase and re-call | ||||
>, | >, | ||||
type_< | |||||
eval< | |||||
count_if_<typelist<Tail...>, Fn, N> // re-call without increasing | count_if_<typelist<Tail...>, Fn, N> // re-call without increasing | ||||
> | > | ||||
>; | >; | ||||
@@ -723,13 +725,13 @@ namespace meta { | |||||
// At the end of the List return the counter | // At the end of the List return the counter | ||||
template<typename Fn, size_t N> | template<typename Fn, size_t N> | ||||
struct count_if_<typelist<>, Fn, N> { | struct count_if_<typelist<>, Fn, N> { | ||||
using type = size_t_<N>; | |||||
using type = size_<N>; | |||||
}; | }; | ||||
} | } | ||||
/*! | /*! | ||||
* Count all \c Items on the \p List for which the predicate \p Pred | * Count all \c Items on the \p List for which the predicate \p Pred | ||||
* returns true_ when `type_<invoke<Pred, Item>>` | |||||
* returns true_ when `eval<invoke<Pred, Item>>` | |||||
* | * | ||||
* Complexity \f$ O(N) \f$ | * Complexity \f$ O(N) \f$ | ||||
* | * | ||||
@@ -738,7 +740,7 @@ namespace meta { | |||||
* \return The total count of occurrences as an integral constant of size_t | * \return The total count of occurrences as an integral constant of size_t | ||||
*/ | */ | ||||
template <typename List, typename Pred> | template <typename List, typename Pred> | ||||
using count_if = type_< | |||||
using count_if = eval< | |||||
count_if_impl::count_if_<List, Pred, 0> | count_if_impl::count_if_<List, Pred, 0> | ||||
>; | >; | ||||
@@ -761,8 +763,8 @@ namespace meta { | |||||
// of items for which the invoke of Fn returns true_ | // of items for which the invoke of Fn returns true_ | ||||
using type = if_ < | using type = if_ < | ||||
invoke_t <Fn, Head>, | invoke_t <Fn, Head>, | ||||
type_<filter_<typelist<Tail...>, Fn, cat<L, typelist<Head>>>>, // Add the element and re-call | |||||
type_<filter_<typelist<Tail...>, Fn, L>> // re-call with the same list | |||||
eval<filter_<typelist<Tail...>, Fn, cat<L, typelist<Head>>>>, // Add the element and re-call | |||||
eval<filter_<typelist<Tail...>, Fn, L>> // re-call with the same list | |||||
>; | >; | ||||
}; | }; | ||||
@@ -775,7 +777,7 @@ namespace meta { | |||||
/*! | /*! | ||||
* Return a new typelist with elements, the elements of \p List that satisfy the | * Return a new typelist with elements, the elements of \p List that satisfy the | ||||
* invocable \p Pred such that `type_<invoke<Pred, Item>>` is \c true_ | |||||
* invocable \p Pred such that `eval<invoke<Pred, Item>>` is \c true_ | |||||
* | * | ||||
* Complexity \f$ O(N) \f$ | * Complexity \f$ O(N) \f$ | ||||
* | * | ||||
@@ -783,7 +785,7 @@ namespace meta { | |||||
* \param Pred A unary invocable predicate | * \param Pred A unary invocable predicate | ||||
*/ | */ | ||||
template <typename List, typename Pred> | template <typename List, typename Pred> | ||||
using filter = type_< | |||||
using filter = eval< | |||||
filter_impl::filter_<List, Pred, typelist<>> | filter_impl::filter_<List, Pred, typelist<>> | ||||
>; | >; | ||||
//! @} | //! @} | ||||
@@ -800,8 +802,8 @@ namespace meta { | |||||
// of items based on invocation of Fn | // of items based on invocation of Fn | ||||
using type = if_ < | using type = if_ < | ||||
invoke_t<Fn, Head>, | invoke_t<Fn, Head>, | ||||
type_<replace_if_<typelist<Tail...>, Fn, T, cat<Ret, typelist<T>>>>, // re-call with change to T | |||||
type_<replace_if_<typelist<Tail...>, Fn, T, cat<Ret, typelist<Head>>>> // re-call with no change | |||||
eval<replace_if_<typelist<Tail...>, Fn, T, cat<Ret, typelist<T>>>>, // re-call with change to T | |||||
eval<replace_if_<typelist<Tail...>, Fn, T, cat<Ret, typelist<Head>>>> // re-call with no change | |||||
>; | >; | ||||
}; | }; | ||||
@@ -820,18 +822,18 @@ namespace meta { | |||||
* | * | ||||
* \param List The input typelist | * \param List The input typelist | ||||
* \param Pred A unary invocable predicate | * \param Pred A unary invocable predicate | ||||
* \param T The new type to replace the item of the \p List, when type_<invoke<Pred, Item>> | |||||
* \param T The new type to replace the item of the \p List, when eval<invoke<Pred, Item>> | |||||
* returns \c true_ | * returns \c true_ | ||||
*/ | */ | ||||
template<typename List, typename Pred, typename T> | template<typename List, typename Pred, typename T> | ||||
using replace_if = type_< | |||||
using replace_if = eval< | |||||
replace_if_impl::replace_if_<List, Pred, T, typelist<>> | replace_if_impl::replace_if_<List, Pred, T, typelist<>> | ||||
>; | >; | ||||
//! Alias wrapper that returns a new \c typelist where all instances of type \p T have | //! Alias wrapper that returns a new \c typelist where all instances of type \p T have | ||||
//! been replaced with \p U. | //! been replaced with \p U. | ||||
template <typename List, typename T, typename U> | template <typename List, typename T, typename U> | ||||
using replace = type_ < | |||||
using replace = eval < | |||||
replace_if <List, same_as<T>, U> | replace_if <List, same_as<T>, U> | ||||
>; | >; | ||||
//! @} | //! @} | ||||
@@ -35,21 +35,21 @@ namespace meta { | |||||
//! If same type resolves to _Ret, else SFINAE | //! If same type resolves to _Ret, else SFINAE | ||||
template <typename _T1, typename _T2, typename _Ret =_T1> | template <typename _T1, typename _T2, typename _Ret =_T1> | ||||
using use_if_same_t = type_< | |||||
using use_if_same_t = eval< | |||||
enable_if< | enable_if< | ||||
same_<_T1, _T2>::value, _Ret | same_<_T1, _T2>::value, _Ret | ||||
> | > | ||||
>; | >; | ||||
//! If not same type resolves to _Ret, else SFINAE | //! If not same type resolves to _Ret, else SFINAE | ||||
template <typename _T1, typename _T2, typename _Ret =_T1> | template <typename _T1, typename _T2, typename _Ret =_T1> | ||||
using use_if_not_same_t = type_< | |||||
using use_if_not_same_t = eval< | |||||
enable_if< | enable_if< | ||||
!same_<_T1, _T2>::value, _Ret | !same_<_T1, _T2>::value, _Ret | ||||
> | > | ||||
>; | >; | ||||
//! If any type (_T1 or _T2) type resolves to _Ret, else to SFINAE | //! If any type (_T1 or _T2) type resolves to _Ret, else to SFINAE | ||||
template <typename _T1, typename _T2, typename _Ret =_T1> | template <typename _T1, typename _T2, typename _Ret =_T1> | ||||
using use_if_any_t = type_< | |||||
using use_if_any_t = eval< | |||||
enable_if< | enable_if< | ||||
or_<_T1, _T2>::value, _Ret | or_<_T1, _T2>::value, _Ret | ||||
> | > | ||||
@@ -57,7 +57,7 @@ namespace meta { | |||||
//! If both type (_T1 and _T2) type resolves to _Ret, else to SFINAE | //! If both type (_T1 and _T2) type resolves to _Ret, else to SFINAE | ||||
template <typename _T1, typename _T2, typename _Ret =_T1> | template <typename _T1, typename _T2, typename _Ret =_T1> | ||||
using use_if_both_t = type_< | |||||
using use_if_both_t = eval< | |||||
enable_if< | enable_if< | ||||
and_<_T1, _T2>::value, _Ret | and_<_T1, _T2>::value, _Ret | ||||
> | > | ||||
@@ -1,409 +1,154 @@ | |||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> | <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> | ||||
<storageModule moduleId="org.eclipse.cdt.core.settings"> | <storageModule moduleId="org.eclipse.cdt.core.settings"> | ||||
<cconfiguration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751"> | |||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751" moduleId="org.eclipse.cdt.core.settings" name="C++14-Concepts"> | |||||
<cconfiguration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843"> | |||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843" moduleId="org.eclipse.cdt.core.settings" name="C++14"> | |||||
<externalSettings/> | <externalSettings/> | ||||
<extensions> | <extensions> | ||||
<extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser"/> | <extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser"/> | ||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||||
</extensions> | </extensions> | ||||
</storageModule> | </storageModule> | ||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | <storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751" name="C++14-Concepts" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="cdt.managedbuild.config.gnu.cygwin.exe.debug"> | |||||
<folderInfo id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751." name="/" resourcePath=""> | |||||
<toolChain id="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug.1924152895" name="Cygwin GCC" superClass="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug"> | |||||
<targetPlatform id="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug.1919100371" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug"/> | |||||
<builder buildPath="${workspace_loc:/utlTest}/Debug" id="org.eclipse.cdt.build.core.internal.builder.705830592" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.build.core.internal.builder"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug.1925840471" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug"> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="gnu.both.asm.option.include.paths.459711779" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" useByScannerDiscovery="false" valueType="includePath"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1271990326" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.archiver.cygwin.base.1591170741" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.cygwin.base"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.228687904" name="Cygwin C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug"> | |||||
<option id="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level.106969452" name="Optimization Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> | |||||
<option defaultValue="gnu.cpp.compiler.debugging.level.max" id="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level.637456608" name="Debug Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.1116128788" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib/}""/> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | |||||
</option> | |||||
<option id="gnu.cpp.compiler.option.dialect.std.1496587014" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.undef.1315388502" name="Undefined symbols (-U)" superClass="gnu.cpp.compiler.option.preprocessor.undef" useByScannerDiscovery="false" valueType="undefDefinedSymbols"> | |||||
<listOptionValue builtIn="false" value="__STRICT_ANSI__"/> | |||||
</option> | |||||
<option id="gnu.cpp.compiler.option.dialect.flags.268940017" name="Other dialect flags" superClass="gnu.cpp.compiler.option.dialect.flags" useByScannerDiscovery="true" value="-std=c++14 -fconcepts" valueType="string"/> | |||||
<option id="gnu.cpp.compiler.option.debugging.codecov.1173199012" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.cpp.compiler.option.debugging.codecov" useByScannerDiscovery="false" value="false" valueType="boolean"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.1038314862" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.1784516512" name="Cygwin C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug"> | |||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.cygwin.exe.debug.option.optimization.level.671798665" name="Optimization Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option defaultValue="gnu.c.debugging.level.max" id="gnu.c.compiler.cygwin.exe.debug.option.debugging.level.1991154032" name="Debug Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.100715354" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib/}""/> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | |||||
</option> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.undef.symbol.740299735" name="Undefined symbols (-U)" superClass="gnu.c.compiler.option.preprocessor.undef.symbol" useByScannerDiscovery="false" valueType="undefDefinedSymbols"> | |||||
<listOptionValue builtIn="false" value="__STRICT_ANSI__"/> | |||||
</option> | |||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.1310660291" superClass="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug.1281219528" name="Cygwin C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug.1583861249" name="Cygwin C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug"> | |||||
<option id="gnu.cpp.link.option.debugging.codecov.1996752093" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.cpp.link.option.debugging.codecov" useByScannerDiscovery="false" value="true" valueType="boolean"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="gnu.cpp.link.option.paths.1215267183" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1854343248" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> | |||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | |||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> | |||||
</inputType> | |||||
</tool> | |||||
</toolChain> | |||||
</folderInfo> | |||||
<sourceEntries> | |||||
<entry excluding="source|lib|utl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="lib"/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="source"/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="utl"/> | |||||
</sourceEntries> | |||||
</configuration> | |||||
</storageModule> | |||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | |||||
</cconfiguration> | |||||
<cconfiguration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.86722129"> | |||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.86722129" moduleId="org.eclipse.cdt.core.settings" name="C++14"> | |||||
<externalSettings/> | |||||
<extensions> | |||||
<extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser"/> | |||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
</extensions> | |||||
</storageModule> | |||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | |||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.86722129" name="C++14" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="cdt.managedbuild.config.gnu.cygwin.exe.debug"> | |||||
<folderInfo id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.86722129." name="/" resourcePath=""> | |||||
<toolChain id="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug.2065613029" name="Cygwin GCC" superClass="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug"> | |||||
<targetPlatform id="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug.849505553" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug"/> | |||||
<builder buildPath="${workspace_loc:/utlTest}/Debug" id="org.eclipse.cdt.build.core.internal.builder.1081273227" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.build.core.internal.builder"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug.122521318" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug"> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="gnu.both.asm.option.include.paths.1653092859" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" useByScannerDiscovery="false" valueType="includePath"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1600923552" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.archiver.cygwin.base.1988501174" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.cygwin.base"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.1893514275" name="Cygwin C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug"> | |||||
<option id="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level.596430454" name="Optimization Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> | |||||
<option defaultValue="gnu.cpp.compiler.debugging.level.max" id="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level.1288270654" name="Debug Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.510611216" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib/}""/> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | |||||
</option> | |||||
<option id="gnu.cpp.compiler.option.dialect.std.1017611362" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.undef.1717972142" name="Undefined symbols (-U)" superClass="gnu.cpp.compiler.option.preprocessor.undef" useByScannerDiscovery="false" valueType="undefDefinedSymbols"> | |||||
<listOptionValue builtIn="false" value="__STRICT_ANSI__"/> | |||||
</option> | |||||
<option id="gnu.cpp.compiler.option.dialect.flags.1198785188" name="Other dialect flags" superClass="gnu.cpp.compiler.option.dialect.flags" useByScannerDiscovery="true" value="-std=c++14" valueType="string"/> | |||||
<option id="gnu.cpp.compiler.option.debugging.codecov.1736800818" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.cpp.compiler.option.debugging.codecov" useByScannerDiscovery="false" value="false" valueType="boolean"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.1481051991" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.105394791" name="Cygwin C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug"> | |||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.cygwin.exe.debug.option.optimization.level.151127488" name="Optimization Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option defaultValue="gnu.c.debugging.level.max" id="gnu.c.compiler.cygwin.exe.debug.option.debugging.level.1708883569" name="Debug Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.812789752" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib/}""/> | |||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843" name="C++14" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="cdt.managedbuild.config.gnu.cygwin.exe.debug"> | |||||
<folderInfo id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843." name="/" resourcePath=""> | |||||
<toolChain id="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug.1452617396" name="Cygwin GCC" superClass="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug"> | |||||
<targetPlatform id="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug.2070382003" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug"/> | |||||
<builder buildPath="${workspace_loc:/utlTest}/Debug" id="cdt.managedbuild.target.gnu.builder.cygwin.exe.debug.398006819" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.cygwin.exe.debug"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug.160140039" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug"> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.both.asm.option.include.paths.523172746" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib}""/> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | <listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | ||||
</option> | </option> | ||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.undef.symbol.2143120699" name="Undefined symbols (-U)" superClass="gnu.c.compiler.option.preprocessor.undef.symbol" useByScannerDiscovery="false" valueType="undefDefinedSymbols"> | |||||
<listOptionValue builtIn="false" value="__STRICT_ANSI__"/> | |||||
</option> | |||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.1474144606" superClass="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug.109886885" name="Cygwin C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug.121412582" name="Cygwin C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug"> | |||||
<option id="gnu.cpp.link.option.debugging.codecov.35121135" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.cpp.link.option.debugging.codecov" useByScannerDiscovery="false" value="true" valueType="boolean"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="gnu.cpp.link.option.paths.729451757" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1081049038" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> | |||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | |||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> | |||||
</inputType> | |||||
</tool> | |||||
</toolChain> | |||||
</folderInfo> | |||||
<sourceEntries> | |||||
<entry excluding="source|lib|utl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="lib"/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="source"/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="utl"/> | |||||
</sourceEntries> | |||||
</configuration> | |||||
</storageModule> | |||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | |||||
</cconfiguration> | |||||
<cconfiguration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.626755090"> | |||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.626755090" moduleId="org.eclipse.cdt.core.settings" name="C++11"> | |||||
<externalSettings/> | |||||
<extensions> | |||||
<extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser"/> | |||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
</extensions> | |||||
</storageModule> | |||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | |||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.626755090" name="C++11" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="cdt.managedbuild.config.gnu.cygwin.exe.debug"> | |||||
<folderInfo id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.626755090." name="/" resourcePath=""> | |||||
<toolChain id="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug.682369994" name="Cygwin GCC" superClass="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug"> | |||||
<targetPlatform id="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug.600462257" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug"/> | |||||
<builder buildPath="${workspace_loc:/utlTest}/Debug" id="org.eclipse.cdt.build.core.internal.builder.1826586153" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.build.core.internal.builder"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug.106665733" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug"> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="gnu.both.asm.option.include.paths.1950337212" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" useByScannerDiscovery="false" valueType="includePath"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.656529918" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.560994850" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> | |||||
</tool> | </tool> | ||||
<tool id="cdt.managedbuild.tool.gnu.archiver.cygwin.base.58869355" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.cygwin.base"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.332807854" name="Cygwin C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug"> | |||||
<option id="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level.1562327042" name="Optimization Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> | |||||
<option defaultValue="gnu.cpp.compiler.debugging.level.max" id="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level.1370290381" name="Debug Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.2104218585" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib/}""/> | |||||
<tool id="cdt.managedbuild.tool.gnu.archiver.cygwin.base.454630658" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.cygwin.base"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.2016117329" name="Cygwin C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug"> | |||||
<option id="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level.1382452990" name="Optimization Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> | |||||
<option defaultValue="gnu.cpp.compiler.debugging.level.max" id="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level.982303256" name="Debug Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.30154542" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib}""/> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | <listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | ||||
</option> | </option> | ||||
<option id="gnu.cpp.compiler.option.dialect.std.1547706903" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.undef.1847494996" name="Undefined symbols (-U)" superClass="gnu.cpp.compiler.option.preprocessor.undef" useByScannerDiscovery="false" valueType="undefDefinedSymbols"> | |||||
<listOptionValue builtIn="false" value="__STRICT_ANSI__"/> | |||||
</option> | |||||
<option id="gnu.cpp.compiler.option.dialect.flags.1103884348" name="Other dialect flags" superClass="gnu.cpp.compiler.option.dialect.flags" useByScannerDiscovery="true" value="-std=c++11" valueType="string"/> | |||||
<option id="gnu.cpp.compiler.option.debugging.codecov.1050916753" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.cpp.compiler.option.debugging.codecov" useByScannerDiscovery="false" value="false" valueType="boolean"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.1555537833" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.1615818322" name="Cygwin C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug"> | |||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.cygwin.exe.debug.option.optimization.level.948096591" name="Optimization Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option defaultValue="gnu.c.debugging.level.max" id="gnu.c.compiler.cygwin.exe.debug.option.debugging.level.1857311280" name="Debug Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.280713351" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib/}""/> | |||||
<option id="gnu.cpp.compiler.option.dialect.std.1974130800" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/> | |||||
<option id="gnu.cpp.compiler.option.dialect.flags.1960824418" name="Other dialect flags" superClass="gnu.cpp.compiler.option.dialect.flags" useByScannerDiscovery="true" value="-std=gnu++14" valueType="string"/> | |||||
<option id="gnu.cpp.compiler.option.other.other.1765610610" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="false" value="-c -fmessage-length=0" valueType="string"/> | |||||
<option id="gnu.cpp.compiler.option.warnings.extrawarn.1211607536" name="Extra warnings (-Wextra)" superClass="gnu.cpp.compiler.option.warnings.extrawarn" useByScannerDiscovery="false" value="false" valueType="boolean"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.745731200" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.1857324766" name="Cygwin C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug"> | |||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.cygwin.exe.debug.option.optimization.level.558800156" name="Optimization Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option defaultValue="gnu.c.debugging.level.max" id="gnu.c.compiler.cygwin.exe.debug.option.debugging.level.2070049689" name="Debug Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.1589818474" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib}""/> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | <listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | ||||
</option> | </option> | ||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.undef.symbol.129823029" name="Undefined symbols (-U)" superClass="gnu.c.compiler.option.preprocessor.undef.symbol" useByScannerDiscovery="false" valueType="undefDefinedSymbols"> | |||||
<listOptionValue builtIn="false" value="__STRICT_ANSI__"/> | |||||
</option> | |||||
<option id="gnu.c.compiler.option.dialect.std.1647385416" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.c.compiler.dialect.default" valueType="enumerated"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.1439165162" superClass="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.795716814" superClass="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin"/> | |||||
</tool> | </tool> | ||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug.1524152145" name="Cygwin C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug.1923517372" name="Cygwin C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug"> | |||||
<option id="gnu.cpp.link.option.debugging.codecov.2020345366" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.cpp.link.option.debugging.codecov" useByScannerDiscovery="false" value="true" valueType="boolean"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="gnu.cpp.link.option.paths.75055436" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1480667872" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> | |||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug.2071093662" name="Cygwin C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug.1300513199" name="Cygwin C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug"> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.2080992035" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> | |||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | ||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> | <additionalInput kind="additionalinput" paths="$(LIBS)"/> | ||||
</inputType> | </inputType> | ||||
</tool> | </tool> | ||||
</toolChain> | </toolChain> | ||||
</folderInfo> | </folderInfo> | ||||
<sourceEntries> | |||||
<entry excluding="source|lib|utl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="lib"/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="source"/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="utl"/> | |||||
</sourceEntries> | |||||
</configuration> | </configuration> | ||||
</storageModule> | </storageModule> | ||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | ||||
</cconfiguration> | </cconfiguration> | ||||
<cconfiguration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1809104199"> | |||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1809104199" moduleId="org.eclipse.cdt.core.settings" name="C++17"> | |||||
<cconfiguration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843.411535120"> | |||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843.411535120" moduleId="org.eclipse.cdt.core.settings" name="C++14-Concepts"> | |||||
<externalSettings/> | <externalSettings/> | ||||
<extensions> | <extensions> | ||||
<extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser"/> | <extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser"/> | ||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||||
</extensions> | </extensions> | ||||
</storageModule> | </storageModule> | ||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | <storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1809104199" name="C++17" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="cdt.managedbuild.config.gnu.cygwin.exe.debug"> | |||||
<folderInfo id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1809104199." name="/" resourcePath=""> | |||||
<toolChain id="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug.2141297338" name="Cygwin GCC" superClass="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug"> | |||||
<targetPlatform id="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug.943424184" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug"/> | |||||
<builder buildPath="${workspace_loc:/utlTest}/Debug" id="org.eclipse.cdt.build.core.internal.builder.930337780" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.build.core.internal.builder"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug.296147133" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug"> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="gnu.both.asm.option.include.paths.1466212319" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" useByScannerDiscovery="false" valueType="includePath"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1802440202" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.archiver.cygwin.base.444190925" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.cygwin.base"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.1091424472" name="Cygwin C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug"> | |||||
<option id="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level.1271617835" name="Optimization Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> | |||||
<option defaultValue="gnu.cpp.compiler.debugging.level.max" id="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level.1093148386" name="Debug Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.2093419848" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib/}""/> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | |||||
</option> | |||||
<option id="gnu.cpp.compiler.option.dialect.std.2073235360" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.undef.1020138417" name="Undefined symbols (-U)" superClass="gnu.cpp.compiler.option.preprocessor.undef" useByScannerDiscovery="false" valueType="undefDefinedSymbols"> | |||||
<listOptionValue builtIn="false" value="__STRICT_ANSI__"/> | |||||
</option> | |||||
<option id="gnu.cpp.compiler.option.dialect.flags.172009854" name="Other dialect flags" superClass="gnu.cpp.compiler.option.dialect.flags" useByScannerDiscovery="true" value="-std=c++17" valueType="string"/> | |||||
<option id="gnu.cpp.compiler.option.debugging.codecov.395836040" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.cpp.compiler.option.debugging.codecov" useByScannerDiscovery="false" value="false" valueType="boolean"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.505018020" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.610352604" name="Cygwin C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug"> | |||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.cygwin.exe.debug.option.optimization.level.1301947069" name="Optimization Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option defaultValue="gnu.c.debugging.level.max" id="gnu.c.compiler.cygwin.exe.debug.option.debugging.level.392794324" name="Debug Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.14665648" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib/}""/> | |||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843.411535120" name="C++14-Concepts" optionalBuildProperties="" parent="cdt.managedbuild.config.gnu.cygwin.exe.debug"> | |||||
<folderInfo id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843.411535120." name="/" resourcePath=""> | |||||
<toolChain id="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug.299122920" name="Cygwin GCC" superClass="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug"> | |||||
<targetPlatform id="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug.551046761" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug"/> | |||||
<builder buildPath="${workspace_loc:/utlTest}/Debug" id="cdt.managedbuild.target.gnu.builder.cygwin.exe.debug.2072390373" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.cygwin.exe.debug"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug.1417066120" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug"> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.both.asm.option.include.paths.820519354" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib}""/> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | <listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | ||||
</option> | </option> | ||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.undef.symbol.1534880369" name="Undefined symbols (-U)" superClass="gnu.c.compiler.option.preprocessor.undef.symbol" useByScannerDiscovery="false" valueType="undefDefinedSymbols"> | |||||
<listOptionValue builtIn="false" value="__STRICT_ANSI__"/> | |||||
</option> | |||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.259386555" superClass="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug.1995126639" name="Cygwin C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug.1773622987" name="Cygwin C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug"> | |||||
<option id="gnu.cpp.link.option.debugging.codecov.1530170191" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.cpp.link.option.debugging.codecov" useByScannerDiscovery="false" value="true" valueType="boolean"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="gnu.cpp.link.option.paths.2118317184" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1225702280" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> | |||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | |||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> | |||||
</inputType> | |||||
</tool> | |||||
</toolChain> | |||||
</folderInfo> | |||||
<sourceEntries> | |||||
<entry excluding="source|lib|utl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="lib"/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="source"/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="utl"/> | |||||
</sourceEntries> | |||||
</configuration> | |||||
</storageModule> | |||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | |||||
</cconfiguration> | |||||
<cconfiguration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1716123261"> | |||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1716123261" moduleId="org.eclipse.cdt.core.settings" name="C++17-Concepts"> | |||||
<externalSettings/> | |||||
<extensions> | |||||
<extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser"/> | |||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | |||||
</extensions> | |||||
</storageModule> | |||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | |||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1716123261" name="C++17-Concepts" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="cdt.managedbuild.config.gnu.cygwin.exe.debug"> | |||||
<folderInfo id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1716123261." name="/" resourcePath=""> | |||||
<toolChain id="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug.96176515" name="Cygwin GCC" superClass="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug"> | |||||
<targetPlatform id="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug.190350974" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug"/> | |||||
<builder buildPath="${workspace_loc:/utlTest}/Debug" id="org.eclipse.cdt.build.core.internal.builder.940473006" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.build.core.internal.builder"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug.101219619" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.cygwin.exe.debug"> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="gnu.both.asm.option.include.paths.1631414156" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" useByScannerDiscovery="false" valueType="includePath"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1220651470" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.776109397" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> | |||||
</tool> | </tool> | ||||
<tool id="cdt.managedbuild.tool.gnu.archiver.cygwin.base.65270086" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.cygwin.base"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.1621494503" name="Cygwin C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug"> | |||||
<option id="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level.770784177" name="Optimization Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> | |||||
<option defaultValue="gnu.cpp.compiler.debugging.level.max" id="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level.1487269030" name="Debug Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.1579431161" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib/}""/> | |||||
<tool id="cdt.managedbuild.tool.gnu.archiver.cygwin.base.1417361810" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.cygwin.base"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.1862577263" name="Cygwin C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug"> | |||||
<option id="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level.1921899331" name="Optimization Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> | |||||
<option defaultValue="gnu.cpp.compiler.debugging.level.max" id="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level.669018799" name="Debug Level" superClass="gnu.cpp.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.387592135" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib}""/> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | <listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | ||||
</option> | </option> | ||||
<option id="gnu.cpp.compiler.option.dialect.std.2025861675" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.undef.1488510937" name="Undefined symbols (-U)" superClass="gnu.cpp.compiler.option.preprocessor.undef" useByScannerDiscovery="false" valueType="undefDefinedSymbols"> | |||||
<listOptionValue builtIn="false" value="__STRICT_ANSI__"/> | |||||
</option> | |||||
<option id="gnu.cpp.compiler.option.dialect.flags.445542768" name="Other dialect flags" superClass="gnu.cpp.compiler.option.dialect.flags" useByScannerDiscovery="true" value="-std=c++17 -fconcepts" valueType="string"/> | |||||
<option id="gnu.cpp.compiler.option.debugging.codecov.747766837" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.cpp.compiler.option.debugging.codecov" useByScannerDiscovery="false" value="false" valueType="boolean"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.1815164774" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.347767685" name="Cygwin C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug"> | |||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.cygwin.exe.debug.option.optimization.level.1659643257" name="Optimization Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option defaultValue="gnu.c.debugging.level.max" id="gnu.c.compiler.cygwin.exe.debug.option.debugging.level.1838652153" name="Debug Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.1312631336" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib/}""/> | |||||
<option id="gnu.cpp.compiler.option.dialect.std.872539441" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/> | |||||
<option id="gnu.cpp.compiler.option.dialect.flags.734334232" name="Other dialect flags" superClass="gnu.cpp.compiler.option.dialect.flags" useByScannerDiscovery="true" value="-std=gnu++14" valueType="string"/> | |||||
<option id="gnu.cpp.compiler.option.other.other.404521077" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="false" value="-c -fmessage-length=0 -fconcepts" valueType="string"/> | |||||
<option id="gnu.cpp.compiler.option.warnings.extrawarn.1284692373" name="Extra warnings (-Wextra)" superClass="gnu.cpp.compiler.option.warnings.extrawarn" useByScannerDiscovery="false" value="false" valueType="boolean"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.2022766969" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin"/> | |||||
</tool> | |||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.627653081" name="Cygwin C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug"> | |||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.cygwin.exe.debug.option.optimization.level.1460026308" name="Optimization Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option defaultValue="gnu.c.debugging.level.max" id="gnu.c.compiler.cygwin.exe.debug.option.debugging.level.9564985" name="Debug Level" superClass="gnu.c.compiler.cygwin.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.1216934755" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/lib}""/> | |||||
<listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | <listOptionValue builtIn="false" value=""${workspace_loc:/utlTest/utl/include}""/> | ||||
</option> | </option> | ||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.undef.symbol.431937572" name="Undefined symbols (-U)" superClass="gnu.c.compiler.option.preprocessor.undef.symbol" useByScannerDiscovery="false" valueType="undefDefinedSymbols"> | |||||
<listOptionValue builtIn="false" value="__STRICT_ANSI__"/> | |||||
</option> | |||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.1920414724" superClass="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.1623914378" superClass="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin"/> | |||||
</tool> | </tool> | ||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug.1969555082" name="Cygwin C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug.1075997721" name="Cygwin C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug"> | |||||
<option id="gnu.cpp.link.option.debugging.codecov.1437428271" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.cpp.link.option.debugging.codecov" useByScannerDiscovery="false" value="true" valueType="boolean"/> | |||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="gnu.cpp.link.option.paths.1551733230" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"/> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1696644482" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> | |||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug.1486526287" name="Cygwin C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.cygwin.exe.debug"/> | |||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug.2019264645" name="Cygwin C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.exe.debug"> | |||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1126739847" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> | |||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | ||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> | <additionalInput kind="additionalinput" paths="$(LIBS)"/> | ||||
</inputType> | </inputType> | ||||
</tool> | </tool> | ||||
</toolChain> | </toolChain> | ||||
</folderInfo> | </folderInfo> | ||||
<sourceEntries> | |||||
<entry excluding="source|lib|utl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="lib"/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="source"/> | |||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="utl"/> | |||||
</sourceEntries> | |||||
</configuration> | </configuration> | ||||
</storageModule> | </storageModule> | ||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | ||||
</cconfiguration> | </cconfiguration> | ||||
</storageModule> | </storageModule> | ||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | <storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||||
<project id="utlTest.cdt.managedbuild.target.gnu.cygwin.exe.1727601184" name="Executable" projectType="cdt.managedbuild.target.gnu.cygwin.exe"/> | |||||
</storageModule> | |||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> | |||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> | |||||
<storageModule moduleId="refreshScope" versionNumber="2"> | |||||
<configuration configurationName="C++14"/> | |||||
<configuration configurationName="C++14-Concepts"/> | |||||
<configuration configurationName="C++11"/> | |||||
<configuration configurationName="C++17-Concepts"/> | |||||
<configuration configurationName="C++17"/> | |||||
<configuration configurationName="Debug"> | |||||
<resource resourceType="PROJECT" workspacePath="/utlTest"/> | |||||
</configuration> | |||||
<configuration configurationName="Release"> | |||||
<resource resourceType="PROJECT" workspacePath="/utlTest"/> | |||||
</configuration> | |||||
<project id="utlTest.cdt.managedbuild.target.gnu.cygwin.exe.29850487" name="Executable" projectType="cdt.managedbuild.target.gnu.cygwin.exe"/> | |||||
</storageModule> | </storageModule> | ||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/> | |||||
<storageModule moduleId="scannerConfiguration"> | <storageModule moduleId="scannerConfiguration"> | ||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.release.312322361;cdt.managedbuild.config.gnu.cygwin.exe.release.312322361.;cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.release.1921762569;cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.1068537826"> | |||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | |||||
</scannerConfigBuildInfo> | |||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.626755090;cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.626755090.;cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.332807854;cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.1555537833"> | |||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | |||||
</scannerConfigBuildInfo> | |||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.86722129;cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.86722129.;cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.105394791;cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.1474144606"> | |||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | |||||
</scannerConfigBuildInfo> | |||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1809104199;cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1809104199.;cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.1091424472;cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.505018020"> | |||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | |||||
</scannerConfigBuildInfo> | |||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1809104199;cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1809104199.;cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.610352604;cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.259386555"> | |||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | |||||
</scannerConfigBuildInfo> | |||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.release.312322361;cdt.managedbuild.config.gnu.cygwin.exe.release.312322361.;cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.release.890396202;cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.258485860"> | |||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | |||||
</scannerConfigBuildInfo> | |||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1716123261;cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1716123261.;cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.347767685;cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.1920414724"> | |||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | |||||
</scannerConfigBuildInfo> | |||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751;cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.;cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.1784516512;cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.1310660291"> | |||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | |||||
</scannerConfigBuildInfo> | |||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.626755090;cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.626755090.;cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.1615818322;cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.1439165162"> | |||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843;cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843.;cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.debug.1857324766;cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.795716814"> | |||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||||
</scannerConfigBuildInfo> | </scannerConfigBuildInfo> | ||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1716123261;cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1716123261.;cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.1621494503;cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.1815164774"> | |||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.release.47599878;cdt.managedbuild.config.gnu.cygwin.exe.release.47599878.;cdt.managedbuild.tool.gnu.c.compiler.cygwin.exe.release.1131936454;cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.1476422477"> | |||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||||
</scannerConfigBuildInfo> | </scannerConfigBuildInfo> | ||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.86722129;cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.86722129.;cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.1893514275;cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.1481051991"> | |||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843;cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843.;cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.2016117329;cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.745731200"> | |||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||||
</scannerConfigBuildInfo> | </scannerConfigBuildInfo> | ||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751;cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.;cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.debug.228687904;cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.1038314862"> | |||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cygwin.exe.release.47599878;cdt.managedbuild.config.gnu.cygwin.exe.release.47599878.;cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.exe.release.2119115928;cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.1940130344"> | |||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||||
</scannerConfigBuildInfo> | </scannerConfigBuildInfo> | ||||
</storageModule> | </storageModule> | ||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> | |||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> | |||||
<storageModule moduleId="refreshScope" versionNumber="2"> | |||||
<configuration configurationName="C++14"> | |||||
<resource resourceType="PROJECT" workspacePath="/utlTest"/> | |||||
</configuration> | |||||
<configuration configurationName="C++14-Concepts"/> | |||||
</storageModule> | |||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/> | |||||
</cproject> | </cproject> |
@@ -1,55 +1,22 @@ | |||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
<project> | <project> | ||||
<configuration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751" name="C++14-Concepts"> | |||||
<configuration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843" name="C++14"> | |||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | ||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | ||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | ||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | ||||
<provider class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.GCCBuiltinSpecsDetectorCygwin" console="false" env-hash="766647519027156587" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetectorCygwin" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cygwin" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | |||||
<provider class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.GCCBuiltinSpecsDetectorCygwin" console="false" env-hash="1720179367148516052" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetectorCygwin" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cygwin" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | |||||
<language-scope id="org.eclipse.cdt.core.gcc"/> | <language-scope id="org.eclipse.cdt.core.gcc"/> | ||||
<language-scope id="org.eclipse.cdt.core.g++"/> | <language-scope id="org.eclipse.cdt.core.g++"/> | ||||
</provider> | </provider> | ||||
</extension> | </extension> | ||||
</configuration> | </configuration> | ||||
<configuration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.86722129" name="C++14"> | |||||
<configuration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1901736843.411535120" name="C++14-Concepts"> | |||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | ||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | ||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | ||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | ||||
<provider class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.GCCBuiltinSpecsDetectorCygwin" console="false" env-hash="766647228118114623" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetectorCygwin" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cygwin" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | |||||
<language-scope id="org.eclipse.cdt.core.gcc"/> | |||||
<language-scope id="org.eclipse.cdt.core.g++"/> | |||||
</provider> | |||||
</extension> | |||||
</configuration> | |||||
<configuration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.626755090" name="C++11"> | |||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | |||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | |||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | |||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | |||||
<provider class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.GCCBuiltinSpecsDetectorCygwin" console="false" env-hash="766647847470562722" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetectorCygwin" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cygwin" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | |||||
<language-scope id="org.eclipse.cdt.core.gcc"/> | |||||
<language-scope id="org.eclipse.cdt.core.g++"/> | |||||
</provider> | |||||
</extension> | |||||
</configuration> | |||||
<configuration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1809104199" name="C++17"> | |||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | |||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | |||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | |||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | |||||
<provider class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.GCCBuiltinSpecsDetectorCygwin" console="false" env-hash="766646608765666524" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetectorCygwin" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cygwin" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | |||||
<language-scope id="org.eclipse.cdt.core.gcc"/> | |||||
<language-scope id="org.eclipse.cdt.core.g++"/> | |||||
</provider> | |||||
</extension> | |||||
</configuration> | |||||
<configuration id="cdt.managedbuild.config.gnu.cygwin.exe.debug.1759796751.1716123261" name="C++17-Concepts"> | |||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | |||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> | |||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> | |||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> | |||||
<provider class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.GCCBuiltinSpecsDetectorCygwin" console="false" env-hash="766647619424566958" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetectorCygwin" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cygwin" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | |||||
<provider class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.GCCBuiltinSpecsDetectorCygwin" console="false" env-hash="1720179367148516052" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetectorCygwin" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cygwin" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> | |||||
<language-scope id="org.eclipse.cdt.core.gcc"/> | <language-scope id="org.eclipse.cdt.core.gcc"/> | ||||
<language-scope id="org.eclipse.cdt.core.g++"/> | <language-scope id="org.eclipse.cdt.core.g++"/> | ||||
</provider> | </provider> | ||||
@@ -20,10 +20,9 @@ | |||||
*/ | */ | ||||
#include <gtest/gtest.h> | #include <gtest/gtest.h> | ||||
GTEST_API_ int main(int argc, char **argv) { | GTEST_API_ int main(int argc, char **argv) { | ||||
testing::InitGoogleTest(&argc, argv); | |||||
return RUN_ALL_TESTS(); | |||||
testing::InitGoogleTest(&argc, argv); | |||||
return RUN_ALL_TESTS(); | |||||
} | } | ||||
@@ -29,7 +29,7 @@ namespace test_meta { | |||||
* Types to behave like Fixtures | * Types to behave like Fixtures | ||||
*/ | */ | ||||
// Test type_of fixture | // Test type_of fixture | ||||
template<class T> struct TestTypeOf { | |||||
template<class T> struct Identity { | |||||
using type = T; | using type = T; | ||||
}; | }; | ||||
template<class T1, class T2> struct MfunBin { | template<class T1, class T2> struct MfunBin { | ||||
@@ -56,16 +56,16 @@ namespace test_meta { | |||||
/* | /* | ||||
* Test integral constant | * Test integral constant | ||||
*/ | */ | ||||
TEST(Tmeta_integral, Integreal_type_) { | |||||
EXPECT_EQ(true, (std::is_same<int, type_<TestTypeOf<int>>>::value)); | |||||
TEST(Tmeta, IntegrealType) { | |||||
EXPECT_EQ(true, (std::is_same<int, eval<Identity<int>>>::value)); | |||||
} | } | ||||
TEST(Tmeta_integral, IntegrealConstant) { | |||||
EXPECT_EQ(true, (std::is_same<int, integral_constant<int, 42>::value_type>::value)); | |||||
EXPECT_EQ(true, (std::is_same<int, integral_constant<int, 42>::type::value_type>::value)); | |||||
EXPECT_EQ(42, (integral_constant<int, 0>::value_type(42))); | |||||
EXPECT_EQ(42, (integral_constant<int, 42>())); | |||||
TEST(Tmeta, IntegrealConstant) { | |||||
EXPECT_EQ(true, (std::is_same<int, integral_<int, 42>::value_type>::value)); | |||||
EXPECT_EQ(true, (std::is_same<int, integral_<int, 42>::type::value_type>::value)); | |||||
EXPECT_EQ(42, (integral_<int, 0>::value_type(42))); | |||||
EXPECT_EQ(42, (integral_<int, 42>())); | |||||
} | } | ||||
TEST(Tmeta_integral, BasicTypes) { | |||||
TEST(Tmeta, BasicTypes) { | |||||
EXPECT_EQ(true, (std::is_same<bool, bool_<false>::value_type>::value)); | EXPECT_EQ(true, (std::is_same<bool, bool_<false>::value_type>::value)); | ||||
EXPECT_EQ(true, bool_<true>::value); | EXPECT_EQ(true, bool_<true>::value); | ||||
EXPECT_EQ(true, (std::is_same<bool, false_::value_type>::value)); | EXPECT_EQ(true, (std::is_same<bool, false_::value_type>::value)); | ||||
@@ -93,10 +93,10 @@ namespace test_meta { | |||||
EXPECT_EQ(true, (std::is_same<long, long_<0>::value_type>::value)); | EXPECT_EQ(true, (std::is_same<long, long_<0>::value_type>::value)); | ||||
EXPECT_EQ(42, long_<42>::value); | EXPECT_EQ(42, long_<42>::value); | ||||
EXPECT_EQ(true, (std::is_same<index_t, index_t_<0>::value_type>::value)); | |||||
EXPECT_EQ(42U, index_t_<42U>::value); | |||||
EXPECT_EQ(true, (std::is_same<size_t, size_t_<0>::value_type>::value)); | |||||
EXPECT_EQ(42U, size_t_<42U>::value); | |||||
EXPECT_EQ(true, (std::is_same<index_t, index_<0>::value_type>::value)); | |||||
EXPECT_EQ(42U, index_<42U>::value); | |||||
EXPECT_EQ(true, (std::is_same<size_t, size_<0>::value_type>::value)); | |||||
EXPECT_EQ(42U, size_<42U>::value); | |||||
EXPECT_EQ(sizeof(int), sizeof_<int>::value); | EXPECT_EQ(sizeof(int), sizeof_<int>::value); | ||||
EXPECT_EQ(alignof(int), alignof_<int>::value); | EXPECT_EQ(alignof(int), alignof_<int>::value); | ||||
@@ -105,7 +105,7 @@ namespace test_meta { | |||||
/* | /* | ||||
* Test integral constant arithmetic operations | * Test integral constant arithmetic operations | ||||
*/ | */ | ||||
TEST(Tmeta_integral, ArithmeticOperations) { | |||||
TEST(Tmeta, ArithmeticOperations) { | |||||
EXPECT_EQ (int_<42>(), inc<int_<41>>()); | EXPECT_EQ (int_<42>(), inc<int_<41>>()); | ||||
EXPECT_EQ (int_<42>(), dec<int_<43>>()); | EXPECT_EQ (int_<42>(), dec<int_<43>>()); | ||||
EXPECT_EQ (int_<42>(), (add<int_<23>, add<int_<17>, int_<2>>>())); | EXPECT_EQ (int_<42>(), (add<int_<23>, add<int_<17>, int_<2>>>())); | ||||
@@ -119,7 +119,7 @@ namespace test_meta { | |||||
/* | /* | ||||
* Test logical | * Test logical | ||||
*/ | */ | ||||
TEST(Tmeta_logical, ComparisonOperations) { | |||||
TEST(Tmeta, ComparisonOperations) { | |||||
EXPECT_EQ (true, (std::is_same<bool_<true>, not_c<false>>::value)); | EXPECT_EQ (true, (std::is_same<bool_<true>, not_c<false>>::value)); | ||||
EXPECT_EQ (true, (comp_eq<int_<7>, int_<7>>())); | EXPECT_EQ (true, (comp_eq<int_<7>, int_<7>>())); | ||||
EXPECT_EQ (true, (comp_ne<int_<42>, int_<7>>())); | EXPECT_EQ (true, (comp_ne<int_<42>, int_<7>>())); | ||||
@@ -129,7 +129,7 @@ namespace test_meta { | |||||
EXPECT_EQ (true, (comp_ge<int_<42>, int_<42>>())); | EXPECT_EQ (true, (comp_ge<int_<42>, int_<42>>())); | ||||
} | } | ||||
TEST(Tmeta_logical, BitOperations) { | |||||
TEST(Tmeta, BitOperations) { | |||||
EXPECT_EQ (0x00, (bitand_<uint8_<0x55>, uint8_<0xAA>>())); | EXPECT_EQ (0x00, (bitand_<uint8_<0x55>, uint8_<0xAA>>())); | ||||
EXPECT_EQ (0xFF, (bitor_ <uint8_<0x55>, uint8_<0xAA>>())); | EXPECT_EQ (0xFF, (bitor_ <uint8_<0x55>, uint8_<0xAA>>())); | ||||
EXPECT_EQ (0xFA, (bitxor_<uint8_<0x55>, uint8_<0xAF>>())); | EXPECT_EQ (0xFA, (bitxor_<uint8_<0x55>, uint8_<0xAF>>())); | ||||
@@ -141,7 +141,7 @@ namespace test_meta { | |||||
EXPECT_EQ (0x00, (shift_right<uint8_<0x01>, uint8_<1>>())); | EXPECT_EQ (0x00, (shift_right<uint8_<0x01>, uint8_<1>>())); | ||||
} | } | ||||
TEST(Tmeta_logical, TypeOperations) { | |||||
TEST(Tmeta, TypeOperations) { | |||||
struct Foo {}; | struct Foo {}; | ||||
struct Bar {}; | struct Bar {}; | ||||
@@ -167,10 +167,11 @@ namespace test_meta { | |||||
struct Bar {}; | struct Bar {}; | ||||
EXPECT_EQ(true, (std::is_same<void, void_t<int, long, Foo, Bar>>())); | EXPECT_EQ(true, (std::is_same<void, void_t<int, long, Foo, Bar>>())); | ||||
} | } | ||||
/* | /* | ||||
* Test invoke | * Test invoke | ||||
*/ | */ | ||||
TEST(Tmeta_invoke, Invoke) { | |||||
TEST(Tmeta, Invoke) { | |||||
using Q = quote<MfunBin>; | using Q = quote<MfunBin>; | ||||
using Qi = quote_i<int, MfunBin_i>; | using Qi = quote_i<int, MfunBin_i>; | ||||
using Q1 = quote<MfunUn1>; | using Q1 = quote<MfunUn1>; | ||||
@@ -232,7 +233,7 @@ namespace test_meta { | |||||
EXPECT_EQ (true, empty<l3>()); | EXPECT_EQ (true, empty<l3>()); | ||||
// pass typelist to an invocable | // pass typelist to an invocable | ||||
EXPECT_EQ (true, (std::is_same<type_< | |||||
EXPECT_EQ (true, (std::is_same<eval< | |||||
apply<quote<MfunBin>, typelist<int, long>> | apply<quote<MfunBin>, typelist<int, long>> | ||||
>, | >, | ||||
MfunBin<int, long> | MfunBin<int, long> | ||||
@@ -327,11 +328,11 @@ namespace test_meta { | |||||
using l3 = typelist <long, float>; | using l3 = typelist <long, float>; | ||||
using empty = typelist<>; | using empty = typelist<>; | ||||
EXPECT_EQ(true, (std::is_same<index_t_<1>, find_if<l1, same_as<char>>>())); | |||||
EXPECT_EQ(true, (std::is_same<index_<1>, find_if<l1, same_as<char>>>())); | |||||
EXPECT_EQ(true, (std::is_same<Npos, find_if<empty, same_as<char>>>())); | EXPECT_EQ(true, (std::is_same<Npos, find_if<empty, same_as<char>>>())); | ||||
EXPECT_EQ(true, (std::is_same<Npos, find_if<l1, same_as<double>>>())); | EXPECT_EQ(true, (std::is_same<Npos, find_if<l1, same_as<double>>>())); | ||||
EXPECT_EQ(true, (std::is_same<index_t_<2>, find<l1, long>>())); | |||||
EXPECT_EQ(true, (std::is_same<index_<2>, find<l1, long>>())); | |||||
EXPECT_EQ(true, (std::is_same<l2, seek_if<l1, same_as<char>>>())); | EXPECT_EQ(true, (std::is_same<l2, seek_if<l1, same_as<char>>>())); | ||||
EXPECT_EQ(true, (std::is_same<empty, seek_if<empty, same_as<char>>>())); | EXPECT_EQ(true, (std::is_same<empty, seek_if<empty, same_as<char>>>())); | ||||
@@ -344,12 +345,12 @@ namespace test_meta { | |||||
using list = typelist<int, void*, char, int, long*, char, int, short>; | using list = typelist<int, void*, char, int, long*, char, int, short>; | ||||
using empty = typelist<>; | using empty = typelist<>; | ||||
EXPECT_EQ (true, (std::is_same<size_t_<3>, count_if<list, same_as<int>>>())); | |||||
EXPECT_EQ (true, (std::is_same<size_t_<2>, count_if<list, same_as<char>>>())); | |||||
EXPECT_EQ (true, (std::is_same<size_t_<0>, count_if<list, same_as<double>>>())); | |||||
EXPECT_EQ (true, (std::is_same<size_t_<0>, count_if<empty, int>>())); | |||||
EXPECT_EQ (true, (std::is_same<size_<3>, count_if<list, same_as<int>>>())); | |||||
EXPECT_EQ (true, (std::is_same<size_<2>, count_if<list, same_as<char>>>())); | |||||
EXPECT_EQ (true, (std::is_same<size_<0>, count_if<list, same_as<double>>>())); | |||||
EXPECT_EQ (true, (std::is_same<size_<0>, count_if<empty, int>>())); | |||||
EXPECT_EQ (true, (std::is_same<size_t_<1>, count<list, void*>>())); | |||||
EXPECT_EQ (true, (std::is_same<size_<1>, count<list, void*>>())); | |||||
} | } | ||||
TEST(Tmeta_typelist, Filter) { | TEST(Tmeta_typelist, Filter) { | ||||
@@ -48,7 +48,7 @@ namespace test_1w { | |||||
}; | }; | ||||
TEST_F(Test_1w_impl, TestConcept) { | TEST_F(Test_1w_impl, TestConcept) { | ||||
EXPECT_EQ(_1Wire_i<OW>, true); | |||||
// EXPECT_EQ(_1Wire_i<OW>, true); | |||||
} | } | ||||
TEST_F(Test_1w_impl, TestConstruction) { | TEST_F(Test_1w_impl, TestConstruction) { | ||||
@@ -32,12 +32,15 @@ namespace test_i2c { | |||||
// implementer class stub | // implementer class stub | ||||
class I2C : public i2c_bb_i<I2C> { | class I2C : public i2c_bb_i<I2C> { | ||||
friend i2c_bb_i<I2C>; | friend i2c_bb_i<I2C>; | ||||
void SCL (bool x) { } // imaginary SCL pin functionality | |||||
void SCL (bool x) { (void)x; } // imaginary SCL pin functionality | |||||
bool SDA (SDAMode mode, bool x) { | bool SDA (SDAMode mode, bool x) { | ||||
(void)mode; | |||||
(void)x; | |||||
// always read 0 back (which means always ACK) | // always read 0 back (which means always ACK) | ||||
return 0; | return 0; | ||||
} | } | ||||
void delay (uint32_t u) { | void delay (uint32_t u) { | ||||
(void)u; | |||||
// Pseudo-delay | // Pseudo-delay | ||||
for (int i =0 ; i<10 ; ++i) | for (int i =0 ; i<10 ; ++i) | ||||
; | ; | ||||
@@ -52,7 +55,7 @@ namespace test_i2c { | |||||
TEST(Test_i2c_impl, TestConcept) { | TEST(Test_i2c_impl, TestConcept) { | ||||
I2C i2c {}; | I2C i2c {}; | ||||
EXPECT_EQ(I2c_i<I2C>, true); | |||||
// EXPECT_EQ(I2c_i<I2C>, true); | |||||
} | } | ||||
TEST(Test_i2c_impl, TestConstruction) { | TEST(Test_i2c_impl, TestConstruction) { | ||||
@@ -33,10 +33,10 @@ namespace test_spi { | |||||
// implementer class stub | // implementer class stub | ||||
class SPI : public spi_bb_i<SPI, spi::cpol::LOW, spi::cpha::LOW> { | class SPI : public spi_bb_i<SPI, spi::cpol::LOW, spi::cpha::LOW> { | ||||
friend spi_bb_i<SPI, spi::cpol::LOW, spi::cpha::LOW>; | friend spi_bb_i<SPI, spi::cpol::LOW, spi::cpha::LOW>; | ||||
void MOSI (bool st) { } // Imaginary pin functionality | |||||
bool MISO () { return true; } // All reads become 0xFF | |||||
void SCLK (bool st) { } // Imaginary pin functionality | |||||
void delay (uint32_t nsec) { }// Imaginary delay functionality | |||||
void MOSI (bool st) { (void)st; } // Imaginary pin functionality | |||||
bool MISO () { return true; } // All reads become 0xFF | |||||
void SCLK (bool st) { (void)st; } // Imaginary pin functionality | |||||
void delay (uint32_t nsec) { (void)nsec; } // Imaginary delay functionality | |||||
public: | public: | ||||
SPI (uint32_t clk =100000) noexcept : // expect 100000 default constructed clock | SPI (uint32_t clk =100000) noexcept : // expect 100000 default constructed clock | ||||
@@ -53,7 +53,7 @@ namespace test_spi { | |||||
}; | }; | ||||
TEST_F(Test_spi_impl, TestConcept) { | TEST_F(Test_spi_impl, TestConcept) { | ||||
EXPECT_EQ(Spi_i<SPI>, true); | |||||
// EXPECT_EQ(Spi_i<SPI>, true); | |||||
} | } | ||||
TEST_F(Test_spi_impl, TestConstruction) { | TEST_F(Test_spi_impl, TestConstruction) { | ||||