dukeify / fake-jni

An implementation of the JNI and JVMTI with support for direct interaction between natively registered classes and JVM objects.
Other
28 stars 10 forks source link

Compiler errors under clang 6 and ubuntu 18.04 #104

Closed arcana261 closed 4 years ago

arcana261 commented 4 years ago

Hi!

I'm trying to compile fake-jni but I'm getting a herd of compiler errors.

clang:
    clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
os:
    Description:    Ubuntu 18.04.4 LTS

I've managed to submit a PR #103 to resolve one of the issues... But there are too many compiler errors and I don't know what to do with them..

I'd appreciate any help on this matter!

In file included from /home/arcana/go/src/github.com/arcana261/fake-jni/src/fake-jni.cpp:3:
In file included from /home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/fake-jni.h:6:
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:133:10: error: explicit
      specialization of 'ComponentTrait' in class scope
  struct ComponentTrait<false> : CX::false_type {
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:154:10: error: explicit
      specialization of 'ComponentTrait' in class scope
  struct ComponentTrait<true> : CX::true_type {
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JBooleanArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JBooleanArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:372:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JBooleanArray>' requested here
_DEFINE_NATIVE_ARRAY(JBooleanArray, _jbooleanArray, JBoolean)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:372:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JBooleanArray>' requested here
_DEFINE_NATIVE_ARRAY(JBooleanArray, _jbooleanArray, JBoolean)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JByteArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JByteArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:373:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JByteArray>' requested here
_DEFINE_NATIVE_ARRAY(JByteArray, _jbyteArray, JByte)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:373:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JByteArray>' requested here
_DEFINE_NATIVE_ARRAY(JByteArray, _jbyteArray, JByte)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JCharArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JCharArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:374:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JCharArray>' requested here
_DEFINE_NATIVE_ARRAY(JCharArray, _jcharArray, JChar)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:374:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JCharArray>' requested here
_DEFINE_NATIVE_ARRAY(JCharArray, _jcharArray, JChar)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JShortArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JShortArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:375:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JShortArray>' requested here
_DEFINE_NATIVE_ARRAY(JShortArray, _jshortArray, JShort)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:In file included from /home/arcana/go/src/github.com/arcana261/fake-jni/src/jni/native/array.cpp:2:
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:133:10: error: explicit
      specialization of 'ComponentTrait' in class scope
  struct ComponentTrait<false> : CX::false_type {
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:154:10: error: explicit
      specialization of 'ComponentTrait' in class scope
  struct ComponentTrait<true> : CX::true_type {
         ^
29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:375:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JShortArray>' requested here
_DEFINE_NATIVE_ARRAY(JShortArray, _jshortArray, JShort)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JBooleanArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JBooleanArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:372:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JBooleanArray>' requested here
_DEFINE_NATIVE_ARRAY(JBooleanArray, _jbooleanArray, JBoolean)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h: is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:372:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JBooleanArray>' requested here
_DEFINE_NATIVE_ARRAY(JBooleanArray, _jbooleanArray, JBoolean)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JIntArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JIntArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:376:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JIntArray>' requested here
_DEFINE_NATIVE_ARRAY(JIntArray, _jintArray, JInt)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h
:159:30:  class fake_object : public JArray<fake_object> {\
                            ^
error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JByteArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JByteArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:373:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JByteArray>' requested here
_DEFINE_NATIVE_ARRAY(JByteArray, _jbyteArray, JByte)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h::205:26: 373:1: error: note: 'getClass'in
       instantiationmarked
       'override'of  buttemplate  doesclass  not'FakeJni::JArray<FakeJni::JByteArray>'  overriderequested  anyhere member
 functions
_DEFINE_NATIVE_ARRAY(JByteArray, _jbyteArray, JByte)
^
  virtual const JClass & getClass() const noexcept override {
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h                         ^:
45:29: note: /home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:expanded376 :from1
:       macro '_DEFINE_NATIVE_ARRAY'note:
in instantiation
      of template class 'FakeJni::JArray<FakeJni::JIntArray>' requested here class fake_object : public JArray<fake_object> {\

                            ^
_DEFINE_NATIVE_ARRAY(JIntArray, _jintArray, JInt)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JFloatArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JFloatArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:377:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JFloatArray>' requested here
_DEFINE_NATIVE_ARRAY(JFloatArray, _jfloatArray, JFloat)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:377:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JFloatArray>' requested here
_DEFINE_NATIVE_ARRAY(JFloatArray, _jfloatArray, JFloat)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JLongArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JLongArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:378:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JLongArray>' requested here
_DEFINE_NATIVE_ARRAY(JLongArray, _jlongArray, JLong)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:378:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JLongArray>' requested here
_DEFINE_NATIVE_ARRAY(JLongArray, _jlongArray, JLong)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JDoubleArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JDoubleArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:379:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JDoubleArray>' requested here
_DEFINE_NATIVE_ARRAY(JDoubleArray, _jdoubleArray, JDouble)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JCharArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JCharArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:374:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JCharArray>' requested here
_DEFINE_NATIVE_ARRAY(JCharArray, _jcharArray, JChar)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:374:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JCharArray>' requested here
_DEFINE_NATIVE_ARRAY(JCharArray, _jcharArray, JChar)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JShortArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JShortArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:375:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JShortArray>' requested here
_DEFINE_NATIVE_ARRAY(JShortArray, _jshortArray, JShort)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:375:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JShortArray>' requested here
_DEFINE_NATIVE_ARRAY(JShortArray, _jshortArray, JShort)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:379:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JDoubleArray>' requested here
_DEFINE_NATIVE_ARRAY(JDoubleArray, _jdoubleArray, JDouble)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JIntArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JIntArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:376:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JIntArray>' requested here
_DEFINE_NATIVE_ARRAY(JIntArray, _jintArray, JInt)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:376:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JIntArray>' requested here
_DEFINE_NATIVE_ARRAY(JIntArray, _jintArray, JInt)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JFloatArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JFloatArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:377:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JFloatArray>' requested here
_DEFINE_NATIVE_ARRAY(JFloatArray, _jfloatArray, JFloat)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:377:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JFloatArray>' requested here
_DEFINE_NATIVE_ARRAY(JFloatArray, _jfloatArray, JFloat)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JLongArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JLongArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:378:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JLongArray>' requested here
_DEFINE_NATIVE_ARRAY(JLongArray, _jlongArray, JLong)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:378:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JLongArray>' requested here
_DEFINE_NATIVE_ARRAY(JLongArray, _jlongArray, JLong)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JObjectArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JObjectArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:380:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JObjectArray>' requested here
_DEFINE_NATIVE_ARRAY(JObjectArray, _jobjectArray, JObject)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JDoubleArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JDoubleArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:379:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JDoubleArray>' requested here
_DEFINE_NATIVE_ARRAY(JDoubleArray, _jdoubleArray, JDouble)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
[ 41%] Building CXX object CMakeFiles/fake-jni.dir/src/jni/native/exception.cpp.o
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:379:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JDoubleArray>' requested here
_DEFINE_NATIVE_ARRAY(JDoubleArray, _jdoubleArray, JDouble)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
20 errors generated.
[ 43%] Building CXX object CMakeFiles/fake-jni.dir/src/jni/native/field.cpp.o
CMakeFiles/fake-jni.dir/build.make:82: recipe for target 'CMakeFiles/fake-jni.dir/src/fake-jni.cpp.o' failed
make[2]: *** [CMakeFiles/fake-jni.dir/src/fake-jni.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JObjectArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JObjectArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:380:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JObjectArray>' requested here
_DEFINE_NATIVE_ARRAY(JObjectArray, _jobjectArray, JObject)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
CMakeFiles/fake-jni.dir/build.make:160: recipe for target 'CMakeFiles/fake-jni.dir/src/jni/native/array.cpp.o' failed
make[2]: *** [CMakeFiles/fake-jni.dir/src/jni/native/array.cpp.o] Error 1
In file included from /home/arcana/go/src/github.com/arcana261/fake-jni/src/jni/native/exception.cpp:2:
In file included from /home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/throwable.h:4:
In file included from /home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/string.h:4:
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:133:10: error: explicit
      specialization of 'ComponentTrait' in class scope
  struct ComponentTrait<false> : CX::false_type {
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:154:10: error: explicit
      specialization of 'ComponentTrait' in class scope
  struct ComponentTrait<true> : CX::true_type {
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JBooleanArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JBooleanArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:372:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JBooleanArray>' requested here
_DEFINE_NATIVE_ARRAY(JBooleanArray, _jbooleanArray, JBoolean)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:372:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JBooleanArray>' requested here
_DEFINE_NATIVE_ARRAY(JBooleanArray, _jbooleanArray, JBoolean)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JByteArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JByteArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:373:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JByteArray>' requested here
_DEFINE_NATIVE_ARRAY(JByteArray, _jbyteArray, JByte)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:373:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JByteArray>' requested here
_DEFINE_NATIVE_ARRAY(JByteArray, _jbyteArray, JByte)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JCharArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JCharArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:374:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JCharArray>' requested here
_DEFINE_NATIVE_ARRAY(JCharArray, _jcharArray, JChar)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:374:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JCharArray>' requested here
_DEFINE_NATIVE_ARRAY(JCharArray, _jcharArray, JChar)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JShortArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JShortArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:375:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JShortArray>' requested here
_DEFINE_NATIVE_ARRAY(JShortArray, _jshortArray, JShort)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:375:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JShortArray>' requested here
_DEFINE_NATIVE_ARRAY(JShortArray, _jshortArray, JShort)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JIntArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JIntArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:376:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JIntArray>' requested here
_DEFINE_NATIVE_ARRAY(JIntArray, _jintArray, JInt)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:376:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JIntArray>' requested here
_DEFINE_NATIVE_ARRAY(JIntArray, _jintArray, JInt)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JFloatArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JFloatArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:377:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JFloatArray>' requested here
_DEFINE_NATIVE_ARRAY(JFloatArray, _jfloatArray, JFloat)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:377:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JFloatArray>' requested here
_DEFINE_NATIVE_ARRAY(JFloatArray, _jfloatArray, JFloat)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JLongArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JLongArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:378:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JLongArray>' requested here
_DEFINE_NATIVE_ARRAY(JLongArray, _jlongArray, JLong)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:378:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JLongArray>' requested here
_DEFINE_NATIVE_ARRAY(JLongArray, _jlongArray, JLong)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JDoubleArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JDoubleArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:379:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JDoubleArray>' requested here
_DEFINE_NATIVE_ARRAY(JDoubleArray, _jdoubleArray, JDouble)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:205:26: error: 'getClass'
      marked 'override' but does not override any member functions
  virtual const JClass & getClass() const noexcept override {
                         ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:379:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JDoubleArray>' requested here
_DEFINE_NATIVE_ARRAY(JDoubleArray, _jdoubleArray, JDouble)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:159:30: error: implicit
      instantiation of undefined template 'FakeJni::JArray<const
      FakeJni::JObjectArray>::ComponentTrait<true>'
  using component = typename ComponentTrait<>::component_t;
                             ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:191:24: note: in instantiation
      of template class 'FakeJni::JArray<const FakeJni::JObjectArray>' requested here
 class JArray : public JArray<const T> {
                       ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:380:1: note: in instantiation
      of template class 'FakeJni::JArray<FakeJni::JObjectArray>' requested here
_DEFINE_NATIVE_ARRAY(JObjectArray, _jobjectArray, JObject)
^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:45:29: note: expanded from
      macro '_DEFINE_NATIVE_ARRAY'
 class fake_object : public JArray<fake_object> {\
                            ^
/home/arcana/go/src/github.com/arcana261/fake-jni/include/fake-jni/array.h:130:10: note: template is
      declared here
  struct ComponentTrait;
         ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
CMakeFiles/fake-jni.dir/build.make:186: recipe for target 'CMakeFiles/fake-jni.dir/src/jni/native/exception.cpp.o' failed
make[2]: *** [CMakeFiles/fake-jni.dir/src/jni/native/exception.cpp.o] Error 1
CMakeFiles/Makefile2:162: recipe for target 'CMakeFiles/fake-jni.dir/all' failed
make[1]: *** [CMakeFiles/fake-jni.dir/all] Error 2
Makefile:103: recipe for target 'all' failed
make: *** [all] Error 2
meme commented 4 years ago

Hey, you'll definitely need clang >= 9 to compile this project. Further, this main repository is currently sitting dormant as we continue to develop the next generation of fake-jni which will serve as a production-quality software (what you're looking at is more of a POC). I recommend you take a look at https://github.com/minecraft-linux/fake-jni (it is not officially supported by us) where much work has been done and it is definitely ready to be played around with (note: story is similar there, please use clang >= 9).