2011/12/07

Recent entries from same category

  1. MRuby の TensorFlow Lite バインディングを書いた。
  2. flatten() に再帰は必要ない
  3. Windows 10 に AF_UNIX が来たので試してみた。
  4. C言語から分かりやすいAPIで扱える JSON パーサ「cJSON」
  5. C++ で STL フレンドリに扱えるJSONパーサ「json.hpp」

この記事は Oppai Advent Calendar 2011 の7日目の記事です。
C++11のユーザ定義リテラルを使うと、ユーザ指定のサフィックスに従って型変換や任意の処理を行う事が出来ます。
今日はこれを使って、おっぱいを判定するコードを書いてみました。
#include <iostream>
#include <string>

#define X(x) #x ")"_oppai
#define _(x) "(" #x ")(" X

char constoperator "" _oppai(char const* str, std::size_t len) {
  std::string x(str, len);
  return
    x == "(・)(・)" ? "ハリのあるおっぱい" :
    x == "(.)(.)"   ? "垂れ気味のおっぱい" :
    x == "(◎)(◎)" ? "立体的なおっぱい" :
    x == "(○)(○)" ? "乳輪が大きいおっぱい" :
    x == "(●)(●)" ? "乳輪が大きく、黒いおっぱい" :
    x == "(。)(。)" ? "色が薄く、左向きのおっぱい" :
    "もはやおっぱいではない";
}

int
main(int argc, char* argv[]) {
  std::cout << _(・)(・) << std::endl; // ハリのあるおっぱい
  std::cout << _(.)(.)   << std::endl; // 垂れ気味のおっぱい
  std::cout << _(◎)(◎) << std::endl; // 立派なおっぱい
  std::cout << _(○)(○) << std::endl; // 乳輪が大きいおっぱい
  std::cout << _(●)(●) << std::endl; // 乳輪が大きく、黒いおっぱい
  std::cout << _(。)(。) << std::endl; // 色が薄く、左向きのおっぱい
  return 0;
}
ユーザ定義リテラル便利ですね!
Posted at by | Edit


blog comments powered by Disqus