Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
nou
![](images/avatars/7406709246ab60d263459.gif)
Založen: 28. 07. 2007 Příspěvky: 1047
|
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
Tringi
![](images/avatars/33452460646ab3c8e4ad26.png)
Založen: 28. 07. 2007 Příspěvky: 289
|
Zaslal: 18. listopad 2011, 21:48:44 Předmět: |
|
|
Herb Sutter je hodně dobrej ![Cool](images/smiles/icon_cool.gif) _________________ WWW | GitHub | TW |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
nou
![](images/avatars/7406709246ab60d263459.gif)
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 30. listopad 2011, 20:43:56 Předmět: |
|
|
som si dneska povedal ze vyskusam si pracu s nejakymi ficurkami z noveho C++11. tak som si naimplementoval jednoduchu triedu na signaly a sloty. by ma zaujimalo ci je to prelozitelne aj v najnovsom MSVC
kód: |
template<typename ... P>
class FunctionCall
{
public:
virtual void call(P...par)=0;
};
template<typename T, typename ... P>
class FunctionCallT : public FunctionCall<P...>
{
T *o;
void (T::*f)(P...);
public:
FunctionCallT(T &obj, void (T::*fun)(P...))
{
o = &obj;
f = fun;
}
void call(P...par)
{
(o->*f)(par...);
}
};
template <typename...P>
class Signal
{
map<void *,unique_ptr<FunctionCall<P...>>> cal;
public:
template<typename T>
void connect(T &o, void (T::*f)(P...))
{
cal[&o] = unique_ptr<FunctionCallT<T, P...>>(new FunctionCallT<T, P...>(o, f));
}
void disconnect(void *o)
{
cal.erase(o);
}
void operator()(P...par)
{
for(auto &i : cal)
i.second->call(par...);
}
};
|
cely kod: http://nopaste.ceske-hry.cz/223400 _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
pcmaster
![](images/avatars/26669701046dd3ed68e21f.jpg)
Založen: 28. 07. 2007 Příspěvky: 1823
|
Zaslal: 1. prosinec 2011, 10:06:57 Předmět: |
|
|
Este nie som s novou syntaxou oboznameny, ale:
ClCompile napsal: |
error C2143: syntax error : missing ',' before '...' |
na:
kód: |
template<typename T, typename ... P> |
Ta elipsa (tri bodky, ?) sa mu tam nepaci. MSVC 2010 bez SP. _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
nou
![](images/avatars/7406709246ab60d263459.gif)
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 1. prosinec 2011, 17:40:37 Předmět: |
|
|
hmm chvilka googlenia a vyzera to ze VS2010 zatial nepodporuje variadic templates. mozno s tym SP1 ano. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
Deluxe
![](images/avatars/20507655614c0935df437b0.jpg)
Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 1. prosinec 2011, 21:09:34 Předmět: |
|
|
nou: Na VS 2010 SP1 to same... jedine ze by se muselo nekde neco povolit (nebo pouzit nejaky prepinac...). |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
nou
![](images/avatars/7406709246ab60d263459.gif)
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 1. prosinec 2011, 22:33:50 Předmět: |
|
|
na gcc sa to musi povolit cez -std=c++0x
ale z C++11 je napriklad unique_ptr<> a for(auto &i : vec); takze ak zoberie to tak je C++11 povolene. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
Mnemonic
![](images/avatars/110928169946ab493c87a4a.gif)
Založen: 28. 07. 2007 Příspěvky: 93
|
Zaslal: 4. prosinec 2011, 19:33:07 Předmět: |
|
|
nou napsal: |
hmm chvilka googlenia a vyzera to ze VS2010 zatial nepodporuje variadic templates. mozno s tym SP1 ano. |
Podle tohohle nebude variadic templates podporovat ani VC11. Ale lidi začli dost řvát, tak třeba si to ještě MS rozmyslí. |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
nou
![](images/avatars/7406709246ab60d263459.gif)
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 4. prosinec 2011, 20:09:44 Předmět: |
|
|
no vyzera to ze GCC ma najkompletnejsiu podporu pre C++11 http://wiki.apache.org/stdcxx/C++0xCompilerSupport
ICC ma zopar feture navyse oproti MSVC. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
|