Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

セミコロンレスc++

1,788 views

Published on

セミコロンを使わずにc++を書きたい

Published in: Technology
  • Be the first to comment

  • Be the first to like this

セミコロンレスc++

  1. 1. セミコロンレスc++ KMC id : kazakami twitter @Kazakami_9
  2. 2. 自己紹介   KMC id : kazakami   github: kazakami   twitter : @Kazakami_9   :tofu_on_fire:   Network (destruction) Engineer   留年はいいぞ 📛
  3. 3. 自己紹介   https://よさ.jp   http://😇.よさ.jp
  4. 4. セミコロンレスc++   ある人「c++はセミコロン書かなきゃいけないからダサい」 c++はセミコロンなくても書ける
  5. 5. Hello World void main(){ std::cout << “Hello World” << std::endl; } ダサいc++ void main(){ if (std::cout << “Hello World” << std::endl){} } セミコロンレスc++
  6. 6. (返り値が非voidな)関数呼び出し f(arg); ダサいc++ if ( f(arg) ){} セミコロンレスc++
  7. 7. (返り値がvoidな)関数呼び出し   ifの条件文には何かしらの値を入れなければならない   if (void_return_func()){} はできない   ところでカンマ演算子って知ってますか   e1, e2 はe1を評価し、その値を捨てe2の値を返す   (void_return_func(), 0)の値は0
  8. 8. (返り値がvoidな)関数呼び出し void_return_func(arg); ダサいc++ if ( void_return_func(arg), 0 ){} セミコロンレスc++
  9. 9. 変数宣言 { int i = 114514; //iを使う式 } ダサいc++ (for i : {114514}){ //iを使う式 } セミコロンレスc++
  10. 10. forループ for (int i = 0; i < 810; i++){ exp; } ダサいc++ (for i : {0}){ while (i < 810){ if (exp){} if (i++){} } } セミコロンレスc++
  11. 11. (返り値がvoidな)関数宣言   セミコロンレスc++ではreturn文を記述できない   しかしc++にはポインタがある!!
  12. 12. (返り値がvoidな)関数宣言 void plus (int a, int b. int * r){ if (*r = a + b) {} } void main(){ for (int * r : {new int(0)}){ if (plus(4, 5, r), 0){} if (std::cout << *r << std::endl){} } } セミコロンレスc++
  13. 13. (返り値が非voidな)関数宣言   毎回newするのは面倒   やっぱりreturnしたい   通常return は値をアキュムレートレジスタに乗せて戻っている   値がアキュムレートレジスタに乗った状態で戻ればいい   returnなくても関数終端に到達すれば戻る   式は評価された後アキュムレートレジスタに乗せられる   式を評価した後関数終端に達すれば良い   レジスタの気持ちになろう!!
  14. 14. (返り値が非voidな)関数宣言 template <class T> T id(T a){ if (a) {} } int plus(int a, int b){ if (id(a + b)) {} } int main(){ f (std::cout << plus(a, b) << std::endl) {} } セミコロンレスc++
  15. 15. 今後の課題   構造体をスマートに表現する
  16. 16. まとめ   セミコロンレスc++でも変数、関数,if, forを扱える   セミコロンフリーでダサくないオシャレなc++ライフ
  17. 17. 参考文献 Semicolonless Java 2012 - プログラマーの脳みそ      http://d.hatena.ne.jp/Nagise/20120407/1333767870   セミコロンレスc++をやろうと思った元ネタ

×