code: def test_cross_language_cpp_actor():
      actor = ray.cross_language.cpp_actor_class(
          "RAY_FUNC(Counter::FactoryCreate)", "Counter"
      ).remote()
      obj = actor.Plus1.remote()
      assert 1 == ray.get(obj)
  
      actor1 = ray.cross_language.cpp_actor_class(
          "RAY_FUNC(Counter::FactoryCreate)", "Counter"
      ).remote("invalid arg")
      obj = actor1.Plus1.remote()
      with pytest.raises(RayActorError):
          ray.get(obj)
  
      actor1 = ray.cross_language.cpp_actor_class(
          "RAY_FUNC(Counter::FactoryCreate)", "Counter"
      ).remote()
  
      obj = actor1.Plus1.remote()
      assert 1 == ray.get(obj)
  
      obj = actor1.Add.remote(2)
      assert 3 == ray.get(obj)
  
      obj2 = actor1.ExceptionFunc.remote()
      with pytest.raises(CrossLanguageError):
          ray.get(obj2)
  
      obj3 = actor1.NotExistFunc.remote()
      with pytest.raises(CrossLanguageError):
          ray.get(obj3)
  
imports: import pytest
  import ray
  import ray.cluster_utils
  from ray.exceptions import CrossLanguageError, RayActorError
label_desc: Use image node_id 2 for calling a global function with example usage: test_cross_language_cpp_actor() without return types