1
0
Fork 0
mirror of https://github.com/bolero-MURAKAMI/Sprout synced 2025-08-03 12:49:50 +00:00

fix for VC++11

This commit is contained in:
bolero-MURAKAMI 2012-12-17 20:10:17 +09:00
parent d5c61e65ca
commit f673db1451
18 changed files with 382 additions and 164 deletions

View file

@ -28,10 +28,17 @@ namespace sprout_generator_detail {
static std::true_type test(int);
static std::false_type test(...);
};
#if defined(_MSC_VER)
template<typename T, typename Base_ = decltype(sprout_generator_detail::has_adl_generated_value_test<T>::test(0))>
struct has_adl_generated_value
: public Base_
{};
#else
template<typename T>
struct has_adl_generated_value
: public decltype(sprout_generator_detail::has_adl_generated_value_test<T>::test(0))
{};
#endif
template<typename T>
struct has_mem_generated_value_test {
@ -43,10 +50,17 @@ namespace sprout_generator_detail {
static std::true_type test(int);
static std::false_type test(...);
};
#if defined(_MSC_VER)
template<typename T, typename Base_ = decltype(sprout_generator_detail::has_mem_generated_value_test<T>::test(0))>
struct has_mem_generated_value
: public Base_
{};
#else
template<typename T>
struct has_mem_generated_value
: public decltype(sprout_generator_detail::has_mem_generated_value_test<T>::test(0))
{};
#endif
template<typename T>
struct has_get_generated_value_test {
@ -58,10 +72,17 @@ namespace sprout_generator_detail {
static std::true_type test(int);
static std::false_type test(...);
};
#if defined(_MSC_VER)
template<typename T, typename Base_ = decltype(sprout_generator_detail::has_get_generated_value_test<T>::test(0))>
struct has_get_generated_value
: public Base_
{};
#else
template<typename T>
struct has_get_generated_value
: public decltype(sprout_generator_detail::has_get_generated_value_test<T>::test(0))
{};
#endif
template<typename T, typename Enable = void>
struct select_adl_generated_value;