mypair, constructor, constexpr
От: niXman Ниоткуда https://github.com/niXman
Дата: 07.05.15 07:16
Оценка:
привет!

есть такой код, который не хочет компиляться:
template<typename V>
struct pair {
    constexpr pair(const char *k, V &v)
        :k(k)
        ,v(v)
    {}

    const char *k;
    V &v;
};

template<typename V>
constexpr pair<V> json_pair(const char *k, V &v) {
    return pair<V>{k, v};
}

int main() {
    int i;
    constexpr auto p0 = json_pair("i", i);
}

говорит:

'pair<int>{((const char*)"i"), i}' is not a constant expression

constexpr я таки недоучил, и хз, что я делю не так...
хотя, есть подозрение, что оно и не должно работать ввиду того, что i(второй аргумент для json_pair()) — не constexpr...


спасибо!
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.