mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-22 13:15:12 +00:00
Use decltype to deduce return type of PyThread_create_key
This commit is contained in:
parent
8965644536
commit
20ee935203
@ -81,7 +81,7 @@ if(MSVC)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
|
||||
endif()
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wconversion")
|
||||
endif()
|
||||
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
double my_func(int x, float y, double z) {
|
||||
std::cout << "my_func(x:int=" << x << ", y:float=" << y << ", z:float=" << z << ")" << std::endl;
|
||||
return x*y*z;
|
||||
return (float) x*y*z;
|
||||
}
|
||||
|
||||
std::complex<double> my_func3(std::complex<double> c) {
|
||||
|
@ -38,7 +38,7 @@ void test_function2(EMyEnumeration k) {
|
||||
|
||||
float test_function3(int i) {
|
||||
std::cout << "test_function(" << i << ")" << std::endl;
|
||||
return i / 2.f;
|
||||
return (float) i / 2.f;
|
||||
}
|
||||
|
||||
py::bytes return_bytes() {
|
||||
|
@ -262,7 +262,7 @@ struct internals {
|
||||
std::unordered_map<const void *, void*> registered_instances; // void * -> PyObject*
|
||||
std::unordered_set<std::pair<const PyObject *, const char *>, overload_hash> inactive_overload_cache;
|
||||
#if defined(WITH_THREAD)
|
||||
long tstate = 0;
|
||||
decltype(PyThread_create_key()) tstate = 0; // Usually an int but a long on Cygwin64 with Python 3.x
|
||||
PyInterpreterState *istate = nullptr;
|
||||
#endif
|
||||
};
|
||||
|
@ -1115,7 +1115,7 @@ public:
|
||||
gil_scoped_release(bool disassoc = false) : disassoc(disassoc) {
|
||||
tstate = PyEval_SaveThread();
|
||||
if (disassoc) {
|
||||
int key = detail::get_internals().tstate;
|
||||
auto key = detail::get_internals().tstate;
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
PyThread_delete_key_value(key);
|
||||
#else
|
||||
@ -1128,7 +1128,7 @@ public:
|
||||
return;
|
||||
PyEval_RestoreThread(tstate);
|
||||
if (disassoc) {
|
||||
int key = detail::get_internals().tstate;
|
||||
auto key = detail::get_internals().tstate;
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
PyThread_delete_key_value(key);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user