namespace ore
{
  class string: public std::string
  {
  public:
    // 比較演算以外は完全に std::string と互換で相互に変換可
    template <class ...Args>
    string(Args&& ...args): std::string(std::forward<Args>(args)...){}

    // 独自の比較オペレータ
    operator bool() const {
      if(this->empty()) return false;
      if(*this == "false") return false;
      try{ return !!std::stoi(*this); } catch(...){}
      return true;
    }
  };

  // ore::string 独自の演算子定義
  :
}