C ++, адрес участника - PullRequest
       21

C ++, адрес участника

0 голосов
/ 01 марта 2011

Я пытаюсь заставить nvcc (g ++ / EDG) нормально играть с последней надстройкой

template<typename U>                                        \
   static false_type has_member(tester<&U::member_name>*); \

дает

/opt/boost/include/boost/thread/locks.hpp:65: error: ‘&’ cannot appear in a constant-expression
/opt/boost/include/boost/thread/locks.hpp:65: error: template argument 1 is invalid

есть идеи как это исправить?

1 Ответ

1 голос
/ 02 марта 2011

Какую версию nvcc вы используете?

Я попытался воспроизвести ошибку в следующем более простом случае, но это удалось при компиляции (CUDA 3.2):

#include <stdio.h>

class Test {
public:
    int x;
};

template <int Test::*S>
class Template {
};

template <typename T>
class Run {
    Template<&T::x> foo;
};

int main() {
    Run<Test> foo;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...