#include <limits>
#include <type_traits>
#include <string>
#include <iostream>
class sigsegv_penis{
private:
size_t length_inches, girth_inches;
public:
sigsegv_penis(bool big = true) noexcept{
static_assert(std::is_same_v<decltype(length_inches), decltype(girth_inches)>);
if(big)
length_inches = girth_inches = std::numeric_limits<decltype(length_inches)>::max();
else
length_inches = girth_inches = 1;
}
decltype(length_inches) get_length() const noexcept{ return length_inches; }
decltype(girth_inches) get_girth() const noexcept{ return girth_inches; }
bool is_big() const noexcept{
return length_inches == std::numeric_limits<decltype(length_inches)>::max() && length_inches == girth_inches;
}
};
int main(){
sigsegv_penis cock;
std::cout << "SIGSEGV has a " << std::string(cock.is_big() ? "big" : "tiny") << " penis!\n";
return 0;
}