Click here to Skip to main content
14,331,729 members

C / C++ / MFC

 
GeneralRe: error C2059 Pin
Richard MacCutchan20-Aug-19 21:56
protectorRichard MacCutchan20-Aug-19 21:56 
GeneralRe: error C2059 Pin
CPallini20-Aug-19 6:46
mveCPallini20-Aug-19 6:46 
GeneralRe: error C2059 Pin
_Flaviu20-Aug-19 21:42
member_Flaviu20-Aug-19 21:42 
GeneralRe: error C2059 Pin
CPallini20-Aug-19 21:59
mveCPallini20-Aug-19 21:59 
QuestionRe: error C2059 Pin
David Crow20-Aug-19 3:09
memberDavid Crow20-Aug-19 3:09 
AnswerRe: error C2059 Pin
_Flaviu20-Aug-19 3:32
member_Flaviu20-Aug-19 3:32 
QuestionRe: error C2059 Pin
David Crow20-Aug-19 3:35
memberDavid Crow20-Aug-19 3:35 
AnswerRe: error C2059 Pin
speedbump9920-Aug-19 9:01
memberspeedbump9920-Aug-19 9:01 
This is a combination of all of the above responses.
I have compiled this in mfc and it works.

struct data {
int something;
};
struct container {
int something_before;
struct data data_item;
int something_after;
};
#define list_entry(ptr, type, member) \
((type *)((char *)(ptr)-(size_t)(&((type *)0)->member))) // <-- here is the error ...
struct data *data_ptr;
struct container *cont_ptr = list_entry(data_ptr, struct container, data_item);


// This is the code you say is not compiling.
#define list_next_entry(pos, member) list_entry(0, 0, 0)
// This error is caused by the above line because list_entry(0,0,0) '0' is not a valid data type.
const int nTest = list_next_entry(0, 0); // <-- error C2059: syntax error : ')'

// If you do this instead...
#define list_next_entry(pos, member) list_entry(data_ptr, struct container, data_item)
// You will get a new error you will have to resolve in some way.
// error C2440: 'initializing' : cannot convert from 'container *' to 'const int'
// 1> There is no context in which this conversion is possible
// The compiler can't convert a pointer to an int.
// Don't know what you are trying to do.
const int nTest = list_next_entry(0, 0);
GeneralRe: error C2059 Pin
_Flaviu20-Aug-19 22:04
member_Flaviu20-Aug-19 22:04 
GeneralRe: error C2059 Pin
_Flaviu20-Aug-19 22:14
member_Flaviu20-Aug-19 22:14 
GeneralRe: error C2059 Pin
Stefan_Lang20-Aug-19 22:31
memberStefan_Lang20-Aug-19 22:31 
GeneralRe: error C2059 Pin
_Flaviu20-Aug-19 23:22
member_Flaviu20-Aug-19 23:22 
GeneralRe: error C2059 Pin
_Flaviu20-Aug-19 23:28
member_Flaviu20-Aug-19 23:28 
GeneralRe: error C2059 Pin
_Flaviu20-Aug-19 23:39
member_Flaviu20-Aug-19 23:39 
GeneralRe: error C2059 Pin
Richard MacCutchan21-Aug-19 0:03
protectorRichard MacCutchan21-Aug-19 0:03 
GeneralRe: error C2059 Pin
_Flaviu21-Aug-19 0:52
member_Flaviu21-Aug-19 0:52 
GeneralRe: error C2059 Pin
Victor Nijegorodov21-Aug-19 2:08
memberVictor Nijegorodov21-Aug-19 2:08 
GeneralRe: error C2059 Pin
Victor Nijegorodov21-Aug-19 2:17
memberVictor Nijegorodov21-Aug-19 2:17 
GeneralRe: error C2059 Pin
_Flaviu21-Aug-19 2:38
member_Flaviu21-Aug-19 2:38 
GeneralRe: error C2059 Pin
Richard MacCutchan21-Aug-19 3:59
protectorRichard MacCutchan21-Aug-19 3:59 
GeneralRe: error C2059 Pin
_Flaviu21-Aug-19 20:50
member_Flaviu21-Aug-19 20:50 
GeneralRe: error C2059 Pin
Stefan_Lang21-Aug-19 5:24
memberStefan_Lang21-Aug-19 5:24 
GeneralRe: error C2059 Pin
_Flaviu21-Aug-19 21:45
member_Flaviu21-Aug-19 21:45 
GeneralRe: error C2059 Pin
Stefan_Lang21-Aug-19 21:51
memberStefan_Lang21-Aug-19 21:51 
GeneralRe: error C2059 Pin
_Flaviu21-Aug-19 23:53
member_Flaviu21-Aug-19 23:53 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.