如何在C ++中使用BOOST_AUTO模拟'const auto'?

时间:2014-03-17 15:30:37

标签: c++ c++11 boost

使用BOOST_AUTO宏,我们可以模拟在C ++ 11之前不可用的auto关键字:

BOOST_AUTO( var, 1 + 2 ); // int var = 3
auto var = 1 + 2; // the same in C++11

有没有办法模仿const auto

const auto var = 1 + 2; // const int var = 3

1 个答案:

答案 0 :(得分:5)

你可以只包括"尾随"常量:

#include <boost/typeof/typeof.hpp>

int main()
{
    BOOST_AUTO(const x, 42);

    static_assert(std::is_const<decltype(x)>(), "weehoo");
}

由于许多原因,尾随位置是const限定符的唯一一致位置。这是其中之一:)