Size: a a a

2020 May 03

A

Alex in pro.cxx
так и есть
источник

A

Alex in pro.cxx
нашёл ошибку, она выеденного яйца не стоила, а вот диагностические сообщения - *****
В объявлении FieldType ошибок не было, как добиться, чтобы можно было узнать реальный тип - загадка.
источник

v

vehlwn in pro.cxx
Alexander Zaitsev
так там wide_int вроде как нет :(
using integer_t = boost::multiprecision::cpp_int;

А это что?
источник

v

vehlwn in pro.cxx
Alex
что-то вроде структуры, при инстанциировании которой он напишет реальный тип (потому что в ней чего-то не хватает)
template <class T>
void printType() {
 std::cout << boost::typeindex::type_id_with_cvr<T>().pretty_name() << "\n";
}
источник

A

Alex in pro.cxx
не, у меня ж компиляция фэйлится, так бы я просто typeid().name взял. Задача была увидеть конкретный тип в сообщении об ошибке, а не его псевдоним.
источник

A

Alex in pro.cxx
да и отладчик обычно нормально типы показывает
источник

v

vehlwn in pro.cxx
Ты прочитал самое первое сообщение об ошибке или только то, что вывела студия в свою сонсоль?
источник

A

Alex in pro.cxx
прочитал весь текстовый Output компилятора
источник

v

vehlwn in pro.cxx
Alex
прочитал весь текстовый Output компилятора
Вот и ищи в нем строку с словом error: и место инстанцирования.
источник

A

Alex in pro.cxx
там не был развернут тип, и даже когда через мой принтер удалось добиться приписки with T = ... , там был псевдоним
источник

A

Alex in pro.cxx
это было
источник

v

vehlwn in pro.cxx
Alex
там не был развернут тип, и даже когда через мой принтер удалось добиться приписки with T = ... , там был псевдоним
Какой псевдоним? Ты хочешь вывести реальный тип внутри тупедефа или что?
источник

A

Alex in pro.cxx
именно
источник

v

vehlwn in pro.cxx
Alex
Напомните, каким трюком можно заставить MSVC развернуть все using и показать в сообщении об ошибке истинный вычисленный тип, а не его финальный идентификатор?
А юзинг не истинный и не финальный?
источник

AZ

Alexander Zaitsev in pro.cxx
vehlwn
using integer_t = boost::multiprecision::cpp_int;

А это что?
это unbounded_integer, в общем случае. но из него можно сделать wide_int
источник

v

vehlwn in pro.cxx
Alexander Zaitsev
это unbounded_integer, в общем случае. но из него можно сделать wide_int
Ты хочешь фиксированный штоле?
typedef number<cpp_int_backend<128, 128, unsigned_magnitude, unchecked, void> >   uint128_t;
источник

AZ

Alexander Zaitsev in pro.cxx
vehlwn
Ты хочешь фиксированный штоле?
typedef number<cpp_int_backend<128, 128, unsigned_magnitude, unchecked, void> >   uint128_t;
так я же и говорю, что можно сделать :)
источник

A

Alex in pro.cxx
vehlwn
А юзинг не истинный и не финальный?
нет, конечно, это просто алиас, и я понятия не имею, для какого типа трейт сфэйлился, отлаживать невозможно по таким сообщениям
источник

v

vehlwn in pro.cxx
Alex
нет, конечно, это просто алиас, и я понятия не имею, для какого типа трейт сфэйлился, отлаживать невозможно по таким сообщениям
Ниче не понял. Тупедеф не вводит новый тип и является простой текстовой подстановкой. Покажи что у тебя есть и что хочешь получить.
источник

A

Alex in pro.cxx
ну блин, using MyT = std::conditional_t<b, T1, T2>. В сообщении об ошибке написано только MyT. А теперь представь, что на самом деле он выведен через ещё 5 шаблонов, как это отлаживать?
источник