C++のコードをSwift風に記述するための仕組みを発明した。
LLVM/Clangをフォークだなんてそんなセコい真似はしていない。
とりあえずこいつを見てほしい。
swift.cpp
#include "Cpp2Swifty.h"
class Number {
Int value = 0
func foo() {
if (let val = number()) {
println(val)
}
}
func bar() {
guard (val, number()) else {
if (let msg = message()) {
for (Character ch in String(msg)) {
print(ch)
}
}
return;
}
println(1.0 / val)
}
func number() -> Int {
return value;
}
func message() -> Character* {
return "hello swift!\n";
}
}
func main() -> Int {
var a = Number();
a.value = 99;
a.foo(); // 99
a.value = 0;
a.bar(); // hello swift!
}
とってもSwiftyである。
これはC++14でコンパイルすることができる。
$ clang++ -std=c++14 swift.cpp
おっと、その前に。
肝心なライブラリの方を貼り忘れていた。
Cpp2Swifty.h
#define class struct
#define var auto
#define let auto const
#define func ; auto
#define return ; return
#define in :
#define guard(var, val) auto var = val; if (var) {}
#define Character const char
#define Void void
#define Int int
#define String std::string
#define println(val) std::cout << val << std::endl;
#define print(val) std::cout << val;
#include <iostream>
#include <string>