Use c++17 in examples

release/4.3a0
Frank Dellaert 2023-02-04 10:35:42 -08:00
parent ae7c17420d
commit 42be860f73
6 changed files with 10 additions and 17 deletions

View File

@ -87,9 +87,8 @@ int main(int argc, char* argv[]) {
result.print(); result.print();
cout << "Detailed results:" << endl; cout << "Detailed results:" << endl;
for (auto keyedStatus : result.detail->variableStatus) { for (auto& [key, status] : result.detail->variableStatus) {
const auto& status = keyedStatus.second; PrintKey(key);
PrintKey(keyedStatus.first);
cout << " {" << endl; cout << " {" << endl;
cout << "reeliminated: " << status.isReeliminated << endl; cout << "reeliminated: " << status.isReeliminated << endl;
cout << "relinearized above thresh: " << status.isAboveRelinThreshold cout << "relinearized above thresh: " << status.isAboveRelinThreshold

View File

@ -74,8 +74,8 @@ int main(const int argc, const char* argv[]) {
// Calculate and print marginal covariances for all variables // Calculate and print marginal covariances for all variables
Marginals marginals(*graph, result); Marginals marginals(*graph, result);
for (const auto& key_pose : result.extract<Pose3>()) { for (const auto& [key, pose] : result.extract<Pose3>()) {
std::cout << marginals.marginalCovariance(key_pose.first) << endl; std::cout << marginals.marginalCovariance(key) << endl;
} }
return 0; return 0;
} }

View File

@ -79,9 +79,7 @@ int main(int argc, char* argv[]) {
for (const SfmTrack& track : mydata.tracks) { for (const SfmTrack& track : mydata.tracks) {
// Leaf expression for j^th point // Leaf expression for j^th point
Point3_ point_('p', j); Point3_ point_('p', j);
for (const SfmMeasurement& m : track.measurements) { for (const auto& [i, uv] : track.measurements) {
size_t i = m.first;
Point2 uv = m.second;
// Leaf expression for i^th camera // Leaf expression for i^th camera
Expression<SfmCamera> camera_(C(i)); Expression<SfmCamera> camera_(C(i));
// Below an expression for the prediction of the measurement: // Below an expression for the prediction of the measurement:

View File

@ -57,9 +57,7 @@ int main (int argc, char* argv[]) {
// Add measurements to the factor graph // Add measurements to the factor graph
size_t j = 0; size_t j = 0;
for(const SfmTrack& track: mydata.tracks) { for(const SfmTrack& track: mydata.tracks) {
for(const SfmMeasurement& m: track.measurements) { for (const auto& [i, uv] : track.measurements) {
size_t i = m.first;
Point2 uv = m.second;
graph.emplace_shared<MyFactor>(uv, noise, C(i), P(j)); // note use of shorthand symbols C and P graph.emplace_shared<MyFactor>(uv, noise, C(i), P(j)); // note use of shorthand symbols C and P
} }
j += 1; j += 1;

View File

@ -59,9 +59,7 @@ int main(int argc, char* argv[]) {
// Add measurements to the factor graph // Add measurements to the factor graph
size_t j = 0; size_t j = 0;
for (const SfmTrack& track : mydata.tracks) { for (const SfmTrack& track : mydata.tracks) {
for (const SfmMeasurement& m : track.measurements) { for (const auto& [i, uv] : track.measurements) {
size_t i = m.first;
Point2 uv = m.second;
graph.emplace_shared<MyFactor>( graph.emplace_shared<MyFactor>(
uv, noise, C(i), P(j)); // note use of shorthand symbols C and P uv, noise, C(i), P(j)); // note use of shorthand symbols C and P
} }

View File

@ -557,12 +557,12 @@ void runPerturb()
// Perturb values // Perturb values
VectorValues noise; VectorValues noise;
for(const auto& key_dim: initial.dims()) for(const auto& [key, dim]: initial.dims())
{ {
Vector noisev(key_dim.second); Vector noisev(dim);
for(Vector::Index i = 0; i < noisev.size(); ++i) for(Vector::Index i = 0; i < noisev.size(); ++i)
noisev(i) = normal(rng); noisev(i) = normal(rng);
noise.insert(key_dim.first, noisev); noise.insert(key, noisev);
} }
Values perturbed = initial.retract(noise); Values perturbed = initial.retract(noise);