diff --git "a/\320\237\320\24014/3/main.cpp" "b/\320\237\320\24014/3/main.cpp" new file mode 100644 index 0000000..4cca757 --- /dev/null +++ "b/\320\237\320\24014/3/main.cpp" @@ -0,0 +1,15 @@ +#include "setgetter.h" +#include +#include + +int main() +{ + std::set numeros; + std::cout << "got: " << setgetter::get(numeros) << std::endl; + + + numeros.insert(3); + std::cout << "added 3;" << std::endl; + std::cout << "got: " << setgetter::get(numeros) << std::endl; + +} \ No newline at end of file diff --git "a/\320\237\320\24014/3/setgetter.h" "b/\320\237\320\24014/3/setgetter.h" new file mode 100644 index 0000000..3e2bcb7 --- /dev/null +++ "b/\320\237\320\24014/3/setgetter.h" @@ -0,0 +1,23 @@ +#pragma once +#include +#include +#include + + +class setgetter +{ +public: + template + static T get(std::set set) + { + try { + if (set.begin() == set.end()) throw std::out_of_range("Out of range"); + return *set.begin(); + } + catch (std::out_of_range& e) + { + std::cout << e.what() << std::endl; + return T(); + } + } +};