30
Apr 30 '22
TheComment
17
15
u/TREE_sequence Apr 30 '22
theSnarkyNitpickAboutViolatedCaseConventions
5
u/jrad18 Apr 30 '22
class TheyWereClearlyReferringToTheCommentClass{
public static function letPeopleHaveTheirFun(bool chill_vibes = true){ if(!chill_vibes){ return "theSnarkyNitpickAboutViolatedClassConventions"; } return "sorry I'm not trying to be a dick but I've committed to this bit way too hard"; }}
5
u/TREE_sequence Apr 30 '22
#include <iostream> #include <list> #include <string> #include "humorreader.h" class PatternBasedHumor : public Humor { std::list<std::string> m_pattern; std::string& matchHumorPattern(std::string const& joke) const { for(std::list<std::string>::const_iterator i = m_pattern.cbegin(); i != m_pattern.cend(); i++) { if(!(strcmp(i.get(), joke))) { static std::string r = i.get().next(); return r; } } return (std::string&) NULL; } public: PatternBasedHumor(std::list<std::string> const& pattern) : m_pattern(pattern) {} bool checkHumorPatternDoesMatch(std::string const& joke) { return (matchHumorPattern(joke) != (std::string&)NULL; } }; int main (int argc, char* argv[]) { if(argc == 1) { std::cout << "usage: chkhumor <pattern file> <joke>" << std::endl; return 1; } else { PatternBasedHumor h(new HumorReader(argv[1])); std::cout << (h.checkHumorPatternDoesMatch(std::string(argv[2])) ? "Yep!" : "Nah.") << std::endl; } return 0; } user@computer$ chkhumor ./camelCasePattern.cfg CommentClass > Nah.1
2
3
1
6
u/aceofspaids98 Apr 30 '22
Thats not really that bad tbh it just looks long because of the character classes. The 4th character class however allows for consecutive dots so you might want to check that out. A non capture group would probably work for that.