Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 元编程是否正在实际的c++;软件项目?_C++_Metaprogramming - Fatal编程技术网

C++ 元编程是否正在实际的c++;软件项目?

C++ 元编程是否正在实际的c++;软件项目?,c++,metaprogramming,C++,Metaprogramming,可能重复: 我知道C++中有提供元编程的库,比如Boost MPL。 但是它们在现实世界C++项目中是否有用(或者只是在罕见的情况下使用)?(我觉得元编程代码很奇怪,可能会产生难以调试的编译错误) 谢谢。当然有用。您是否使用过std::distance或std::advance?他们使用元编程为双向/随机访问迭代器做正确的事情。(即,对于双向迭代器重复++或-,对于随机访问迭代器重复+=或-) 对于需要对类型参数执行一项操作或对不同类型参数执行另一项操作(即距离/前进)的库,TMP最为有用 你

可能重复:

<>我知道C++中有提供元编程的库,比如Boost MPL。 但是它们在现实世界C++项目中是否有用(或者只是在罕见的情况下使用)?(我觉得元编程代码很奇怪,可能会产生难以调试的编译错误)


谢谢。当然有用。您是否使用过
std::distance
std::advance
?他们使用元编程为双向/随机访问迭代器做正确的事情。(即,对于双向迭代器重复++或-,对于随机访问迭代器重复+=或-)

对于需要对类型参数执行一项操作或对不同类型参数执行另一项操作(即距离/前进)的库,TMP最为有用


你是否可以用元编程做一些疯狂的事情(例如Boost::Spirit::Qi)?当然但这不是一般的情况。

Dup'ish:我不认为这是个骗局。这个问题问为什么会使用元编程,而这个问题问的是使用TMP的具体情况。是的,我想知道实际项目中使用Boost.MPL之类的东西的例子,但是链接确实很有用。