|
|
1.1 ! root 1: /* ! 2: * Copyright (C) 2015 Y.Sugahara (moveccr) ! 3: * Copyright (C) 2021 Tetsuya Isaki ! 4: * ! 5: * Redistribution and use in source and binary forms, with or without ! 6: * modification, are permitted provided that the following conditions ! 7: * are met: ! 8: * 1. Redistributions of source code must retain the above copyright ! 9: * notice, this list of conditions and the following disclaimer. ! 10: * 2. Redistributions in binary form must reproduce the above copyright ! 11: * notice, this list of conditions and the following disclaimer in the ! 12: * documentation and/or other materials provided with the distribution. ! 13: * ! 14: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ! 15: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ! 16: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ! 17: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ! 18: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ! 19: * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ! 20: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED ! 21: * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ! 22: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 23: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 24: * SUCH DAMAGE. ! 25: */ ! 26: ! 27: #include "header.h" ! 28: ! 29: // __PRETTY_FUNCTION__ と __FUNCTION__ からクラス名::関数名だけを得る。 ! 30: std::string ! 31: get_classfunc_name(const char *pretty_, const char *func_) ! 32: { ! 33: std::string func(func_); ! 34: std::string pretty(pretty_); ! 35: ! 36: auto namepos = pretty.find(func); ! 37: auto begin = pretty.find_last_of(" *", namepos) + 1; ! 38: auto end = pretty.find("(", namepos + func.size()); ! 39: auto classfunc = pretty.substr(begin, end - begin); ! 40: ! 41: return std::string(classfunc); ! 42: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.