Click here to Skip to main content
14,732,523 members
Home » Discussions » C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: error C2059 Pin
Richard MacCutchan20-Aug-19 22:56
mveRichard MacCutchan20-Aug-19 22:56 
GeneralRe: error C2059 Pin
CPallini20-Aug-19 7:46
mveCPallini20-Aug-19 7:46 
GeneralRe: error C2059 Pin
_Flaviu20-Aug-19 22:42
Member_Flaviu20-Aug-19 22:42 
GeneralRe: error C2059 Pin
CPallini20-Aug-19 22:59
mveCPallini20-Aug-19 22:59 
QuestionRe: error C2059 Pin
David Crow20-Aug-19 4:09
MemberDavid Crow20-Aug-19 4:09 
AnswerRe: error C2059 Pin
_Flaviu20-Aug-19 4:32
Member_Flaviu20-Aug-19 4:32 
QuestionRe: error C2059 Pin
David Crow20-Aug-19 4:35
MemberDavid Crow20-Aug-19 4:35 
AnswerRe: error C2059 Pin
mo149220-Aug-19 10:01
Membermo149220-Aug-19 10: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 23:04
Member_Flaviu20-Aug-19 23:04 
GeneralRe: error C2059 Pin
_Flaviu20-Aug-19 23:14
Member_Flaviu20-Aug-19 23:14 
GeneralRe: error C2059 Pin
Stefan_Lang20-Aug-19 23:31
mveStefan_Lang20-Aug-19 23:31 
GeneralRe: error C2059 Pin
_Flaviu21-Aug-19 0:22
Member_Flaviu21-Aug-19 0:22 
GeneralRe: error C2059 Pin
_Flaviu21-Aug-19 0:28
Member_Flaviu21-Aug-19 0:28 
GeneralRe: error C2059 Pin
_Flaviu21-Aug-19 0:39
Member_Flaviu21-Aug-19 0:39 
GeneralRe: error C2059 Pin
Richard MacCutchan21-Aug-19 1:03
mveRichard MacCutchan21-Aug-19 1:03 
GeneralRe: error C2059 Pin
_Flaviu21-Aug-19 1:52
Member_Flaviu21-Aug-19 1:52 
GeneralRe: error C2059 Pin
Victor Nijegorodov21-Aug-19 3:08
MemberVictor Nijegorodov21-Aug-19 3:08 
GeneralRe: error C2059 Pin
Victor Nijegorodov21-Aug-19 3:17
MemberVictor Nijegorodov21-Aug-19 3:17 
GeneralRe: error C2059 Pin
_Flaviu21-Aug-19 3:38
Member_Flaviu21-Aug-19 3:38 
GeneralRe: error C2059 Pin
Richard MacCutchan21-Aug-19 4:59
mveRichard MacCutchan21-Aug-19 4:59 
GeneralRe: error C2059 Pin
_Flaviu21-Aug-19 21:50
Member_Flaviu21-Aug-19 21:50 
GeneralRe: error C2059 Pin
Stefan_Lang21-Aug-19 6:24
mveStefan_Lang21-Aug-19 6:24 
GeneralRe: error C2059 Pin
_Flaviu21-Aug-19 22:45
Member_Flaviu21-Aug-19 22:45 
GeneralRe: error C2059 Pin
Stefan_Lang21-Aug-19 22:51
mveStefan_Lang21-Aug-19 22:51 
GeneralRe: error C2059 Pin
_Flaviu22-Aug-19 0:53
Member_Flaviu22-Aug-19 0: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.