↑ ↓ ← → "Aneesh Dalvi" <aneesh tolv.ca>
writes:
Does anyone know why the following code fails with the DMC compiler?
std::cout << __FUNCTION__ << std::endl;
This works with GCC and MSVC++.
__FUNCTION__ seems to be recognized by DMC, but still the code does not
compile.
Thanks
↑ ↓ ← → Jerry van Dijk <windows jvdsys.demon.nl>
writes:
"Aneesh Dalvi" <aneesh tolv.ca> writes:
Does anyone know why the following code fails with the DMC compiler?
std::cout << __FUNCTION__ << std::endl;
It works here with 8.38n and using stlport 4.5.3:
-------------------------------------------------------------------------------
D:\work>dir
Volume in drive D is WorkDisk
Volume Serial Number is 883F-94F1
Directory of D:\work
05-06-2004 00:20 <DIR> .
05-06-2004 00:20 <DIR> ..
05-06-2004 00:13 97 check.cpp
1 File(s) 97 bytes
2 Dir(s) 15.658.946.560 bytes free
D:\work>cat check.cpp
#include <iostream>
using namespace std;
int main()
{
cout << __FUNCTION__ << endl;
}
D:\work>dmc check.cpp
link check,,,user32+kernel32/noi;
D:\work>dir
Volume in drive D is WorkDisk
Volume Serial Number is 883F-94F1
Directory of D:\work
05-06-2004 00:20 <DIR> .
05-06-2004 00:20 <DIR> ..
05-06-2004 00:13 97 check.cpp
05-06-2004 00:20 361.500 check.exe
05-06-2004 00:20 2.204 check.map
05-06-2004 00:20 28.275 check.obj
4 File(s) 392.076 bytes
2 Dir(s) 15.658.549.248 bytes free
D:\work>check
main
-------------------------------------------------------------------------------
Also checking if I have setup news properly :-)
--
-- Jerry van Dijk
-- Leiden, Holland
↑ ↓ ← → "Aneesh Dalvi" <aneesh tolv.ca>
writes:
Yes, this works:
#include <iostream>
int main() {
std::cout << __FUNCTION__ << std::endl;
return 0;
}
However, this does not:
#include <iostream>
class test {
public:
test() { std::cout << __FUNCTION__ << std::endl; }
};
int main() {
test x;
return 0;
}
C:\projects>c:\dm\bin\dmc -cpp -Ic:\dm\stlport\stlport test2.cc
test2.cc(5) : Error: expression expected
test2.cc(5) : Warning 6: value of expression is not used
--- errorlevel 1
- aneesh
"Jerry van Dijk" <windows jvdsys.demon.nl> wrote in message
news:ullj37yn1.fsf jvdsys.demon.nl...
"Aneesh Dalvi" <aneesh tolv.ca> writes:
Does anyone know why the following code fails with the DMC compiler?
std::cout << __FUNCTION__ << std::endl;
It works here with 8.38n and using stlport 4.5.3:
--------------------------------------------------------------------------
D:\work>dir
Volume in drive D is WorkDisk
Volume Serial Number is 883F-94F1
Directory of D:\work
05-06-2004 00:20 <DIR> .
05-06-2004 00:20 <DIR> ..
05-06-2004 00:13 97 check.cpp
1 File(s) 97 bytes
2 Dir(s) 15.658.946.560 bytes free
D:\work>cat check.cpp
#include <iostream>
using namespace std;
int main()
{
cout << __FUNCTION__ << endl;
}
D:\work>dmc check.cpp
link check,,,user32+kernel32/noi;
D:\work>dir
Volume in drive D is WorkDisk
Volume Serial Number is 883F-94F1
Directory of D:\work
05-06-2004 00:20 <DIR> .
05-06-2004 00:20 <DIR> ..
05-06-2004 00:13 97 check.cpp
05-06-2004 00:20 361.500 check.exe
05-06-2004 00:20 2.204 check.map
05-06-2004 00:20 28.275 check.obj
4 File(s) 392.076 bytes
2 Dir(s) 15.658.549.248 bytes free
D:\work>check
main
--------------------------------------------------------------------------
Also checking if I have setup news properly :-)
--
-- Jerry van Dijk
-- Leiden, Holland
↑ ↓ ← → Jerry van Dijk <windows jvdsys.demon.nl>
writes:
"Aneesh Dalvi" <aneesh tolv.ca> writes:
However, this does not:
#include <iostream>
class test {
public:
test() { std::cout << __FUNCTION__ << std::endl; }
};
int main() {
test x;
return 0;
}
Even worse, this does:
-------------------------------------------------------------
#include <iostream>
class test {
public:
inline test();
inline ~test();
};
test::test() {
std::cout << __FUNCTION__ << std::endl;
} inline ~test();
test::~test() {
std::cout << __FUNCTION__ << std::endl;
}
int main() {
test x;
}
------------------------------------------------------------
Since the dmc docs say:
| __FUNCTION__
|
| Same as __FUNC__. Provided for Gnu CC compatibility.
it could be a bug if "Gnu CC" is also intended to mean gcc c++.
Note also that the output of __FUNCTION__ differs from gcc:
gcc prints: dmc prints:
test test::test
~test test::~test
--
-- Jerry van Dijk
-- Leiden, Holland