/* examples/consumer/main.cpp * Ein fremdes Programm, das libpda benutzt. * * Es kennt das Projekt nicht -- nur das installierte Paket. Die Includes * sehen deshalb genauso aus wie bei jedem anderen Benutzer, und es gibt keine * relativen Pfade irgendwohin. */ #include #include #include #include #include int main() { /* Rechner */ const auto value = pda::evaluate("(1 + 2) * 3 ^ 2"); if (!value) { std::fprintf(stderr, "consumer: %s\n", pda::format_error(value.error()).c_str()); return 1; } std::printf("(1 + 2) * 3 ^ 2 = %g\n", *value); /* Kontakte */ pda::ContactBook book; book.add(pda::Contact{"Anna", "0151", "anna@example.org", "Test"}); std::printf("Kontakte: %zu\n", book.size()); /* Notizen */ pda::TextBuffer notes; notes.append("libpda laeuft aus einem fremden Projekt"); std::printf("Notiz: %s\n", std::string{*notes.line(1U)}.c_str()); return *value == 27.0 ? 0 : 1; }