C ++ в Solaris: как справиться с «формальным аргументом» ошибочно пропущена ошибка?

Я пытаюсь скомпилировать решатель SMT Z3 (версия 4.5.0) из Microsoft Research для Solaris 10 (Sparc) с Solaris Studio 12.3 (и это связано с ограничениями, которые я не могу изменить, поэтому, пожалуйста, не намекайте на gcc / g ++ ).

Я уже должен был сделать некоторые (более или менее тривиальные) изменения кода, чтобы прийти к ошибке, с которой я сейчас против:

"../src/util/map.h", line 54: Error: Formal argument p of type const std::pair<expr*, int>& in call to pair_hash<obj_ptr_hash<expr>, int_hash>::operator()(const std::pair<expr*, int>&) const is being passed const std::pair<expr*, bool>.
"../src/util/hashtable.h", line 155:     Where: While instantiating "table2map<default_map_entry<std::pair<expr*, bool>, bool>, pair_hash<obj_ptr_hash<expr>, int_hash>, default_eq<std::pair<expr*, bool>>>::entry_hash_proc::operator()(const _key_data<std::pair<expr*, bool>, bool>&) const".
"../src/util/hashtable.h", line 155:     Where: Instantiated from core_hashtable<default_map_entry<std::pair<expr*, bool>, bool>, table2map<default_map_entry<std::pair<expr*, bool>, bool>, pair_hash<obj_ptr_hash<expr>, int_hash>, default_eq<std::pair<expr*, bool>>>::entry_hash_proc, table2map<default_map_entry<std::pair<expr*, bool>, bool>, pair_hash<obj_ptr_hash<expr>, int_hash>, default_eq<std::pair<expr*, bool>>>::entry_eq_proc>::get_hash(const _key_data<std::pair<expr*, bool>, bool>&) const.
"../src/util/hashtable.h", line 350:     Where: Instantiated from non-template code.
1 Error(s) and 33 Warning(s) detected.
*** Error code 2
The following command caused the error:
CC -D_MP_INTERNAL -DNDEBUG -D_EXTERNAL_RELEASE  -xldscope=hidden -c -xarch=sse2 -xvector=simd -D_NO_OMP_ -D _EXTERNAL_RELEASE -xO3 -xregs=frameptr -D_SUNOS_ -KPIC -xalias_level=any -features=zla -I../src/ast/rewriter/bit_blaster -I../src/ast/rewriter -I../src/ast -I../src/util -I../src/math/polynomial -I../src/math/automata -I../src/ast/simplifier -I../src/ast/macros -I../src/ast/normal_forms -I../src/cmd_context -I../src/solver -I../src/model -I../src/tactic -I../src/interp -I../src/smt/proto_model -I../src/smt/params -I../src/ast/pattern -I../src/parsers/smt2 -I../src/parsers/util -I../src/ast/substitution -I../src/math/grobner -I../src/math/euclid -I../src/math/simplex -I../src/ast/proof_checker -I../src/ast/fpa -osmt/smt_quick_checker.o ../src/smt/smt_quick_checker.cpp
make: Fatal error: Command failed for target `smt/smt_quick_checker.o'
bash-3.2$

Код, вызывающий ошибку, можно найти Вот на линии 54.

Я уже ковырялся с гипсом std::pair<expr*, int>, но так как это код, используемый с разными типами, это приводит к аналогичной ошибке с unsigned,

Кто-нибудь может мне помочь с этой ошибкой?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]