[ Nedeljko @ 29.12.2004. 23:54 ] @
| Imam sledeći kod:
Code:
#include <iostream>
#include <set>
using namespace std;
template <class T>
class a
{
public:
struct b { T x; };
static set<a::b> s;
};
template <class T> set<a<T>::b> a<T>::s;
int main()
{
a<int>::b c;
c.x = 8;
cout << c.x << endl;
return 0;
}
g++ mi prijavljuje upozorenje
Code:
imp.cpp: 15 warning: `a<T>::b' is implicitly a typename
imp.cpp: 15 warning: implicit typename is deprecated, please see
documentation for details
Šta to znači? |
[ zvrba @ 30.12.2004. 07:12 ] @
to znaci da kompajleru moras eksplicitno dati do znanja da je u pitanju tip, a ne npr. neki member. znaci pises
set<typename a<T>::b>
e sad zakaj je to tak napravljeno.. zato kaj ima nekih ambiguous slucajeva u gramatici C++-a i kompajler ne moze uvijek zakljuciti o cemu se radi. valjda :)
[ Nedeljko @ 06.01.2005. 00:05 ] @
A zašto mi GNU kompajleri za Linux izbacuju upozorenja svaki put kad na kraju source fajla nemam prazan red?
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.