Cleanup YGValue.h header (#37179)
Summary:
X-link: https://github.com/facebook/react-native/pull/37179
Pull Request resolved: https://github.com/facebook/yoga/pull/1273
1. Simplify nan handling a bit
2. Remove string literal operators which seem dead enough to remove. These are public, so anyone could be using them, but it seems like almost nobody is.
1. FB has no usages of `using namespace facebook::yoga::literals` (exposing the literal operators) outside of Yoga tests.
1. There is only [a single usage](6dfba905ea/SDLTest/UIKit.hpp (L19)
) on GitHub.
Reviewed By: yungsters
Differential Revision: D45419970
fbshipit-source-id: 8121303e5ae66596132a848a711802081728f4fb
This commit is contained in:
committed by
Facebook GitHub Bot
parent
3156cb207f
commit
080d16cabf
@@ -21,29 +21,3 @@ TEST(YGValue, supports_equality) {
|
||||
(YGValue{YGUndefined, YGUnitUndefined}));
|
||||
ASSERT_EQ((YGValue{0, YGUnitAuto}), (YGValue{-1, YGUnitAuto}));
|
||||
}
|
||||
|
||||
using namespace facebook::yoga::literals;
|
||||
|
||||
TEST(YGValue, supports_double_point_literals) {
|
||||
ASSERT_EQ(12.5_pt, (YGValue{12.5, YGUnitPoint}));
|
||||
}
|
||||
|
||||
TEST(YGValue, supports_double_percent_literals) {
|
||||
ASSERT_EQ(12.5_percent, (YGValue{12.5, YGUnitPercent}));
|
||||
}
|
||||
|
||||
TEST(YGValue, supports_integral_point_literals) {
|
||||
ASSERT_EQ(34_pt, (YGValue{34, YGUnitPoint}));
|
||||
}
|
||||
|
||||
TEST(YGValue, supports_integral_percent_literals) {
|
||||
ASSERT_EQ(125_percent, (YGValue{125, YGUnitPercent}));
|
||||
}
|
||||
|
||||
TEST(YGValue, supports_negative_point_literals) {
|
||||
ASSERT_EQ(-34.5_pt, (YGValue{-34.5, YGUnitPoint}));
|
||||
}
|
||||
|
||||
TEST(YGValue, supports_negative_percent_literals) {
|
||||
ASSERT_EQ(-34.5_percent, (YGValue{-34.5, YGUnitPercent}));
|
||||
}
|
||||
|
@@ -7,28 +7,11 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <math.h>
|
||||
#include "YGEnums.h"
|
||||
#include "YGMacros.h"
|
||||
|
||||
#if defined(_MSC_VER) && defined(__clang__)
|
||||
#define COMPILING_WITH_CLANG_ON_WINDOWS
|
||||
#endif
|
||||
#if defined(COMPILING_WITH_CLANG_ON_WINDOWS)
|
||||
#include <limits>
|
||||
constexpr float YGUndefined = std::numeric_limits<float>::quiet_NaN();
|
||||
#else
|
||||
YG_EXTERN_C_BEGIN
|
||||
|
||||
// Not defined in MSVC++
|
||||
#ifndef NAN
|
||||
static const uint32_t __nan = 0x7fc00000;
|
||||
#define NAN (*(const float*) __nan)
|
||||
#endif
|
||||
|
||||
#define YGUndefined NAN
|
||||
#endif
|
||||
|
||||
typedef struct YGValue {
|
||||
float value;
|
||||
YGUnit unit;
|
||||
@@ -38,13 +21,17 @@ YOGA_EXPORT extern const YGValue YGValueAuto;
|
||||
YOGA_EXPORT extern const YGValue YGValueUndefined;
|
||||
YOGA_EXPORT extern const YGValue YGValueZero;
|
||||
|
||||
#if !defined(COMPILING_WITH_CLANG_ON_WINDOWS)
|
||||
YG_EXTERN_C_END
|
||||
#endif
|
||||
#undef COMPILING_WITH_CLANG_ON_WINDOWS
|
||||
|
||||
#ifdef __cplusplus
|
||||
#include <limits>
|
||||
constexpr float YGUndefined = std::numeric_limits<float>::quiet_NaN();
|
||||
#else
|
||||
#include <math.h>
|
||||
#define YGUndefined NAN
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
inline bool operator==(const YGValue& lhs, const YGValue& rhs) {
|
||||
if (lhs.unit != rhs.unit) {
|
||||
return false;
|
||||
@@ -69,27 +56,4 @@ inline bool operator!=(const YGValue& lhs, const YGValue& rhs) {
|
||||
inline YGValue operator-(const YGValue& value) {
|
||||
return {-value.value, value.unit};
|
||||
}
|
||||
|
||||
namespace facebook {
|
||||
namespace yoga {
|
||||
namespace literals {
|
||||
|
||||
inline YGValue operator"" _pt(long double value) {
|
||||
return YGValue{static_cast<float>(value), YGUnitPoint};
|
||||
}
|
||||
inline YGValue operator"" _pt(unsigned long long value) {
|
||||
return operator"" _pt(static_cast<long double>(value));
|
||||
}
|
||||
|
||||
inline YGValue operator"" _percent(long double value) {
|
||||
return YGValue{static_cast<float>(value), YGUnitPercent};
|
||||
}
|
||||
inline YGValue operator"" _percent(unsigned long long value) {
|
||||
return operator"" _percent(static_cast<long double>(value));
|
||||
}
|
||||
|
||||
} // namespace literals
|
||||
} // namespace yoga
|
||||
} // namespace facebook
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user