Eliminate use of size_t in stl related wrappings

This commit is contained in:
Jason Turner
2009-12-01 02:56:02 +00:00
parent c418644a5b
commit e2a2c14c0d
2 changed files with 19 additions and 15 deletions

View File

@@ -158,7 +158,7 @@ namespace chaiscript
template<typename ContainerType> template<typename ContainerType>
ModulePtr container_type(const std::string &/*type*/, ModulePtr m = ModulePtr(new Module())) ModulePtr container_type(const std::string &/*type*/, ModulePtr m = ModulePtr(new Module()))
{ {
m->add(fun<size_t (ContainerType::*)() const>(&ContainerType::size), "size"); m->add(fun(boost::function<int (const ContainerType *)>(&ContainerType::size)), "size");
m->add(fun<bool (ContainerType::*)() const>(&ContainerType::empty), "empty"); m->add(fun<bool (ContainerType::*)() const>(&ContainerType::empty), "empty");
m->add(fun<void (ContainerType::*)()>(&ContainerType::clear), "clear"); m->add(fun<void (ContainerType::*)()>(&ContainerType::clear), "clear");
@@ -319,7 +319,8 @@ namespace chaiscript
template<typename ContainerType> template<typename ContainerType>
ModulePtr unique_associative_container_type(const std::string &/*type*/, ModulePtr m = ModulePtr(new Module())) ModulePtr unique_associative_container_type(const std::string &/*type*/, ModulePtr m = ModulePtr(new Module()))
{ {
m->add(fun<size_t (ContainerType::*)(const typename ContainerType::key_type &) const>(&ContainerType::count), "count"); // m->add(fun<size_t (ContainerType::*)(const typename ContainerType::key_type &) const>(&ContainerType::count), "count");
m->add(fun(boost::function<int (const ContainerType *, const typename ContainerType::key_type &)>(&ContainerType::count)), "count");
return m; return m;
} }
@@ -412,13 +413,16 @@ namespace chaiscript
} }
m->add(fun(&String::push_back), push_back_name); m->add(fun(&String::push_back), push_back_name);
typedef typename String::size_type (String::*find_func)(const String &, typename String::size_type) const; typedef typename String::size_type (String::*find_func_ptr)(const String &, typename String::size_type) const;
m->add(fun(static_cast<find_func>(&String::find)), "find");
m->add(fun(static_cast<find_func>(&String::rfind)), "rfind"); typedef boost::function<int (const String *, const String &, int)> find_func;
m->add(fun(static_cast<find_func>(&String::find_first_of)), "find_first_of");
m->add(fun(static_cast<find_func>(&String::find_last_of)), "find_last_of"); m->add(fun(find_func(static_cast<find_func_ptr>(&String::find))), "find");
m->add(fun(static_cast<find_func>(&String::find_first_not_of)), "find_first_not_of"); m->add(fun(find_func(static_cast<find_func_ptr>(&String::rfind))), "rfind");
m->add(fun(static_cast<find_func>(&String::find_last_not_of)), "find_last_not_of"); m->add(fun(find_func(static_cast<find_func_ptr>(&String::find_first_of))), "find_first_of");
m->add(fun(find_func(static_cast<find_func_ptr>(&String::find_last_of))), "find_last_of");
m->add(fun(find_func(static_cast<find_func_ptr>(&String::find_first_not_of))), "find_first_not_of");
m->add(fun(find_func(static_cast<find_func_ptr>(&String::find_last_not_of))), "find_last_not_of");
return m; return m;
} }

View File

@@ -282,27 +282,27 @@ def zip(x, y) { \n\
}\n\ }\n\
# Returns the position of the second value string in the first value string\n\ # Returns the position of the second value string in the first value string\n\
def string::find(substr) : is_type(substr, "string") { \n\ def string::find(substr) : is_type(substr, "string") { \n\
int(find(this, substr, size_t(0))); \n\ int(find(this, substr, 0)); \n\
} \n\ } \n\
# Returns the position of last match of the second value string in the first value string\n\ # Returns the position of last match of the second value string in the first value string\n\
def string::rfind(substr) : is_type(substr, "string") { \n\ def string::rfind(substr) : is_type(substr, "string") { \n\
int(rfind(this, substr, size_t(-1))); \n\ int(rfind(this, substr, -1)); \n\
} \n\ } \n\
# Returns the position of the first match of elements in the second value string in the first value string\n\ # Returns the position of the first match of elements in the second value string in the first value string\n\
def string::find_first_of(list) : is_type(list, "string") { \n\ def string::find_first_of(list) : is_type(list, "string") { \n\
int(find_first_of(this, list, size_t(0))); \n\ int(find_first_of(this, list, 0)); \n\
} \n\ } \n\
# Returns the position of the last match of elements in the second value string in the first value string\n\ # Returns the position of the last match of elements in the second value string in the first value string\n\
def string::find_last_of(list) : is_type(list, "string") { \n\ def string::find_last_of(list) : is_type(list, "string") { \n\
int(find_last_of(this, list, size_t(-1))); \n\ int(find_last_of(this, list, -1)); \n\
} \n\ } \n\
# Returns the position of the first non-matching element in the second value string in the first value string\n\ # Returns the position of the first non-matching element in the second value string in the first value string\n\
def string::find_first_not_of(list) : is_type(list, "string") { \n\ def string::find_first_not_of(list) : is_type(list, "string") { \n\
int(find_first_not_of(this, list, size_t(0))); \n\ int(find_first_not_of(this, list, 0)); \n\
} \n\ } \n\
# Returns the position of the last non-matching element in the second value string in the first value string\n\ # Returns the position of the last non-matching element in the second value string in the first value string\n\
def string::find_last_not_of(list) : is_type(list, "string") { \n\ def string::find_last_not_of(list) : is_type(list, "string") { \n\
int(find_last_not_of(this, list, size_t(-1))); \n\ int(find_last_not_of(this, list, -1)); \n\
} \n\ } \n\
def string::ltrim() { \n\ def string::ltrim() { \n\
drop_while(this, fun(x) { x == ' ' || x == '\t' }); \n\ drop_while(this, fun(x) { x == ' ' || x == '\t' }); \n\