Throw exception rather than assert (which crashes MATLAB)

release/4.3a0
Frank Dellaert 2011-11-04 16:56:19 +00:00
parent 9d7d563688
commit 9d4ba6acb9
1 changed files with 6 additions and 3 deletions

View File

@ -46,7 +46,10 @@ namespace gtsam {
// Check that keys are all unique // Check that keys are all unique
std::multiset < Key > nonunique(keys_.begin(), keys_.end()); std::multiset < Key > nonunique(keys_.begin(), keys_.end());
std::set < Key > unique(keys_.begin(), keys_.end()); std::set < Key > unique(keys_.begin(), keys_.end());
assert(nonunique.size() == unique.size() && std::equal(nonunique.begin(), nonunique.end(), unique.begin())); bool correct = (nonunique.size() != unique.size())
&& std::equal(nonunique.begin(), nonunique.end(), unique.begin());
if (!correct)
throw std::logic_error("Factor::assertInvariants: detected inconsistency");
#endif #endif
} }