sourcelocation.h
来自「这个程序是关于OpenC++的反射植入机制的编译器」· C头文件 代码 · 共 70 行
H
70 行
#ifndef guard_opencxx_SourceLocation_h#define guard_opencxx_SourceLocation_h//@beginlicenses@//@license{contributors}{}@//// Permission to use, copy, distribute and modify this software and its // documentation for any purpose is hereby granted without fee, provided that// the above copyright notice appears in all copies and that both that copyright// notice and this permission notice appear in supporting documentation.// // Other Contributors (see file AUTHORS) make(s) no representations about the suitability of this// software for any purpose. It is provided "as is" without express or implied// warranty.// // Copyright (C) Other Contributors (see file AUTHORS)////@endlicenses@#include <string>#include <cassert>namespace Opencxx{class SourceLocation{private: enum { NONE = -1 };public: SourceLocation() : lineNo_(NONE) { } SourceLocation(const std::string& filename, int lineNo) : filename_(filename) , lineNo_(lineNo) { assert(lineNo_ >= 0); } std::string GetFilename() const { assert(lineNo_ != NONE); return filename_; } int GetLineNo() const { assert(lineNo_ != NONE); return lineNo_; } // conversion to "bool" typedef int (SourceLocation::*UnspecifiedBoolType)() const; operator UnspecifiedBoolType() const { return lineNo_ == NONE ? 0 : &SourceLocation::GetLineNo; }private: std::string filename_; int lineNo_;};}#endif /* ! guard_opencxx_SourceLocation_h */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?