Tôi có một chức năng constexpr mà trông giống như sau:Làm thế nào để báo cho static_assert rằng các đối số hàm constexpr là const?
constexpr int foo(int bar)
{
static_assert(bar>arbitrary_number, "Use a lower number please");
return something_const;
}
Tuy nhiên, biên dịch này với GCC 4.6.3 tiếp tục nói với tôi
lỗi: 'bar' không thể xuất hiện trong một hằng số thể hiện
tôi đã cố gắng một cái gì đó giống như
constexpr int foo(constexpr const int bar)
{
static_assert(bar>arbitrary_number, "Use a lower number please");
return something_const;
}
nhưng constexpr không thể được sử dụng cho các đối số chức năng.
Có cách nào đơn giản để nói với trình biên dịch rằng thanh luôn luôn là một hằng số thời gian biên dịch?
Rất tiếc, đã hoàn toàn quên mã hóa phần đó. Cảm ơn @Henrik – TravisG
Một hàm constexpr có thể được gọi với các đối số không const, nó chỉ đơn giản là mất đi sự constexpr'ness của nó. –
Cảm ơn, tôi không biết điều đó. – TravisG