Limit concat to non pointer types to avoid hard to track problems
This commit is contained in:
parent
d4efc432d2
commit
ba113bb408
|
@ -69,6 +69,23 @@ namespace JabyEngine {
|
|||
struct conjunction<B1, Bn...> : conditional<bool(B1::value), conjunction<Bn...>, B1>::type {
|
||||
};
|
||||
|
||||
// #############################################
|
||||
|
||||
template<class T>
|
||||
struct is_pointer : false_type {};
|
||||
|
||||
template<class T>
|
||||
struct is_pointer<T*> : true_type {};
|
||||
|
||||
template<class T>
|
||||
struct is_pointer<T* const> : true_type {};
|
||||
|
||||
template<class T>
|
||||
struct is_pointer<T* volatile> : true_type {};
|
||||
|
||||
template<class T>
|
||||
struct is_pointer<T* const volatile> : true_type {};
|
||||
|
||||
// #############################################
|
||||
|
||||
template<typename T, typename... Ts>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#pragma once
|
||||
#include "../../Auxiliary/bits.hpp"
|
||||
#include "../../Auxiliary/type_traits.hpp"
|
||||
|
||||
namespace JabyEngine {
|
||||
namespace GPU {
|
||||
|
@ -37,13 +38,13 @@ namespace JabyEngine {
|
|||
}
|
||||
|
||||
template<typename T>
|
||||
T& concat(T& obj) {
|
||||
enable_if<!is_pointer<T>::value, T&>::type concat(T& obj) {
|
||||
Link::set_adr(&obj);
|
||||
return obj;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
const T& concat(const T& obj) {
|
||||
enable_if<!is_pointer<T>::value, const T&>::type concat(const T& obj) {
|
||||
return concat(const_cast<T&>(obj));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue