C++ :: Not Picking Template Partial Specialization?
Nov 18, 2013
[URL]
#include <iostream>
#include <type_traits>
template<typename T, typename = void>
struct Test {
static int constexpr value = 1;
[Code] .....
Why does it output 1 instead of 2? How can I make it output 2 and still output 1 for e.g. Test<double>::value?
View 3 Replies
ADVERTISEMENT
Nov 20, 2013
I've been trying to create a templated class that takes a template as a parameter. I'd like to specialise this class for certain partial specializations of the template parameter but can't seem to figure out how to do it nor find anything online, (although I may be searching for the wrong thing).
As an example, say I have a class A that takes a template class with two parameters as its parameter:
template< template<class X, class Y> class Z > class A {};
I'd like to have a general version of A, for a general version of Z, but a specialisation of A for a specialisation of Z, e.g. where X is int but Y is still any type.
View 6 Replies
View Related
May 27, 2013
I have a generic template class with another template in one of its types. Now I want to specialize one of its methods for a particular (template) class, which leads to a compile error, however.
Here is the example:
#include <stdio.h>
template<typename Type>
class Obj1 {
public:
void ID() { printf("Object 1, size = %zu
[Code] .....
GCC ends with:
:35:27: error: type/value mismatch at argument 2 in template parameter list for ‘template<class Type, template<class> class O> class Foo’
:35:27: error: expected a class template, got ‘Obj2<Type>’
What is wrong with the specialization? Can it even be achieved and how (if so)?
View 1 Replies
View Related
May 15, 2013
I want to write a template that combines two type of resources:
class someClasses {
typedef someType ElementType;
} template<class T1,class T2>
class combo {
...
}
And I want to specify my T1 and T2 has the same ElementType, how can I write my combo class to partial specialize the general case so the ElementType check is at compile time?
View 9 Replies
View Related
Nov 17, 2013
[URL]
#include <iostream>
struct Outer {
template<typename T>
void go() {
std::cout << Test<T>::f() << std::endl;
[Code] .....
I have tried several variants on this code to no avail. Outer is in a header, along with the extern template statements, and the specializations after main are in their own cpp file. Main is in a different cpp file.
What do have to do to make this work? I cannot bring the definitions of f() into the header, and they will be different for different template parameters. Ideally, I want Test to remain a private member of Outer, though this can change if it's the only option.
View 1 Replies
View Related
Feb 11, 2014
I'm trying to write some naive binary serialization code and wanted to cut down on repetition of logic for serializing/deserializing nested vectors or other STL containers to reduce the chance of typos etc, and thought templates might hold a solution for me.
Code:
template <typename T> void serializeField(IWriter& writer, const T& val) {
writer.write((char*)&val, sizeof(T));
}
template<typename U, typename V>
template <> void serializeField(IWriter& writer, const U<V>& collection)
[Code] ....
Is there a way to do something like this? It isn't a big deal for me to just manually write code to serialize my vectors to the needed depth, but it sure would be nice to get this working.
View 10 Replies
View Related
Jun 8, 2012
I'm trying to get template specializations working for char * as well as for char[]. I.e. in the following code the last test does not use the specialization and fails:
Code:
#include <string>
#include <iostream>
#include <cstring>
template<typename T1, typename T2>
bool compare(const T1& lhs, const T2& rhs) {
[Code] ....
View 4 Replies
View Related
Jan 21, 2013
I want to specialize a particular function for Integer datatype inside a class template. My XX.h will be
namespace ZZ {
template <class T>
class XX {
void doSomething(T x);
};
}
provide me XX.cpp which has template specialization for the function doSomething on Integer datatype.
I tried the following in XX.cpp
#include "XX.h"
using namespace ZZ;
template <class T>
void XX<T>::doSomething(T x) {
[Code] ...
But this code is not working.
View 2 Replies
View Related
May 23, 2014
Can you take a look why I am getting compile error.
Code:
// clang++ main.cpp -g -std=c++11 -o main
#include <iostream>
class QuoteClass {
public:
QuoteClass() = default;
QuoteClass(std::string param) {symbol = param;}
std::string get_symbol() {return symbol;}
[Code] ....
View 5 Replies
View Related
Sep 12, 2012
This code snippet just won't compile in a conforming compiler:
Code:
template<> struct series<0.0, 0, 0>
Because of the floating point template parameter.... If this "specialization" is useful, how come MS would have discarded it?
View 4 Replies
View Related
Apr 26, 2013
I got this code here id like for it to pick up a random word from a text file and use it as the nick in this line
Code:
SetNick(GetRandomString(10));
How could i do it heres the full code for the client
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluorineFx;
[Code] .....
View 3 Replies
View Related
Jul 31, 2013
I have recently looked into a self created project where I wanted to compare user input against a list of strings in an external file. That has since been completed to my great satisfaction, however it did throw up some interesting issues in my knowledge and understanding of user input..What is the best way to pick up user input i.e scanf,stdin etc. and when should either be used and can a mixture of types be used, and if so, when and why.
A quick program to take different input methods and display differnt output method (obviously corresponding i.e scanf/printf - fgets/fputs)
My first pothole came when I have setup the method for scanf - fine. Then I setup the method for fgets(test,100,stdin) for example and the fgets method no longer picks up stdin from the user..
View 3 Replies
View Related
Jun 9, 2014
I'm using the Bullet physics library in my program and am currently trying to implement picking. The way the world is currently set up, there is a terrain with a box on top of it. Whenever I click on the box, my program only registers that the terrain has been clicked and doesn't recognize that the box has been clicked.
void PhysicsEngine::RayTest() {
vec2 Mouse = MOUSE_POSITION;
Mouse.y = WINDOW_DIMENSIONS.y - Mouse.y;
vec4 RayStart = vec4(2*Mouse.x/WINDOW_DIMENSIONS.x - 1,2*Mouse.y/WINDOW_DIMENSIONS.y - 1, -1, 1);
vec4 RayEnd = RayStart; RayEnd.z = 0;
[Code] .....
View 3 Replies
View Related
Feb 3, 2015
if there is a spinwheel that has 20 or so numbers. can spin the wheel until stops and that is the number to use.
how to make a program that picks a number like spinning a wheel. could make the wheel pick numerous random numbers each revolution or one number per revolution
say until 9 or so are chosen
be good if program could work however many numbers are to be chosen from
View 2 Replies
View Related
Mar 14, 2013
I have a string like:
char *origin = "THIS, IS, SPARTA!"
What I want to do is get all characters in a string up to a certain delimiter, for that I've searched I can do that with:
sscanf
getline
strok
But what I don't know and haven't found is how to use these functions but to start reading from a certain position in the string. So I need to get the characters up to a comma but after "THIS," so that would be starting in position 5...
How could I do that? I tried using [x] in brackets but then it would just read a character...
View 5 Replies
View Related
Apr 25, 2013
Suppose I have this vector it contains dates example
Vector.Dates [slot 1][slot 2] [slot 3] etc...
anyways slot 1 contains [ 05282013]
slot 2 contains [07032015]
I want to split the data it contains into 3 other locations How do I do that???
like vector.1[05][07]
vector.2 [28][03]
vector.3[2013][2015]
How do you only take partial data from a vector slot?
View 1 Replies
View Related
Nov 10, 2013
Calculated by the explicit scheme. Produces some very large numbers.
task:
[math] U_t = 3 (1,1-0,5 x) U_ {xx} + e ^ t-1 [/ math]
[math] U (0, t) = 0 [/ math]
[math] U (1, t) = 0 [/ math]
[math] U (x, 0) = 0.01 (1-x) x [/ math]
Need to find a solution with accuracy [math] 0.0001 [/ math] on the interval [math] T = 1 / a ^ *, where a ^ * = max a (x, t) [/ math] Plot graphs of functions [math] u (x ^ *, t), u (x, jt ^ *) [/ math] where [math] x ^ * = 0.6, t ^ * = T/10, j = 1,2,4 [/ math]
explicit difference scheme is as follows:
([math] $ u_t ^ {j +1}-u_i ^ j) / tau = 3 (1,1-0,5 x_i) (u_ {i +1} ^ {j}-2u_i ^ j + u_ {i -1} ^ j) / h ^ 2 + e ^ {t_j} +1 $ $ [/ math]
code of the program:
int main ( void ) {
setlocale(LC_ALL, "rus");
int I = 10, J = 30, i, j;
double T = 1.0/ pow(3.3, 0.5), h_x = 1.0/ I, h_t = T/ J, epsilon = h_t + pow(h_x, 2), c;
double **u = new double *[I + 1];
for (i = 0; i <= I; i++) u[i] = new double [J + 1];
[code]....
displays the following:
[URL]
View 2 Replies
View Related
Jan 31, 2013
I am porting code from windows using visual studio to mac with xcode.
Quite a lot of issue have a appeared, which is no surprise, one warning that keeps on appearing is Explicit Specialiszation cannot have a storage class:
enum SortReturnCodeEnum {LOWEST=1, HIGHEST=2, HIGHLOW = 3, IDENTICAL=4};
template<typename tKey>
static SortReturnCodeEnum DefaultCompare(typename ArgType<tKey>::ARGT Value1, typename ArgType<tKey>::ARGT Value2)
{
[Code]....
I could do a #define __GNUC__ but i was checking
View 3 Replies
View Related
Dec 5, 2013
I'm trying to implement a simple template array class, but when i came into the operator< i actually have to use a template :
my code is something like :
template<typename _Type, std::size_t _Size>
class array {
public :
[Code] ......
but i am having an error of shadows template param 'class _Type' is it w/ the name conflict between the array template parameter and the function template parameter ?
View 6 Replies
View Related
Nov 6, 2013
Error1error C2955: 'DoubleLinkedListInterface' : use of class template requires template argument listdoublelinkedlist.h10
Error2error C2244: 'DoubleLinkedList<T>::DoubleLinkedList' : unable to match function definition to an existing declaration doublelinkedlist.cpp7
Error3 .cpperror C2244: 'DoubleLinkedList<T>::~DoubleLinkedList' : unable to match function definition to an existing declaration 12
.h
#pragma once
#include "DoubleLinkedListInterface.h"
#include "Node.h"
#include <iostream>
[Code]....
View 4 Replies
View Related
Nov 2, 2014
how I want the code to look. Only problem is it doesn't work (Line 11). I have some experience with templates but I'm not a pro.
Basically I want the "Channels<3>" to be a type that I can use to specify a Cable with similar to vector<float/int> it would be Cable<Channels<2 or 3>>.
What have I messed up with the syntax?
#include <iostream>
#include <vector>
using namespace std;
[Code].....
View 4 Replies
View Related
Mar 14, 2014
I have a function:
template<class Iterator, class T>
void a(Iterator, Iterator, const T&);
and I want to be able to simplify calls to 'a' with calls like
a(someIteratableContainer);
instead of having to call:
a(someIteratableContainer.begin(), someIteratableContainer.end(), valueOfTheContainersElementType);
I also want to be able to generalize the function to handle any of the standard iteratable contains: array, vector, deque, whatever.
I was under the impression I could write:
template<template<class T> class U> a(U<T>& container) {
a(container.begin(), container.end(), g(T()));
}
where 'g()' returns an object of the element type. However, the compiler is claiming, no matter how I write a call to the overload, the original template is selected and/or the overload is invalid, depending on the various ways I attempt to write said overload.
View 7 Replies
View Related
Dec 11, 2014
I have been trying to get a hang on templates. I have the two following functions that that could be consolidated in a single template function:
void Attractor::updateFamilies(FamiliesController *_tmp, int _counter){
center.x = ofGetWidth()/2;
center.y = ofGetHeight()/3;
attractorCounter = _counter;
if(attractorCounter == 1){
[Code] .....
NotesController and FamiliesController have the same parent. The thing that I'm trying to grasp with templates is that is could something like:
template<class TYPE>
void Attractor::updateData(TYPE* *_tmp, int _counter){
center.x = ofGetWidth()/2;
center.y = ofGetHeight()/3;
attractorCounter = _counter;
[Code] ....
And then have another template function declaration for all the attractor functions where I pass the same template value as in the first one.
As you can see, I'm calling another functions inside called attractors(_tmp). I know that one way around it could be to get rid of that function and just do all the logic inside of each if statement. Is there any way to pass the same template function parameter within a template function parameter?
View 2 Replies
View Related
Feb 9, 2015
I have a class like this
PHP Code:
template<class X>
class A {
X m_x;
public:
X* foo();
X* bar();
//others are not related to X
};
I would like to get rid of
PHP Code: template<class X>
For class level but still use it for members. Like this
PHP Code:
class A {
X m_x;
public:
template<class X>
X* foo();
template<class X>
X* bar();
//others are not related to X
};
However, I am still stuck at
PHP Code: X m_x;
View 6 Replies
View Related
Oct 12, 2013
Let me put it into the code snippet:
/**
This class build the singleton design pattern.
Here you have full control over construction and deconstruction of the object.
*/
template<class T>
class Singleton
[Code]....
I am getting error at the assertion points when i call to the class as follows:
osgOpenCL::Context *cxt = osgOpenCL::Singleton<osgOpenCL::Context>::getPtr();
I tried commenting assertion statements and then the debugger just exits at the point where getPtr() is called.
View 7 Replies
View Related
Aug 29, 2014
Given:
#include <string>
template <class T>
class basic_container{
[Code] .....
is this possible:
#include "../basic_container/basic_container.hpp"
template <class T>
class container_vector{
[Code] .....
If not, what do I need to do to achieve my goal?
View 1 Replies
View Related