1
-
1
+ #include " absl/base/config.h"
2
+ #include " absl/log/log.h"
2
3
#include " s2/s2debug.h"
3
4
#include < Rcpp.h>
4
5
using namespace Rcpp ;
@@ -12,3 +13,36 @@ void cpp_s2_init() {
12
13
// if there is another way to do so (e.g., constructing S2Loop and S2Polygon objects).
13
14
absl::SetFlag (&FLAGS_s2debug, false );
14
15
}
16
+
17
+ // Work around bug linking to gcc-built abseil-cpp from clang-built s2
18
+ // https://github.com/r-spatial/s2/issues/271
19
+ // https://github.com/abseil/abseil-cpp/issues/1747#issuecomment-2325811064
20
+ namespace absl {
21
+
22
+ ABSL_NAMESPACE_BEGIN
23
+
24
+ namespace log_internal {
25
+
26
+ template LogMessage& LogMessage::operator <<(const char & v);
27
+ template LogMessage& LogMessage::operator <<(const signed char & v);
28
+ template LogMessage& LogMessage::operator <<(const unsigned char & v);
29
+ template LogMessage& LogMessage::operator <<(const short & v); // NOLINT
30
+ template LogMessage& LogMessage::operator <<(const unsigned short & v); // NOLINT
31
+ template LogMessage& LogMessage::operator <<(const int & v);
32
+ template LogMessage& LogMessage::operator <<(const unsigned int & v);
33
+ template LogMessage& LogMessage::operator <<(const long & v); // NOLINT
34
+ template LogMessage& LogMessage::operator <<(const unsigned long & v); // NOLINT
35
+ template LogMessage& LogMessage::operator <<(const long long & v); // NOLINT
36
+ template LogMessage& LogMessage::operator <<(
37
+ const unsigned long long & v); // NOLINT
38
+ template LogMessage& LogMessage::operator <<(void * const & v);
39
+ template LogMessage& LogMessage::operator <<(const void * const & v);
40
+ template LogMessage& LogMessage::operator <<(const float & v);
41
+ template LogMessage& LogMessage::operator <<(const double & v);
42
+ template LogMessage& LogMessage::operator <<(const bool & v);
43
+
44
+ } // namespace log_internal
45
+
46
+ ABSL_NAMESPACE_END
47
+
48
+ } // namespace absl
0 commit comments