dennis lucero created ARROW-2393:
------------------------------------
Summary: [C++] arrow/status.h does not define ARROW_CHECK needed
for ARROW_CHECK_OK
Key: ARROW-2393
URL: https://issues.apache.org/jira/browse/ARROW-2393
Project: Apache Arrow
Issue Type: Bug
Components: C++
Affects Versions: 0.9.0
Reporter: dennis lucero
test.cpp
{code:c++}
#include <arrow/api.h>
int main(void) {
arrow::Int64Builder i64builder;
std::shared_ptr<arrow::Array> i64array;
ARROW_CHECK_OK(i64builder.Finish(&i64array));
return EXIT_SUCCESS;
}
{code}
Attempt to build:
{code:bash}
$CXX test.cpp -std=c++11 -larrow
{code}
Error:
{code}
test.cpp:6:2: error: use of undeclared identifier 'ARROW_CHECK'
ARROW_CHECK_OK(i64builder.Finish(&i64array)); ^
xxx/include/arrow/status.h:49:27: note: expanded from macro 'ARROW_CHECK_OK'
#define ARROW_CHECK_OK(s) ARROW_CHECK_OK_PREPEND(s, "Bad status") ^
xxx/include/arrow/status.h:44:5: note: expanded from macro
'ARROW_CHECK_OK_PREPEND' ARROW_CHECK(_s.ok()) << (msg) << ": " <<
_s.ToString(); \ ^ 1 error generated.
{code}
I expect that ARROW_* macro are public API, and should work out of the box.
A naive attempt to fix it
{code}
diff --git a/cpp/src/arrow/status.h b/cpp/src/arrow/status.h
index 84f55e41..6da4a773 100644
--- a/cpp/src/arrow/status.h
+++ b/cpp/src/arrow/status.h
@@ -25,6 +25,7 @@
#include "arrow/util/macros.h"
#include "arrow/util/visibility.h"
+#include "arrow/util/logging.h"
// Return the given status if it is not OK.
#define ARROW_RETURN_NOT_OK(s) \
{code}
fails with
{code}
public-api-test.cc:21:2: error: "DCHECK should not be visible from Arrow public
headers."
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)