    #include <iostream>
    #include <string>
    using namespace std;
     
    class TaintedString : public string {using string::string;};
    class BlessedString : public string {using string::string;};
     
    BlessedString untaintString(TaintedString tstr) {
    //do some sanitation or whatever is necessary
    size_t pos;
    while((pos = tstr.find('\'')) != TaintedString::npos) {
    tstr.erase(pos);
    }
     
    return BlessedString(tstr.c_str());
    }
     
    int main() {
    TaintedString attack = "Mike\'; DROP TABLE users;";
    BlessedString bs = untaintString(attack);
    
    //BlessedString test = attack; //compilation error
    
    std::cout << bs << "\n";
    return 0;
    }