Сохранение значения указателя на специализированную функцию шаблона - PullRequest
0 голосов
/ 03 сентября 2018

Я хотел бы использовать какое-то сопоставимое представление типа, которое не является прямым, как 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;
}
  1. Хорошо ли хранится числовое значение указателя на специализированную функцию шаблона? Он не будет нигде называться.
  2. Будет ли оно иметь одинаковое значение в разных файлах .cpp для одной и той же специализации?
  3. Будет ли оно иметь одинаковое значение между динамически связанными библиотеками - возможно, нет?
...