Run Code
|
API
|
Code Wall
|
Users
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Spec test
Language:
Ada
Assembly
Bash
C#
C++ (gcc)
C++ (clang)
C++ (vc++)
C (gcc)
C (clang)
C (vc)
Client Side
Clojure
Common Lisp
D
Elixir
Erlang
F#
Fortran
Go
Haskell
Java
Javascript
Kotlin
Lua
MySql
Node.js
Ocaml
Octave
Objective-C
Oracle
Pascal
Perl
Php
PostgreSQL
Prolog
Python
Python 3
R
Rust
Ruby
Scala
Scheme
Sql Server
Swift
Tcl
Visual Basic
Layout:
Vertical
Horizontal
#include <set> #include <cassert> class A; class B; class C; typedef std::set<A*> ASet; typedef std::set<B*> BSet; typedef std::set<C*> CSet; class SelectionManager { protected: ASet as_; BSet bs_; CSet cs_; public: template <typename TContextRepresented> std::set<TContextRepresented *> * getSelectionPtr() { return 0; } }; template <> inline ASet * SelectionManager::getSelectionPtr() { return &as_; } template <> inline BSet * SelectionManager::getSelectionPtr() { return &bs_; } template <> inline CSet* SelectionManager::getSelectionPtr() { return &cs_; } int main() { SelectionManager sm; ASet * pas = sm.getSelectionPtr<A>(); assert(pas != 0); BSet * pbs = sm.getSelectionPtr<B>(); assert(pbs != 0); CSet * pcs = sm.getSelectionPtr<C>(); assert(pcs != 0); std::set<int*> * pis = sm.getSelectionPtr<int>(); assert(pis == 0); }
clang++
Show compiler warnings
[
+
] Compiler args
[
+
]
Show input
Compilation time: 0.32 sec, absolute running time: 0.13 sec, cpu time: 0 sec, memory peak: 3 Mb, absolute service time: 0,46 sec
edit mode
|
history