2016-10-04 114 views
1

我學習痛飲,我想了解,我一直沒能找的文檔&例子後找出一些C++可能出現的情況,這是我的內容:痛飲一般問題

usecase1.h

#ifndef __USECASE1_H__ 
#define __USECASE1_H__ 

namespace foo_namespace { 
    int usecase1_f1(float b, float c, float *res); 
} 

#endif 

usecase1.cpp

int usecase1_f1(float b, float c, float *res) 
{ 
    return 1; 
} 

usecase2.h

#ifndef __USECASE2_H__ 
#define __USECASE2_H__ 

extern double usecase2_v1; 

int usecase2_f1(int n); 
char *usecase2_f2(); 

#endif 

usecase2.cpp

#include <time.h> 

double usecase2_v1 = 3.0; 

int usecase2_f1(int n) { 
    if (n <= 1) return 1; 
    else return n * usecase2_f1(n - 1); 
} 

char *usecase2_f2() 
{ 
    time_t ltime; 
    time(&ltime); 
    return ctime(&ltime); 
} 

usecase3.h

#ifndef __USECASE3_h__ 
#define __USECASE3_h__ 

#include <math.h> 

namespace foo_namespace { 
    static inline float usecase3_f1(float x) 
    { 
     return 31.0f; 
    } 
} 

#endif 

example1_working.i

%module example 

%{ 
    int usecase1_f1(float b, float c, float *res); 
    #include "usecase2.h" 
%} 

int usecase1_f1(float b, float c, float *res); 

%include "usecase2.h" 

example2_not_working.i

%module example 

%{ 
    #include "usecase1.h" 
    #include "usecase2.h" 
%} 

%include "usecase1.h" 
%include "usecase2.h" 

質詢

  • 聲明像example1_working.i工作,但我想用頭,而不是明確地命名空間功能,似乎痛飲與命名空間弄亂了,有沒有什麼解決方法嗎?
  • 如何將聲明爲靜態內聯的命名空間函數包裝在swig文件(usecase3.h)中?

回答