我有这段代码:
class myClass
{
constexpr int x = 4;
};
在visual studio 2015上,我收到了这个错误:
'constexpr' is not valid here
为什么我收到此错误?我想要一个const静态变量,我可以在头文件中初始化它。
在下一步中,我想将我的类更改为模板,但此常量与clas的类型无关。
答案 0 :(得分:8)
非static
数据成员不能声明为constexpr
。使用
class myClass
{
static constexpr int x = 4;
};
代替。
答案 1 :(得分:1)
我想要一个const静态变量,我可以在头文件
上初始化它
如果您的主要关注点是可共享给所有模板类型实例的常量值,那么您只需更改为以下内容:
import { Query } from "react-apollo";
import gql from "graphql-tag";
const ExchangeRates = () => (
<Query
query={gql`
{
rates(currency: "USD") {
currency
rate
}
}
`}
>
{({ loading, error, data }) => {
if (loading) return <p>Loading...</p>;
if (error) return <p>Error :(</p>;
return data.rates.map(({ currency, rate }) => (
<div key={currency}>
<p>{`${currency}: ${rate}`}</p>
</div>
));
}}
</Query>
);
如果您关注的是内存空间(尽管它在所有实例之间共享),您可以使用编译预处理解决方案(即#Define X 4)