|
George,
Consider the 'best-match' rule. Both functions are acceptable, but one of them has better match for arguments than the other; i.e. myfunc(int&) better matches to the given argument then myfunc(const int&).
--
=====
Arman
|
|
|
|
|
Thanks Arman,
But if we remove & and change code to the following segment,
int myfunc (int a) {return 100;}
int myfunc (const int a) {return 200;}
There will be duplicated defined function error. So I think the rules are,
1. (as you said) compiler allow more than one matched function exist, but has a priority to match them;
2. (as I showed above) for const reference and non-const reference, compiler will treat them of two different functions, but for non-const value and const value, compiler will treat them as same functions.
My conclusions (1) and (2) are correct?
regards,
George
|
|
|
|
|
Can we draw a colored rectangle (symbol) in a tootltip? I need a tooltip which displays multiline text, that is, each row(line)in the tooltip will have a colored rectangle and text displyed next to it.
|
|
|
|
|
|
You can put an icon in fancy new balloon tooltips (and I do so for a tray app I wrote).
But multilines with varous graphical symbols, you'll have to make your own window.
Have look at Paul DiLascia's June 2001 MSDN Magazine article, where he does a CPopupText window - and adapt it with as many pics as you can shake a stick at.
Iain.
Iain Clarke appearing in spite of being begged not to by CPallini.
|
|
|
|
|
Hello everyone,
For the MSDN sample,
http://msdn2.microsoft.com/en-us/library/2af6btx2.aspx
template <class U>
struct rebind { typedef stingyallocator<U> other; };
My question is, what is the purpose of defining an internal struct which has only a type? How to use it? Why class U is different from _Ty?
(I see similar code in STL internal implementation for allocator class, seems like a pattern which I do not know.)
thanks in advance,
George
|
|
|
|
|
There is the allocator::rebind documentation in MSDN.
Maxwell Chen
|
|
|
|
|
|
George_George wrote: So, I think the purpose of this pattern is to change the template parameter (input type parameter to outer struct) to another one?
I guess so. I traced vector class (VC++2005), and found it rebind the outer type, _Ty , again (type no change).
Maxwell Chen
|
|
|
|
|
Thanks Maxwell,
Question answered.
regards,
George
|
|
|
|
|
dear all
my problem is below, anyone help me to check, thanks a lot.
T,sigma,maskSize,halfSize are all declared.
for (int k=0;k<5;k++)
{
halfSize = static_cast<int>(sqrt(-log(T))*2*pow(sigma[k],2));
maskSize = 2*halfSize + 1;
int Mask[k][maskSize][maskSize];
int valueX[k][maskSize][maskSize];
int valueY[k][maskSize][maskSize];
}
error C2057: expected constant expression
error C2466: cannot allocate an array of constant size 0
so anyone help me. thanks
Li Zhiyuan
|
|
|
|
|
If you want to allocate an array from which you don't know the size at compile time (you only know it at runtime), then you need to use new.
It is quite basic C++ stuff and it is not the first time you ask that question (even if people already answered you). I think it would be great for you to learn C++ from the start. So, buy a good book and take some time to learn it correctly. You might spend some time on it but at the end, you will be much more efficient. Just an advice though...
|
|
|
|
|
thanks, i already bought c++ fifth edition book, but so few pages to introduce new and delete, any code or stuff are available for me? thanks a lot
Li Zhiyuan
|
|
|
|
|
Which part of "Read the forum guidelines" do you not understand?
Each time you use these idiotic subject lines "Need Help", "Urgent!!!!! Help!!!!!!!!!!!!!!!!!", etc. you are told to use subject lines that actually describe the problem briefly but you simply refuse to do that. Not to mention that this has been going on for almost 2 years.
What is your malfunction?
|
|
|
|
|
thanks sir.do you have any such stuff or code? thanks
Li Zhiyuan
|
|
|
|
|
int** myArray;
myArray = new int*[10];
for (int i=0;i<10;i++)
{
myArray[i] = new int[20];
}
So, now you have a 2D array. Don't forget to delete everything once you are done. Here the same applies: you need to delete each row first and then delete the root pointer. I leave you that as an exercice to see if you understand the concept .
|
|
|
|
|
what about vector vector combination!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/codeProject$$>
|
|
|
|
|
Cranky wrote: Not to mention that this has been going on for almost 2 years.
But, I think he is not a native English speaker. However, 2 years into CP and that won't make an excuse.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Hi all,
I have some CTreeCtrl that i using in my Dialog application.
And i want to insert 20 item into the tree.
The text of the item is "item %d as tree item" - and i want to insert each item as the last item in the tree.
But in fact - i getting tree like this
Father item
"item 1 as tree item"
"item 2 as tree item"
"item 11 as tree item"
"item 12 as tree item"
.
. //until 20
.
"item 3 as tree item"
"item 4 as tree item"
"item 5 as tree item"
"item 6 as tree item"
.
. //until 10
.
My problem is that i want to insert each item as sort item.
I try to insert with parameter the hInsertAfter - and i try to use TVI_LAST and TVI_FIRST
But nothing help.
Thanks for any help.
|
|
|
|
|
Here's the code I use to fill in a tree:
BOOL BlahFillInTree (someparams, CUITreeCtrl &Tree, HTREEITEM hParent)
{
HTREEITEM hChild;
int i, j;
CString s;
TVINSERTSTRUCTW tvInsert;
memset (&tvInsert, 0, sizeof (tvInsert));
tvInsert.hInsertAfter = TVI_LAST;
tvInsert.item.mask = TVIF_PARAM | TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
tvInsert.item.iSelectedImage = tvInsert.item.iImage = 0;
for (i = 0; i < m_DevArray.GetSize (); i++)
{
hChild = Tree.InsertItem (m_DevArray [i].Name, hParent);
tvInsert.hParent = hChild;
tvInsert.item.iSelectedImage = tvInsert.item.iImage = 0;
for (j = 0; j < 16; j++)
{
tvInsert.item.lParam = m_DevArray [i].dwCode [j];
s = SomeGetCommandStringFunction (tvInsert.item.lParam);
tvInsert.item.pszText = (LPTSTR)(LPCTSTR)s;
tvInsert.item.iSelectedImage = tvInsert.item.iImage = SomeGetCommandImageFunction (tvInsert.item.lParam);
Tree.InsertItem (&tvInsert);
}
}
return TRUE;
}
Also, try:
Tree.InsertItem ("A", TVI_ROOT, TVI_LAST );
Tree.InsertItem ("Z", TVI_ROOT, TVI_LAST);
Tree.InsertItem ("C", TVI_ROOT, TVI_LAST);
Iain Clarke appearing in spite of being begged not to by CPallini.
|
|
|
|
|
As i said .. The solution that you gave me ( Tree.InsertItem ("A", TVI_ROOT, TVI_LAST ); ) is not working - and i really don't know way.
The first solution i try also - ( using "insertafter" ) and its also does not working at all.
|
|
|
|
|
The first bit of code I gave you, uses the TVINSERTSTRUCT directly - the second uses one of the overload versions in CTreeCtrl.
I've looked, and I can't find any TVS_SORT, so I'm a bit stuck too.
The only suggestion I have is to raw...
TVINSERTSTRUCT tvis = {0};
tvis.hParent = TVI_ROOT;
tvis.hInsertAfter = TVI_LAST;
tvis.tvItem.mask = TVIF_TEXT;
tvis.tvItem.pszTest = _T("A");
SendDlgItemMessage (IDC_MYTREE, TVM_INSERTITEM, 0, (LPARAM)&tvis);
tvis.tvItem.pszTest = _T("Z");
SendDlgItemMessage (IDC_MYTREE, TVM_INSERTITEM, 0, (LPARAM)&tvis);
tvis.tvItem.pszTest = _T("C");
SendDlgItemMessage (IDC_MYTREE, TVM_INSERTITEM, 0, (LPARAM)&tvis);
And see how that turns out. It might be worth looking at the header files to see the value of TVI_SORT, so you can make sure it's not being used when you single step through the above code.
If this works, you can then see how your code deviates from it, but stepping into the CTreeCtrl::InsertItem member function.
Iain.
Iain Clarke appearing in spite of being begged not to by CPallini.
|
|
|
|
|
Hi Experts,
I am filling a file content with Zero and renamed it and Delete it.
but when I rename the file and try to delete it, file file's lost contents are come back.
If I do not Rename the file everything is fine.
Its like
1.Fill content with Zero
2. szString=RenameFile(szString)
3. DeleteFile(szString);
Note:- I am rename(0 API to Rename file.
But I put a Sleep(2000) in between 2 and 3 It works well but get slow.
Is there any workaround?
Thank You.
|
|
|
|
|
pther wrote: I am filling a file content with Zero and renamed it and Delete it.
Why would you modify the contents of a file and rename it, which you are going to delete? What exactly are you trying to do?
pther wrote: But I put a Sleep(2000) in between 2 and 3 It works well but get slow.
Sleep[^]is defined as:
A computer program (process or task) may sleep, which places it into an inactive state for a period of time.
Eventually the expiration of an interval timer, or the receipt of a signal or interrupt causes the program to resume execution. What else would you expect if you use Sleep command?
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
I want to overwrite the file content,and want to change the file name also and delete the modified file path.
Overwritten is going finr but when i rename the file and delete it its prevoius contents are coming back.
If I put Sleep() after rename, I think system make some updation in file system and it successfully does the required task.
|
|
|
|