mirror of
https://github.com/pybind/pybind11.git
synced 2025-01-19 09:25:51 +00:00
tabs->spaces
This commit is contained in:
parent
9883ec01d7
commit
08927e9809
@ -406,14 +406,14 @@ protected:
|
|||||||
|
|
||||||
template <> class type_caster<std::wstring> {
|
template <> class type_caster<std::wstring> {
|
||||||
public:
|
public:
|
||||||
bool load(handle src, bool) {
|
bool load(handle src, bool) {
|
||||||
object temp;
|
object temp;
|
||||||
handle load_src = src;
|
handle load_src = src;
|
||||||
if (!PyUnicode_Check(load_src.ptr())) {
|
if (!PyUnicode_Check(load_src.ptr())) {
|
||||||
temp = object(PyUnicode_FromObject(load_src.ptr()), false);
|
temp = object(PyUnicode_FromObject(load_src.ptr()), false);
|
||||||
if (!temp) { PyErr_Clear(); return false; }
|
if (!temp) { PyErr_Clear(); return false; }
|
||||||
load_src = temp;
|
load_src = temp;
|
||||||
}
|
}
|
||||||
wchar_t *buffer = nullptr;
|
wchar_t *buffer = nullptr;
|
||||||
ssize_t length = -1;
|
ssize_t length = -1;
|
||||||
#if PY_MAJOR_VERSION >= 3
|
#if PY_MAJOR_VERSION >= 3
|
||||||
@ -430,24 +430,24 @@ public:
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!buffer) { PyErr_Clear(); return false; }
|
if (!buffer) { PyErr_Clear(); return false; }
|
||||||
value = std::wstring(buffer, length);
|
value = std::wstring(buffer, length);
|
||||||
success = true;
|
success = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static handle cast(const std::wstring &src, return_value_policy /* policy */, handle /* parent */) {
|
static handle cast(const std::wstring &src, return_value_policy /* policy */, handle /* parent */) {
|
||||||
return PyUnicode_FromWideChar(src.c_str(), src.length());
|
return PyUnicode_FromWideChar(src.c_str(), src.length());
|
||||||
}
|
}
|
||||||
|
|
||||||
PYBIND11_TYPE_CASTER(std::wstring, _(PYBIND11_STRING_NAME));
|
PYBIND11_TYPE_CASTER(std::wstring, _(PYBIND11_STRING_NAME));
|
||||||
protected:
|
protected:
|
||||||
bool success = false;
|
bool success = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <> class type_caster<char> : public type_caster<std::string> {
|
template <> class type_caster<char> : public type_caster<std::string> {
|
||||||
public:
|
public:
|
||||||
bool load(handle src, bool convert) {
|
bool load(handle src, bool convert) {
|
||||||
if (src.ptr() == Py_None) { return true; }
|
if (src.ptr() == Py_None) { return true; }
|
||||||
return type_caster<std::string>::load(src, convert);
|
return type_caster<std::string>::load(src, convert);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -462,32 +462,32 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
operator char*() { return success ? (char *) value.c_str() : nullptr; }
|
operator char*() { return success ? (char *) value.c_str() : nullptr; }
|
||||||
operator char&() { return value[0]; }
|
operator char&() { return value[0]; }
|
||||||
|
|
||||||
static PYBIND11_DESCR name() { return type_descr(_(PYBIND11_STRING_NAME)); }
|
static PYBIND11_DESCR name() { return type_descr(_(PYBIND11_STRING_NAME)); }
|
||||||
};
|
};
|
||||||
|
|
||||||
template <> class type_caster<wchar_t> : public type_caster<std::wstring> {
|
template <> class type_caster<wchar_t> : public type_caster<std::wstring> {
|
||||||
public:
|
public:
|
||||||
bool load(handle src, bool convert) {
|
bool load(handle src, bool convert) {
|
||||||
if (src.ptr() == Py_None) { return true; }
|
if (src.ptr() == Py_None) { return true; }
|
||||||
return type_caster<std::wstring>::load(src, convert);
|
return type_caster<std::wstring>::load(src, convert);
|
||||||
}
|
}
|
||||||
|
|
||||||
static handle cast(const wchar_t *src, return_value_policy /* policy */, handle /* parent */) {
|
static handle cast(const wchar_t *src, return_value_policy /* policy */, handle /* parent */) {
|
||||||
if (src == nullptr) return handle(Py_None).inc_ref();
|
if (src == nullptr) return handle(Py_None).inc_ref();
|
||||||
return PyUnicode_FromWideChar(src, wcslen(src));
|
return PyUnicode_FromWideChar(src, wcslen(src));
|
||||||
}
|
}
|
||||||
|
|
||||||
static handle cast(wchar_t src, return_value_policy /* policy */, handle /* parent */) {
|
static handle cast(wchar_t src, return_value_policy /* policy */, handle /* parent */) {
|
||||||
wchar_t wstr[2] = { src, L'\0' };
|
wchar_t wstr[2] = { src, L'\0' };
|
||||||
return PyUnicode_FromWideChar(wstr, 1);
|
return PyUnicode_FromWideChar(wstr, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
operator wchar_t*() { return success ? (wchar_t *) value.c_str() : nullptr; }
|
operator wchar_t*() { return success ? (wchar_t *) value.c_str() : nullptr; }
|
||||||
operator wchar_t&() { return value[0]; }
|
operator wchar_t&() { return value[0]; }
|
||||||
|
|
||||||
static PYBIND11_DESCR name() { return type_descr(_(PYBIND11_STRING_NAME)); }
|
static PYBIND11_DESCR name() { return type_descr(_(PYBIND11_STRING_NAME)); }
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T1, typename T2> class type_caster<std::pair<T1, T2>> {
|
template <typename T1, typename T2> class type_caster<std::pair<T1, T2>> {
|
||||||
|
Loading…
Reference in New Issue
Block a user