Expected primary-expression before ‘&’ token
up vote
-1
down vote
favorite
I receive this error that makes it difficult for me to continue coding, because I tried and tried to solve it and was unable to understand what the error means (I looked at similar questions in Stackoverflow).
I do not understand why, if I declare a set of Node objects as a type of data, I get these errors, code:
point p(p.get_x(),p.get_y());
Node a(p,0);
set<Node&> visited_nodes;
The error:
error: expected primary-expression before ‘&’ token
set<Node&> visited_nodes;
^
error: expected primary-expression before ‘>’ token
set<Node&> visited_nodes;
Thanks
c++ oop object compilation set
add a comment |
up vote
-1
down vote
favorite
I receive this error that makes it difficult for me to continue coding, because I tried and tried to solve it and was unable to understand what the error means (I looked at similar questions in Stackoverflow).
I do not understand why, if I declare a set of Node objects as a type of data, I get these errors, code:
point p(p.get_x(),p.get_y());
Node a(p,0);
set<Node&> visited_nodes;
The error:
error: expected primary-expression before ‘&’ token
set<Node&> visited_nodes;
^
error: expected primary-expression before ‘>’ token
set<Node&> visited_nodes;
Thanks
c++ oop object compilation set
Please provide a Minimal, Complete, and Verifiable example. The best anyone can do right now is guess.
– chris
Nov 11 at 22:14
2
I would guess you either need to#include <set>orusing std::set.
– aschepler
Nov 11 at 22:39
@aschleper, set library already included before i post the question. Thanks
– AER
Nov 11 at 22:42
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
I receive this error that makes it difficult for me to continue coding, because I tried and tried to solve it and was unable to understand what the error means (I looked at similar questions in Stackoverflow).
I do not understand why, if I declare a set of Node objects as a type of data, I get these errors, code:
point p(p.get_x(),p.get_y());
Node a(p,0);
set<Node&> visited_nodes;
The error:
error: expected primary-expression before ‘&’ token
set<Node&> visited_nodes;
^
error: expected primary-expression before ‘>’ token
set<Node&> visited_nodes;
Thanks
c++ oop object compilation set
I receive this error that makes it difficult for me to continue coding, because I tried and tried to solve it and was unable to understand what the error means (I looked at similar questions in Stackoverflow).
I do not understand why, if I declare a set of Node objects as a type of data, I get these errors, code:
point p(p.get_x(),p.get_y());
Node a(p,0);
set<Node&> visited_nodes;
The error:
error: expected primary-expression before ‘&’ token
set<Node&> visited_nodes;
^
error: expected primary-expression before ‘>’ token
set<Node&> visited_nodes;
Thanks
c++ oop object compilation set
c++ oop object compilation set
edited Nov 11 at 22:35
Matthieu Brucher
9,80421834
9,80421834
asked Nov 11 at 22:12
AER
1117
1117
Please provide a Minimal, Complete, and Verifiable example. The best anyone can do right now is guess.
– chris
Nov 11 at 22:14
2
I would guess you either need to#include <set>orusing std::set.
– aschepler
Nov 11 at 22:39
@aschleper, set library already included before i post the question. Thanks
– AER
Nov 11 at 22:42
add a comment |
Please provide a Minimal, Complete, and Verifiable example. The best anyone can do right now is guess.
– chris
Nov 11 at 22:14
2
I would guess you either need to#include <set>orusing std::set.
– aschepler
Nov 11 at 22:39
@aschleper, set library already included before i post the question. Thanks
– AER
Nov 11 at 22:42
Please provide a Minimal, Complete, and Verifiable example. The best anyone can do right now is guess.
– chris
Nov 11 at 22:14
Please provide a Minimal, Complete, and Verifiable example. The best anyone can do right now is guess.
– chris
Nov 11 at 22:14
2
2
I would guess you either need to
#include <set> or using std::set.– aschepler
Nov 11 at 22:39
I would guess you either need to
#include <set> or using std::set.– aschepler
Nov 11 at 22:39
@aschleper, set library already included before i post the question. Thanks
– AER
Nov 11 at 22:42
@aschleper, set library already included before i post the question. Thanks
– AER
Nov 11 at 22:42
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
You cannot store references at containers. You should store pointers or the objects.
EDIT:
After chat session, we discovered the cause.
He was having a name conflict due to using namespace std;.
So I proposed:
std::set<Node> visited_nodes;
And the error dissapeared.
2
While true, the question is about a syntax error.
– chris
Nov 11 at 22:15
2
The error is related. As std::set is a templated class, I think the most clearer way to resolve his problem is to advice him that he cannot store references. More details can be confusing.
– LuisGP
Nov 11 at 22:34
3
I don't see how the error is related at all. It's perfectly legal syntax to pass a reference as a template argument and the compiler is getting hung up on parsing. The only reason this is a problem is due to specific requirements onstd::set(and other standard containers) about which types they support.
– chris
Nov 11 at 22:38
@LuisGP When i change it to that : set<Node> visited_nodes; , i get this error: expected primary-expression before ‘>’ token
– AER
Nov 11 at 22:38
@AER then probably @aschepler is right. Did you includedsetorusing std::set?
– LuisGP
Nov 11 at 22:40
|
show 5 more comments
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
You cannot store references at containers. You should store pointers or the objects.
EDIT:
After chat session, we discovered the cause.
He was having a name conflict due to using namespace std;.
So I proposed:
std::set<Node> visited_nodes;
And the error dissapeared.
2
While true, the question is about a syntax error.
– chris
Nov 11 at 22:15
2
The error is related. As std::set is a templated class, I think the most clearer way to resolve his problem is to advice him that he cannot store references. More details can be confusing.
– LuisGP
Nov 11 at 22:34
3
I don't see how the error is related at all. It's perfectly legal syntax to pass a reference as a template argument and the compiler is getting hung up on parsing. The only reason this is a problem is due to specific requirements onstd::set(and other standard containers) about which types they support.
– chris
Nov 11 at 22:38
@LuisGP When i change it to that : set<Node> visited_nodes; , i get this error: expected primary-expression before ‘>’ token
– AER
Nov 11 at 22:38
@AER then probably @aschepler is right. Did you includedsetorusing std::set?
– LuisGP
Nov 11 at 22:40
|
show 5 more comments
up vote
1
down vote
accepted
You cannot store references at containers. You should store pointers or the objects.
EDIT:
After chat session, we discovered the cause.
He was having a name conflict due to using namespace std;.
So I proposed:
std::set<Node> visited_nodes;
And the error dissapeared.
2
While true, the question is about a syntax error.
– chris
Nov 11 at 22:15
2
The error is related. As std::set is a templated class, I think the most clearer way to resolve his problem is to advice him that he cannot store references. More details can be confusing.
– LuisGP
Nov 11 at 22:34
3
I don't see how the error is related at all. It's perfectly legal syntax to pass a reference as a template argument and the compiler is getting hung up on parsing. The only reason this is a problem is due to specific requirements onstd::set(and other standard containers) about which types they support.
– chris
Nov 11 at 22:38
@LuisGP When i change it to that : set<Node> visited_nodes; , i get this error: expected primary-expression before ‘>’ token
– AER
Nov 11 at 22:38
@AER then probably @aschepler is right. Did you includedsetorusing std::set?
– LuisGP
Nov 11 at 22:40
|
show 5 more comments
up vote
1
down vote
accepted
up vote
1
down vote
accepted
You cannot store references at containers. You should store pointers or the objects.
EDIT:
After chat session, we discovered the cause.
He was having a name conflict due to using namespace std;.
So I proposed:
std::set<Node> visited_nodes;
And the error dissapeared.
You cannot store references at containers. You should store pointers or the objects.
EDIT:
After chat session, we discovered the cause.
He was having a name conflict due to using namespace std;.
So I proposed:
std::set<Node> visited_nodes;
And the error dissapeared.
edited Nov 11 at 23:08
answered Nov 11 at 22:14
LuisGP
336110
336110
2
While true, the question is about a syntax error.
– chris
Nov 11 at 22:15
2
The error is related. As std::set is a templated class, I think the most clearer way to resolve his problem is to advice him that he cannot store references. More details can be confusing.
– LuisGP
Nov 11 at 22:34
3
I don't see how the error is related at all. It's perfectly legal syntax to pass a reference as a template argument and the compiler is getting hung up on parsing. The only reason this is a problem is due to specific requirements onstd::set(and other standard containers) about which types they support.
– chris
Nov 11 at 22:38
@LuisGP When i change it to that : set<Node> visited_nodes; , i get this error: expected primary-expression before ‘>’ token
– AER
Nov 11 at 22:38
@AER then probably @aschepler is right. Did you includedsetorusing std::set?
– LuisGP
Nov 11 at 22:40
|
show 5 more comments
2
While true, the question is about a syntax error.
– chris
Nov 11 at 22:15
2
The error is related. As std::set is a templated class, I think the most clearer way to resolve his problem is to advice him that he cannot store references. More details can be confusing.
– LuisGP
Nov 11 at 22:34
3
I don't see how the error is related at all. It's perfectly legal syntax to pass a reference as a template argument and the compiler is getting hung up on parsing. The only reason this is a problem is due to specific requirements onstd::set(and other standard containers) about which types they support.
– chris
Nov 11 at 22:38
@LuisGP When i change it to that : set<Node> visited_nodes; , i get this error: expected primary-expression before ‘>’ token
– AER
Nov 11 at 22:38
@AER then probably @aschepler is right. Did you includedsetorusing std::set?
– LuisGP
Nov 11 at 22:40
2
2
While true, the question is about a syntax error.
– chris
Nov 11 at 22:15
While true, the question is about a syntax error.
– chris
Nov 11 at 22:15
2
2
The error is related. As std::set is a templated class, I think the most clearer way to resolve his problem is to advice him that he cannot store references. More details can be confusing.
– LuisGP
Nov 11 at 22:34
The error is related. As std::set is a templated class, I think the most clearer way to resolve his problem is to advice him that he cannot store references. More details can be confusing.
– LuisGP
Nov 11 at 22:34
3
3
I don't see how the error is related at all. It's perfectly legal syntax to pass a reference as a template argument and the compiler is getting hung up on parsing. The only reason this is a problem is due to specific requirements on
std::set (and other standard containers) about which types they support.– chris
Nov 11 at 22:38
I don't see how the error is related at all. It's perfectly legal syntax to pass a reference as a template argument and the compiler is getting hung up on parsing. The only reason this is a problem is due to specific requirements on
std::set (and other standard containers) about which types they support.– chris
Nov 11 at 22:38
@LuisGP When i change it to that : set<Node> visited_nodes; , i get this error: expected primary-expression before ‘>’ token
– AER
Nov 11 at 22:38
@LuisGP When i change it to that : set<Node> visited_nodes; , i get this error: expected primary-expression before ‘>’ token
– AER
Nov 11 at 22:38
@AER then probably @aschepler is right. Did you included
set or using std::set?– LuisGP
Nov 11 at 22:40
@AER then probably @aschepler is right. Did you included
set or using std::set?– LuisGP
Nov 11 at 22:40
|
show 5 more comments
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53253761%2fexpected-primary-expression-before-token%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Please provide a Minimal, Complete, and Verifiable example. The best anyone can do right now is guess.
– chris
Nov 11 at 22:14
2
I would guess you either need to
#include <set>orusing std::set.– aschepler
Nov 11 at 22:39
@aschleper, set library already included before i post the question. Thanks
– AER
Nov 11 at 22:42