<commit_before>/** ==========================================================================
 * 2013 This is PUBLIC DOMAIN to use at your own risk and comes
 * with no warranties. This code is yours to share, use and modify with no
 * strings attached and no restrictions or obligations.
 * 
 * These type traits will be in C++17.
 * 
 * PUBLIC DOMAIN and NOT under copywrite protection.
 *
 * ********************************************* */

#ifndef STD2_TYPE_TRAITS_HPP_
#define STD2_TYPE_TRAITS_HPP_

#include <type_traits>

namespace std2 {

#if defined(__cplusplus) && (__cplusplus < 201703L)  // < C++17 so should define these.
   template<typename T>
   constexpr bool is_nothrow_move_constructible_v = std::is_nothrow_move_constructible<T>::value;

   template<typename T>
   constexpr bool is_nothrow_move_assignable_v = std::is_nothrow_move_assignable<T>::value;
#else  // C++17 already has these..
   template<typename T>
   inline constexpr bool is_nothrow_move_constructible_v = std::is_nothrow_move_constructible_v<T>;

   template<typename T >
   inline constexpr bool is_nothrow_move_assignable_v = std::is_nothrow_move_assignable_v<T>;
#endif
}

#endif<commit_msg>Add missed closing namespace comment<commit_after>/** ==========================================================================
 * 2013 This is PUBLIC DOMAIN to use at your own risk and comes
 * with no warranties. This code is yours to share, use and modify with no
 * strings attached and no restrictions or obligations.
 * 
 * These type traits will be in C++17.
 * 
 * PUBLIC DOMAIN and NOT under copywrite protection.
 *
 * ********************************************* */

#ifndef STD2_TYPE_TRAITS_HPP_
#define STD2_TYPE_TRAITS_HPP_

#include <type_traits>

namespace std2 {

#if defined(__cplusplus) && (__cplusplus < 201703L)  // < C++17 so should define these.
   template<typename T>
   constexpr bool is_nothrow_move_constructible_v = std::is_nothrow_move_constructible<T>::value;

   template<typename T>
   constexpr bool is_nothrow_move_assignable_v = std::is_nothrow_move_assignable<T>::value;
#else  // C++17 already has these..
   template<typename T>
   inline constexpr bool is_nothrow_move_constructible_v = std::is_nothrow_move_constructible_v<T>;

   template<typename T >
   inline constexpr bool is_nothrow_move_assignable_v = std::is_nothrow_move_assignable_v<T>;
#endif
}  // namespace std2

#endif
{'fraction_non_alphanumeric': 0.1744186046511628, 'fraction_numerical': 0.016196013289036543, 'mean_word_length': 5.528455284552845, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5183593', 'n_tokens_mistral': 786, 'n_tokens_neox': 723, 'n_words': 203}