constexpr修饰符无效

时间:2014-05-22 12:38:33

标签: c++ gcc c++11 constexpr

我对constexpr功能有一些问题。 我想,用constexpr修饰符声明的任何函数都必须返回编译时常量,但实际上它并不起作用。 (Eclipse + MinGW,gcc 4.8.1)

#include <ctime>
#include <iostream>

template<typename _Ty>
constexpr _Ty test_function(_Ty x) { return x; }

int main() {
    auto x = time(0);
    std::cout << test_function(x) << std::endl;

    return 0;
}

显然,x不是编译时常量,但是这段代码编译得很好,就好像test_function没有constexpr修饰符一样。有谁知道为什么?

0 个答案:

没有答案