LCOV - code coverage report
Current view: top level - src/Def - TypeTraits.hpp (source / functions) Coverage Total Hit
Test: 73449d9b107c772cf65493691543348214e5d5eb Lines: 0.0 % 1 0
Test Date: 2026-06-06 17:44:35 Functions: 0.0 % 2 0
Legend: Lines:     hit not hit

            Line data    Source code
       1              : #pragma once
       2              : 
       3              : #include <Settings/NamespaceSettings.hpp>
       4              : 
       5              : #include <AH/STL/type_traits>
       6              : #include <AH/STL/utility>
       7              : 
       8              : BEGIN_CS_NAMESPACE
       9              : 
      10              : template <class...>
      11              : using void_t = void;
      12              : 
      13              : template <class, class = void>
      14              : struct has_method_begin : std::false_type {};
      15              : 
      16              : template <class T>
      17              : struct has_method_begin<T, void_t<decltype(std::declval<T>().begin())>>
      18              :     : std::true_type {};
      19              : 
      20              : /// Calls the `begin()` method of `t` if that method exists.
      21              : template <class T>
      22              : typename std::enable_if<has_method_begin<T>::value>::type
      23              : begin_if_possible(T &t) {
      24              :     t.begin();
      25              : }
      26              : 
      27              : template <class T>
      28              : typename std::enable_if<!has_method_begin<T>::value>::type
      29            0 : begin_if_possible(T &) {}
      30              : 
      31              : END_CS_NAMESPACE
        

Generated by: LCOV version 2.4-beta