易于初始化的维护和使用const char *的类数组吗?

时间:2018-10-17 17:45:41

标签: c++

我有一个外部API函数,该函数接受(const char* const*)作为参数。我需要想出一种简单的方法来在我的类中创建这样的数组(有许​​多数组和函数调用),在初始化类实例后的某个时间初始化这些数组。我也在寻找一种干净的单行语法来初始化这些数组。

我对下面的代码感到满意,除了静态变量在函数外不可见:

class myClass
{
public:
    template<typename... Ts> void SetVar_RequiredExtensions(Ts... args) {
        const int size = sizeof...(args);
        static char RequiredExtensions[size][MAX_SIZE] = {args...};
    }
    template<typename... Ts> void SetVar_RequiredDevicenames(Ts... args) {
        const int size = sizeof...(args);
        static char RequiredDevicenames[size][MAX_SIZE] = {args...};
    }
}

// usage

myClass mc;
...
mc.SetVar_RequiredExtensions( "Extension one", "Extension two", ... );
mc.SetVar_RequiredDevicenames( "Name one", "Name two", ... );
...

// const char* const*

externalAPIfunctionCall(mc.RequiredExtensions); 
externalAPIfunctionCall(mc.RequiredDevicenames);
...

基本上,我正在寻找类似的东西:

mc.whateverThatReflectsVariableName "Extension one", "Extension two", ... ;
externalAPIfunctionCall(mc.whateverThatReflectsVariableName); 

我不想使用字符串,然后立即将它们转换为char*

0 个答案:

没有答案