SwiftプロジェクトでC++を使う場合、以下の手順を踏みます。
- C++ファイル・ヘッダファイルを作成
- 作ったC++ファイルをラップするObjective-C++ファイル・ヘッダーを作成
- Objective-CブリッジヘッダでObjective-C++ファイルのヘッダーをインポート
- swiftファイルからObjective-C++のコードを呼び出し
C++ファイル・ヘッダファイルを作成
C++ファイル・ヘッダファイルを作成します。
cpp.h
# ifndef __SwiftAndObjCpp__cpp__
# define __SwiftAndObjCpp__cpp__
# include <stdio.h>
class Cpp {
public:
    void run();
};
# endif /* defined(__SwiftAndObjCpp__cpp__) */
cpp.cpp
# include "cpp.h"
void Cpp::run() {
    printf("cpp run");
}
作ったC++ファイルをラップするObjective-C++ファイル・ヘッダーを作成
Objective-C++ファイル・ヘッダーファイルを作り、C++コードを呼び出します。
objcpp.h
# ifndef SwiftAndObjCpp_objcpp_h
# define SwiftAndObjCpp_objcpp_h
# import <Foundation/Foundation.h>
@interface ObjCpp : NSObject
-(void)run;
@end
# endif
objcpp.mm
# import <Foundation/Foundation.h>
# import "objcpp.h"
# import "cpp.h"
@implementation ObjCpp {
    Cpp *cpp;
}
-(id)init {
    self = [super init];
    cpp = new Cpp();
    return self;
}
-(void)dealloc {
    delete cpp;
    [super dealloc];
}
-(void)run {
    cpp->run();
}
@end
Objective-CブリッジヘッダでObjective-C++ファイルのヘッダーをインポート
Objective-Cブリッジヘッダを作成し、Objective-C++ファイルのヘッダーをインポートします。
Objective-Cブリッジヘッダは、SwiftプロジェクトにObjective-Cファイルを追加する際のダイアログでOKを選択すると、自動で作成されます。
SwiftAndObjCpp-Bridging-Header.h
//
//  Use this file to import your target's public headers that you would like to expose to Swift.
//
# import "objcpp.h"
swiftファイルからObjective-C++のコードを呼び出し
以上で、SwiftでC++のコードを呼び出す準備が整いました。
最後に、SwiftコードからObjective-Cのメソッドを呼び出します。
インポートは不要です。
ViewController.swift
import Cocoa
class ViewController: NSViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
		 // Objective-C++メソッド呼び出し
        var objcpp = ObjCpp()
        objcpp.run()
    }
}