■C++クラスヘッダ→Test.h

#ifndef TEST_H
#define TEST_H
#include "TestDef.h"
void Test(TEST_STR& test_str);
#endif     // TEST_H

■C++デファインヘッダ→TestDef.h

#ifndef TESTDEF_H
#define TESTDEF_H
struct TEST_STR {
    int a;
    int b;
};
#endif

■C++クラス→Test.cppをTest.mmにしました。

#include "Test.h"
#include "TestDef.h"

void Test(TEST_STR& test_str)
{
}

■Obje-c++ヘッダ→TestObj.h

#ifndef TestObj_h
#define TestObj_h

#import <Foundation/Foundation.h>
#import "TestDef.h"
@interface TestObj : NSObject    
- (void) test:(TEST_STR&)test ;
@end

#endif /* TestObj_h */

■Obj-C++ソース→TestObj.mm

#import <Foundation/Foundation.h>
#import "TestObj.h"
#import "Test.h"

@implementation TestObj

- (void) test:(TEST_STR&)a {
    Test(a);
}

@end

■ブリッジファイルに#import "TestObj.h"を入れています。

このような感じなのですが、
■Obje-c++ヘッダの下記の箇所で「Expected a type」が出てしまいます。

- (void) test:(TEST_STR&)test ;

上記エラーを検索すると、#import の追加がいるような記載があったため、そちらも追加してみましたが
変わらず・・・
XCODEからTEST_STRにジャンプもできたので参照できていると
思うのですが何がおかしいのかさっぱりわかりません。
ご助言いただけると助かります。