Сохранение значения указателя на специализированную функцию шаблона
Я хотел бы использовать некоторое сопоставимое представление типа, которое не является прямым, как std::is_same<> и не использует RTTI. __PRETTY_FUNCTION__
макрос дает одинаковую строку для 2 разных классов с одинаковыми именами, определенными в разных файлах.cpp в анонимных пространствах имен, и сравнение строк выполняется медленно.
Давайте рассмотрим такой кусок кода:
template<typename T>
void func() {}
int main() {
std::cout << reinterpret_cast<size_t>(&func<int>) << std::endl;
std::cout << reinterpret_cast<size_t>(&func<float>) << std::endl;
}
- Хранение числового значения указателя на специализированную функцию шаблона хорошо определенное поведение? Это не будет называться нигде.
- Будет ли оно иметь одинаковое значение в разных.cpp файлах для одной и той же специализации?
- Будет ли оно иметь такое же значение между динамически связанными библиотеками - возможно, нет?