Annotation of nono/lib/classname.cpp, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.