F
Frank Bergemann
i don't manage to get this compiled:
template <typename ForType>
struct CompareOperator {
enum Id {equal = 0, less = 1 };
typedef std::binary_function<ForType, ForType, bool> fn_type;
static std::equal_to<ForType> m_equal_to;
static std::less<ForType> m_less;
static fn_type lookup[];
};
template <typename ForType>
std::equal_to<ForType> CompareOperator<ForType>::m_equal_to;
template <typename ForType>
std::less<ForType> CompareOperator<ForType>::m_less;
template <typename ForType>
typename CompareOperator<ForType>::fn_type
CompareOperator<ForType>::lookup[]
= { m_equal_to, m_less } ;
It fails for using - e.g. here:
switch (this->m_type) {
case IDBMint32_c:
return CompareOperator<IDBMint32_t>::lookup[ComparatorId]
(m_data.int_32_val, cd.m_data.int_32_val);
template <typename ForType>
struct CompareOperator {
enum Id {equal = 0, less = 1 };
typedef std::binary_function<ForType, ForType, bool> fn_type;
static std::equal_to<ForType> m_equal_to;
static std::less<ForType> m_less;
static fn_type lookup[];
};
template <typename ForType>
std::equal_to<ForType> CompareOperator<ForType>::m_equal_to;
template <typename ForType>
std::less<ForType> CompareOperator<ForType>::m_less;
template <typename ForType>
typename CompareOperator<ForType>::fn_type
CompareOperator<ForType>::lookup[]
= { m_equal_to, m_less } ;
It fails for using - e.g. here:
switch (this->m_type) {
case IDBMint32_c:
return CompareOperator<IDBMint32_t>::lookup[ComparatorId]
(m_data.int_32_val, cd.m_data.int_32_val);