__ FILE__ 宏在预编译时会替换成当前的源文件名
__LINE __ 宏在预编译时会替换成当前的行号
__FUNCTION __ 宏在预编译时会替换成当前的函数名称
build.sh
# !/bin/bash
#echo $(cd `dirname $0`;pwd)
dirpath=$(pwd)
echo ${dirpath}
if [ -d "${dirpath}/build" ] ; then
rm -rf build
echo "this has a ${dirpath}/build"
mkdir build
else
mkdir build
fi
cd build
cmake ${dirpath}/code/
make -j2
CMakeLists.txt
cmake_minimum_required (VERSION 3.12.3)
project (procject)
#set(CMAKE_C_COMPILER "gcc-8.3.0")
#set(CMAKE_CXX_COMPILER "g++-8.3.0")
set(CMAKE_CXX_FLAGS " -O0 -g3 -Wall -fmessage-length=0 -std=c++11" )
include_directories(PUBLIC_HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/include/
)
set(SRCE_LIST
${CMAKE_CURRENT_SOURCE_DIR}/source/Base_on.cpp
)
file(GLOB SRC_LIST
${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
)
add_executable(procject ${PUBLIC_HEADERS} ${SRC_LIST})
Util.h
#define VIR_ROLE(role) virtual role& get##role() = 0;
#define ROLE(role) get##role()
#define IMP_ROLE(role) role& get##role() \
{ \
return static_cast<role &>(*this); \
} \