本文整理汇总了C++中Symbol::cpp_str方法的典型用法代码示例。如果您正苦于以下问题:C++ Symbol::cpp_str方法的具体用法?C++ Symbol::cpp_str怎么用?C++ Symbol::cpp_str使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symbol
的用法示例。
在下文中一共展示了Symbol::cpp_str方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: debug_str
std::string Module::debug_str(STATE) {
Symbol* name = module_name();
if(name->nil_p()) {
return "<anonymous module>";
} else {
return name->cpp_str(state);
}
}
示例2: mirror
Class* Module::mirror(STATE, Object* obj) {
Class* object_class = obj->class_object(state);
Class* mirror = object_class->mirror();
if(!mirror->nil_p()) return mirror;
Class* klass = object_class;
do {
Symbol* name = klass->module_name();
if(!name->nil_p()) {
std::string class_name = name->cpp_str(state);
size_t k = class_name.rfind("::");
if(k != std::string::npos) {
class_name = class_name.substr(k);
}
bool found = false;
Object* obj = G(mirror)->get_const(state, state->symbol(class_name), &found);
if(found) {
if(Class* mirror_class = try_as<Class>(obj)) {
object_class->mirror(state, mirror_class);
return mirror_class;
}
}
}
Module* ancestor = klass->superclass();
klass = 0;
while(!ancestor->nil_p()) {
if((klass = try_as<Class>(ancestor))) break;
ancestor = ancestor->superclass();
}
} while(klass);
return nil<Class>();
}