【发布时间】:2019-02-09 04:53:37
【问题描述】:
我的 C++ 代码中有一些带有绑定的 SQL 查询,这些查询是 static const std::string,因为这些查询很复杂,很容易在某些细节上出错。我想在编译时做一些非常基本的检查,例如计算逗号或: 字符的数量。
【问题讨论】:
-
您可以通过
constexpr函数和元编程来实现这一点 -
我可以建议两种常用的替代方案,而不是在编译时向后弯腰完成这项工作(大概是因为您害怕这些检查可能对性能产生影响)? 1) 仅针对应用程序的调试版本对这些检查进行条件编译 (
#ifndef NDEBUG ...)。您在开发过程中得到检查,对发布性能没有任何影响。 2) 测量、优化、测量。与 SQL 连接/查询相比,某些字符串检查很可能花费很少的、可忽略的时间。您甚至可能有性能问题。 -
@DevSolar 我认为早期错误检查是在编译时解析的真正原因,而不是性能。 OP 实际上是这么说的:“我想在编译时做一些非常基本的检查”
标签: c++ string parsing compilation-time