Target.hpp: Use reinterpret_cast instead of dynamic_cast
CMakeLists.txt: Disable the reinterpret-base-class warning when using Clang Signed-off-by: Username404 <w.iron.zombie@gmail.com>
This commit is contained in:
parent
6afd81f9ba
commit
16eeea2524
|
@ -99,7 +99,7 @@ elseif(${IS_CLANG})
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fwhole-program-vtables")
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fwhole-program-vtables")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option -Wno-unqualified-std-cast-call")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option -Wno-unqualified-std-cast-call -Wno-reinterpret-base-class")
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fstrict-vtable-pointers")
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fstrict-vtable-pointers")
|
||||||
elseif(MSVC)
|
elseif(MSVC)
|
||||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${MINIMAL_MSVC} AND NOT ${IGNORE_MINIMAL_COMPILER_VERSION})
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${MINIMAL_MSVC} AND NOT ${IGNORE_MINIMAL_COMPILER_VERSION})
|
||||||
|
|
|
@ -67,7 +67,7 @@ protected:
|
||||||
}
|
}
|
||||||
typedef function<void (const ParseTree& parsedTree, unsigned int& index)> task;
|
typedef function<void (const ParseTree& parsedTree, unsigned int& index)> task;
|
||||||
#define make_task_base(start, type, captures, function_body) make_pair(type_index(typeid(type)), [captures](const ParseTree& parsedTree, unsigned int& index) { start; function_body })
|
#define make_task_base(start, type, captures, function_body) make_pair(type_index(typeid(type)), [captures](const ParseTree& parsedTree, unsigned int& index) { start; function_body })
|
||||||
#define make_task_base_R(T, C, F) make_task_base(const T& parseComponent = dynamic_cast<T&>(*parsedTree[index]), T, C, F)
|
#define make_task_base_R(T, C, F) make_task_base(const T& parseComponent = reinterpret_cast<T&>(*parsedTree[index]), T, C, F)
|
||||||
#define make_task(T, F) make_task_base_R(T, this, F)
|
#define make_task(T, F) make_task_base_R(T, this, F)
|
||||||
#define make_task_noR(T, F) make_task_base(,T, this, F)
|
#define make_task_noR(T, F) make_task_base(,T, this, F)
|
||||||
#define make_nonlocal_task(T, F) make_task_base_R(T, , F)
|
#define make_nonlocal_task(T, F) make_task_base_R(T, , F)
|
||||||
|
|
Loading…
Reference in New Issue