Expected primary-expression before ‘&’ token
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 |
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 '18 at 22:14
2
I would guess you either need to#include <set>
orusing std::set
.
– aschepler
Nov 11 '18 at 22:39
@aschleper, set library already included before i post the question. Thanks
– AER
Nov 11 '18 at 22:42
add a comment |
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 '18 at 22:35
Matthieu Brucher
15.6k32140
15.6k32140
asked Nov 11 '18 at 22:12
AERAER
11317
11317
Please provide a Minimal, Complete, and Verifiable example. The best anyone can do right now is guess.
– chris
Nov 11 '18 at 22:14
2
I would guess you either need to#include <set>
orusing std::set
.
– aschepler
Nov 11 '18 at 22:39
@aschleper, set library already included before i post the question. Thanks
– AER
Nov 11 '18 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 '18 at 22:14
2
I would guess you either need to#include <set>
orusing std::set
.
– aschepler
Nov 11 '18 at 22:39
@aschleper, set library already included before i post the question. Thanks
– AER
Nov 11 '18 at 22:42
Please provide a Minimal, Complete, and Verifiable example. The best anyone can do right now is guess.
– chris
Nov 11 '18 at 22:14
Please provide a Minimal, Complete, and Verifiable example. The best anyone can do right now is guess.
– chris
Nov 11 '18 at 22:14
2
2
I would guess you either need to
#include <set>
or using std::set
.– aschepler
Nov 11 '18 at 22:39
I would guess you either need to
#include <set>
or using std::set
.– aschepler
Nov 11 '18 at 22:39
@aschleper, set library already included before i post the question. Thanks
– AER
Nov 11 '18 at 22:42
@aschleper, set library already included before i post the question. Thanks
– AER
Nov 11 '18 at 22:42
add a comment |
1 Answer
1
active
oldest
votes
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 '18 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 '18 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 '18 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 '18 at 22:38
@AER then probably @aschepler is right. Did you includedset
orusing std::set
?
– LuisGP
Nov 11 '18 at 22:40
|
show 5 more comments
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
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
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
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 '18 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 '18 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 '18 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 '18 at 22:38
@AER then probably @aschepler is right. Did you includedset
orusing std::set
?
– LuisGP
Nov 11 '18 at 22:40
|
show 5 more comments
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 '18 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 '18 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 '18 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 '18 at 22:38
@AER then probably @aschepler is right. Did you includedset
orusing std::set
?
– LuisGP
Nov 11 '18 at 22:40
|
show 5 more comments
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 '18 at 23:08
answered Nov 11 '18 at 22:14
LuisGPLuisGP
371110
371110
2
While true, the question is about a syntax error.
– chris
Nov 11 '18 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 '18 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 '18 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 '18 at 22:38
@AER then probably @aschepler is right. Did you includedset
orusing std::set
?
– LuisGP
Nov 11 '18 at 22:40
|
show 5 more comments
2
While true, the question is about a syntax error.
– chris
Nov 11 '18 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 '18 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 '18 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 '18 at 22:38
@AER then probably @aschepler is right. Did you includedset
orusing std::set
?
– LuisGP
Nov 11 '18 at 22:40
2
2
While true, the question is about a syntax error.
– chris
Nov 11 '18 at 22:15
While true, the question is about a syntax error.
– chris
Nov 11 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 at 22:38
@AER then probably @aschepler is right. Did you included
set
or using std::set
?– LuisGP
Nov 11 '18 at 22:40
@AER then probably @aschepler is right. Did you included
set
or using std::set
?– LuisGP
Nov 11 '18 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.
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 '18 at 22:14
2
I would guess you either need to
#include <set>
orusing std::set
.– aschepler
Nov 11 '18 at 22:39
@aschleper, set library already included before i post the question. Thanks
– AER
Nov 11 '18 at 22:42