Jelajahi Sumber

[cpp] Add some abstracts for the native integer types

Hugh 11 tahun lalu
induk
melakukan
34ed351fbb
11 mengubah file dengan 40 tambahan dan 0 penghapusan
  1. 10 0
      gencpp.ml
  2. 3 0
      std/cpp/Float32.hx
  3. 3 0
      std/cpp/Float64.hx
  4. 3 0
      std/cpp/Int16.hx
  5. 3 0
      std/cpp/Int32.hx
  6. 3 0
      std/cpp/Int64.hx
  7. 3 0
      std/cpp/Int8.hx
  8. 3 0
      std/cpp/UInt16.hx
  9. 3 0
      std/cpp/UInt32.hx
  10. 3 0
      std/cpp/UInt64.hx
  11. 3 0
      std/cpp/UInt8.hx

+ 10 - 0
gencpp.ml

@@ -65,6 +65,11 @@ let is_internal_class = function
    |  ([],"Array") | ([], "Class") | ([], "Enum") | ([], "Bool")
    |  ([], "Dynamic") | ([], "ArrayAccess") | (["cpp"], "FastIterator") | (["cpp"],"Pointer") -> true
    |  ([],"Math") | (["haxe";"io"], "Unsigned_char__") -> true
+   |  (["cpp"],"Int8") | (["cpp"],"UInt8")
+   |  (["cpp"],"Int16") | (["cpp"],"UInt16")
+   |  (["cpp"],"Int32") | (["cpp"],"UInt32")
+   |  (["cpp"],"Int64") | (["cpp"],"UInt64")
+   |  (["cpp"],"Float32") | (["cpp"],"Float64") -> true
    | _ -> false;;
 
 let get_include_prefix common_ctx with_slash =
@@ -411,6 +416,11 @@ let gen_close_namespace output class_path =
 (* The basic types can have default values and are passesby value *)
 let is_numeric = function
    | "Int" | "Bool" | "Float" |  "::haxe::io::Unsigned_char__" | "unsigned char" -> true
+   | "::cpp::UInt8" | "::cpp::Int8"
+   | "::cpp::UInt16" | "::cpp::Int16"
+   | "::cpp::UInt32" | "::cpp::Int32"
+   | "::cpp::UInt64" | "::cpp::Int64"
+   | "::cpp::Float32" | "::cpp::Float64"
    | "int" | "bool" | "double" | "float" -> true
    | _ -> false
 

+ 3 - 0
std/cpp/Float32.hx

@@ -0,0 +1,3 @@
+package cpp;
+
+@:coreType @:notNull @:runtimeValue abstract Float32 from Float to Float {}

+ 3 - 0
std/cpp/Float64.hx

@@ -0,0 +1,3 @@
+package cpp;
+
+@:coreType @:notNull @:runtimeValue abstract Float64 from Float to Float {}

+ 3 - 0
std/cpp/Int16.hx

@@ -0,0 +1,3 @@
+package cpp;
+
+@:coreType @:notNull @:runtimeValue abstract Int16 from Int to Int {}

+ 3 - 0
std/cpp/Int32.hx

@@ -0,0 +1,3 @@
+package cpp;
+
+@:coreType @:notNull @:runtimeValue abstract Int32 from Int to Int {}

+ 3 - 0
std/cpp/Int64.hx

@@ -0,0 +1,3 @@
+package cpp;
+
+@:coreType @:notNull @:runtimeValue abstract Int64 from Int to Int {}

+ 3 - 0
std/cpp/Int8.hx

@@ -0,0 +1,3 @@
+package cpp;
+
+@:coreType @:notNull @:runtimeValue abstract Int8 from Int to Int {}

+ 3 - 0
std/cpp/UInt16.hx

@@ -0,0 +1,3 @@
+package cpp;
+
+@:coreType @:notNull @:runtimeValue abstract UInt16 from Int to Int {}

+ 3 - 0
std/cpp/UInt32.hx

@@ -0,0 +1,3 @@
+package cpp;
+
+@:coreType @:notNull @:runtimeValue abstract UInt32 from Int to Int {}

+ 3 - 0
std/cpp/UInt64.hx

@@ -0,0 +1,3 @@
+package cpp;
+
+@:coreType @:notNull @:runtimeValue abstract UInt64 from Int to Int {}

+ 3 - 0
std/cpp/UInt8.hx

@@ -0,0 +1,3 @@
+package cpp;
+
+@:coreType @:notNull @:runtimeValue abstract UInt8 from Int to Int {}