相关疑难解决方法(0)

353
推荐指数
18
解决办法
30万
查看次数

类型安全的字符串参数

我的库以字符串的形式从消息总线获取信息.这些字符串是需要处理的不同类型实体的标识符.

Currenly方法可能如下所示:

void doWork(const std::string& carModelId,
            const std::string& dealershipId,
            const std::string& invoiceId);

float getPrice(const std::string& carModelId, 
               const std::string& dealershipId);
Run Code Online (Sandbox Code Playgroud)

由于这些不同类型的ID遍布各处,我想确保将正确类型的id传递给方法,而不是使用普通字符串.

我目前的想法是创建一些包裹这些字符串的结构

struct carModel
{
     std::string id;
}
Run Code Online (Sandbox Code Playgroud)

这样这些方法只接受正确的id类型

void doWork(const carModel& carModelId,
            const dealership& dealershipId,
            const invoice& invoiceId);
Run Code Online (Sandbox Code Playgroud)

另一方面,对于常见问题,这似乎是许多额外的样板代码.

问题:获取字符串参数的类型安全性的最佳实践是什么?

c++ type-safety

5
推荐指数
1
解决办法
394
查看次数

标签 统计

c++ ×2

c++11 ×1

type-safety ×1

typeof ×1

variables ×1